.NET Core开发的iNeuOS物联网平台部署树霉派(raspbian),从网关到云端整体解决方案。

简介: iNeuOS成功部署在树莓派上,意味着iNeuOS打通了从嵌入式到云端整体链路,为中小企业在物联网建设方面提供了整体解决方案,降低产品研发、项目执行方面的成本。iNeuOS部署在树莓派主要意义在于: (1) 可以形成企业网关产品,应用到系统建设中。 (2) 设备容器可以远程设备数据采集进行远程运维,并且支持设备驱动在线更新。 (3) Web组态建模可以远程配置和开发监测页面,现场屏幕就地显示。 (4) 与云端系统无缝对接,快速进行私有云部署。 (5) 支持接口形式的二次开发,降低人员开发周期和成本。

目 录

  1. 概述... 2
  2. 树莓派硬件配置... 2
  3. 软件信息... 3
  4. Raspbian下载及安装... 3
  5. 准备运行程序包... 4
  6. 安装SSH.. 4
  7. 安装.netcore. 4
  8. 安装mariadb. 5
  9. 安装nginx. 7
  10. 配置iNeuOS数据库和文件... 8
  11. 运行iNeuOS. 9
  1. 概述

        备注:为了文章的完整性,在《.NET Core开发的iNeuOS物联网平台部署在Ubuntu操作系统》中的内容适用于树莓派部署,也将在这篇文章中出现。
    
        iNeuOS成功部署在树莓派上,意味着iNeuOS打通了从嵌入式到云端整体链路,为中小企业在物联网建设方面提供了整体解决方案,降低产品研发、项目执行方面的成本。iNeuOS部署在树莓派主要意义在于:
    
    (1)    可以形成企业网关产品,应用到系统建设中。
    
    (2)    设备容器可以远程设备数据采集进行远程运维,并且支持设备驱动在线更新。
    
    (3)    Web组态建模可以远程配置和开发监测页面,现场屏幕就地显示。
    
    (4)    与云端系统无缝对接,快速进行私有云部署。
    
    (5)    支持接口形式的二次开发,降低人员开发周期和成本。
    
    (6)    降低企业开发和部署网关的成本,核心板+外壳+人工等费用,可以控制在几百元左右。
    
     某企业对集团级的物联网平台进行升级,符合对远程部署的终端硬件网关可以进行远程配置和运维的总体要求。
    
     但是,也会有质疑,认为C/C++更适合嵌入式或网关级的开发,占用资源少、运行效率高,当然这是最优的方案。iNeuOS在树莓派的部署,在考虑开发成本、项目执行周期成本、人力成本等诸多因素,从整体解决方案方面为企业提供了更多的选择路径。
    
     在实际部署和使用过程,.NET Core在raspbian下的执行效率,没有想象中的差,另外执行效率只是我们选择方案考虑的因素之一。
  2. 树莓派硬件配置

     树莓派3代b+开发板Raspberry Pi 3b,详细配置参数,如下图:

    1.png

  3. 软件信息

      操作系统:raspbian September 2019
    
      Kernel版本: 4.19
    
     .NET Core版本:2.2.402
    
     数据库:MariaDB  (与mysql基本兼容)
  4. Raspbian下载及安装

     下载地址: https://www.raspberrypi.org/downloads/raspbian/,如下图:

    2.png

   使用Win32DiskImager工具把镜像文件写到sd卡上,过程不再详细介绍。
  1. 准备运行程序包

      把iNeuOS后台接口服务和前端应用系统复制到Ubuntu操作系统下的work工作目录,程序包中主要目录,如下图:

    3.png

  把Api和UI复制到Ubuntu操作系统的work目录下,如下图:

4.png

  1. 安装SSH

     执行命令:
    

sudo vim /etc/ssh/sshd_config

 增加如下配置信息:

PasswordAuthentication yes
PermitRootLogin yes

  1. 安装.netcore

    sudo apt-get install curl libunwind8 gettext

    curl -sSL -o dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/e0050c1d-ddc6-4ac9-ba3b-07d85eec5890/614dae615fe229f6b6f43658262a8f08/dotnet-sdk-2.2.402-linux-arm.tar.gz (不是固定下载链接地址,可以先下载好,上传到raspbian系统,再执行下面的命令)

    sudo mkdir -p /opt/dotnet

    sudo tar zxf dotnet.tar.gz -C /opt/dotnet

    sudo ln -s /opt/dotnet/dotnet /usr/local/bin

  2. 安装mariadb

(1)实例安装

   ubuntu上安装mysql比较简单,只需要几条命令就可以完成,如下:

       developer:~$ sudo apt-get install mariadb-server

  安装过程中会提示设置密码,注意设置一样,安装完成之后可以使用如下命令来检查是否安装成功:

      developer:~$ sudo netstat -tap | grep mysql

 通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。
  登陆mysql数据库可以通过如下命令:

      mysql -u root -p 

  -u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

(2)区分大小写配置

   在unbuntu下找到/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]的下添加   lower_case_table_names=1   就行了。备注:为0时大小写敏感,为1时大小写不敏感,默认为0。如下图:

5.png

(3)外网访问权限配置

   本地mysql5.7数据库,当使用127.0.0.1和localhost时可以连接,但当使用本地ip时192.168.*.则连接拒绝,当然外网通过192.168..*同样无法连接。

   解决方法如下:

     1)登陆mysql,授权外网访问权限

    developer:~$ use mysql;

    developer:~$ update user set host = ‘%’ where user = ‘root’;

    developer:~$ flush privileges;

  2)修改my.cnf配置

    在unbuntu下找到/etc/mysql/mysql.conf.d/mysqld.cnf文件,把bind-address=127.0.0.1修改bind-address=0.0.0.0

  3) 跳过权限表。(与在Ubuntu下部署不一样)

    在unbuntu下找到/etc/mysql/mysql.conf.d/mysqld.cnf文件(如果是mariadb数据库,则是:/etc/mysql/mariadb.conf.d/50-server.cnf),加下配置: skip-grant-tables
6.png

  (4)执行 sudo mysql_secure_installation 设置root密码及权限,如下图:
7.png

    其他设置,请根据实际情况进行选择。

  (5)服务命令

    启动方式:

      使用 service 启动:service mysql start

      使用 mysqld 脚本启动:/etc/inint.d/mysql start

    停止方式:

      使用 service 启动:service mysql stop

      使用 mysqld 脚本启动:/etc/inint.d/mysql stop

    重启方式:

      使用 service 启动:service mysql restart

      使用 mysqld 脚本启动:/etc/inint.d/mysql restart

  1. 安装nginx

  安装反向代理nginx,启动,命令如下:

    developer:~$ sudo apt-get install nginx

    developer:~$ sudo service ngnix start

  然后访问一下本机的IP地址(127.0.0.1),如果出现如下页面,说明已经安装成功。
8.png

  1. 配置iNeuOS数据库和文件

  (1) 创建数据库,我是在window下使用Navicat执行sql脚本。如下图:
9.png

  (2) 修改后台接口服务(API)访问数据库的配置文件,考虑到安全性的问题,进行了加密,如下图:
279374-20191021224336873-153674818.png

  (3) 修改前端应用系统(UI)访问后台接口服务(API)的配置文件UIlibbuffosjs目录下request.js和uiconfig.js,如下图:
10.png

  1. 运行iNeuOS

  (1) 运行后台接口服务(API),修改appsettings.json配置文件,可以侦听本地所有IP的端口,增加Kestrel配置节,如下图:
图片.png

      执行运行接口命令,如下图:

图片.png

  (2) 配置nginx服务,访问前端应用系统,如下:

    安装好之后进入到以下目录,打开default文件,如下命令:

      developer:~$ cd /etc/nginx/sites-available

      developer:~$ sudo gedit default

    修改为以下的内容,侦听81端口,并指访问的根目录(UI)和浏览的默认页(index.html),如下图:
图片.png

  (3) 访问URL(http://127.0.0.1:81http://192.168.31.102:81)地址,效果如下图:

   登陆页面,如下图:
图片.png

   WEB组态建模开发,如下图:
图片.png

   视图应用显示,如下图:
图片.png

参见前三篇文章:

《iNeuOS云操作系统,.NET Core全系打造》

《iNeuOS 物联网云操作系统2.0发布,集成设备容器、视图建模、机器学习》

《.NET Core开发的iNeuOS物联网平台部署在Ubuntu操作系统,无缝跨平台》

物联网&集成技术 QQ群:54256083

物联网&集成合作 QQ群:727664080

网站:http://www.ineuos.net

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
10月前
|
人工智能 物联网 调度
边缘大型AI模型:协作部署与物联网应用——论文阅读
论文《边缘大型AI模型:协作部署与物联网应用》系统探讨了将大模型(LAM)部署于边缘网络以赋能物联网的前沿框架。针对传统云端部署高延迟、隐私差的问题,提出“边缘LAM”新范式,通过联邦微调、专家混合与思维链推理等技术,实现低延迟、高隐私的分布式智能。
1484 6
边缘大型AI模型:协作部署与物联网应用——论文阅读
|
人工智能 物联网 Android开发
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
602 92
|
人工智能 物联网 Android开发
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
747 23
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
|
存储 人工智能 物联网
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
533 14
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
|
人工智能 物联网 编译器
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
480 11
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
|
人工智能 前端开发 物联网
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
423 0
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
689 0
|
监控 负载均衡 安全
微服务(五)-服务网关zuul(一)
微服务(五)-服务网关zuul(一)
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
635 14
|
安全 5G 网络性能优化
深入理解5G中的SAEGW:服务网关边界
【10月更文挑战第9天】
748 0

热门文章

最新文章

相关产品

  • 物联网平台