.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

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
6月前
|
人工智能 边缘计算 监控
【开源视频联动物联网平台】视频AI智能分析部署方式
【开源视频联动物联网平台】视频AI智能分析部署方式
352 3
|
网络协议
解决方案-奇安信连接网关失败问题
解决方案-奇安信连接网关失败问题
1398 0
|
消息中间件 监控 数据可视化
一个基于.Net Core 开源的物联网基础平台
一个基于 .Net 6.0 使用C#语言编写的以实现可见与不可见的物理设备数字孪生的物联网平台。用于数据的收集、处理、可视化、设备管理、设备预警、报警的平台。
519 0
一个基于.Net Core 开源的物联网基础平台
|
5月前
|
传感器 数据采集 存储
物联网技术在智能环境监测中的部署与优化
物联网技术在智能环境监测中的部署与优化
|
2月前
|
存储 安全 物联网
.NET 跨平台工业物联网网关解决方案
【9月更文挑战第28天】本文介绍了利用 .NET 构建跨平台工业物联网网关的解决方案。通过 .NET Core 和多种通信协议(如 MQTT 和 Modbus),实现工业设备的高效接入和数据采集。系统架构包括设备接入层、数据处理层、通信层、应用层和数据库层,确保数据的准确采集、实时处理和安全传输。此外,还详细阐述了设备身份认证、数据加密及安全审计等机制,确保系统的安全性。该方案适用于不同操作系统和工业环境,具备高度灵活性和扩展性。
|
6月前
|
安全 网络协议 网络安全
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
8415 0
|
4月前
|
人工智能 物联网 开发者
**.NET技术革新赋能软件开发:从.NET 5的性能飞跃、跨平台支持,到微服务、物联网、AI和游戏开发的广泛应用。
【7月更文挑战第4天】**.NET技术革新赋能软件开发:从.NET 5的性能飞跃、跨平台支持,到微服务、物联网、AI和游戏开发的广泛应用。随着云集成深化、开源社区壮大,未来将聚焦性能优化、云原生应用及新兴技术融合,培养更多开发者,驱动软件创新。**
145 1
|
5月前
|
负载均衡 Java API
Spring Cloud Gateway 详解:构建高效的API网关解决方案
Spring Cloud Gateway 详解:构建高效的API网关解决方案
137 0
|
6月前
|
SQL 开发框架 .NET
.NET 中的表达式树
本文介绍了.NET中的表达式树(Expression Trees),它是代码的一种树形表示形式,常用于动态查询、动态编译、规则引擎和代码生成。表达式树API包括`Expression`、`ParameterExpression`、`LambdaExpression`等,允许开发者在运行时分析、修改和执行代码。文中提供了一个简单的示例,展示了如何创建和执行一个计算表达式的表达式树。表达式树是.NET中实现灵活动态代码的关键工具。**关键词:表达式树、LINQ、动态编译、Lambda表达式**
|
6月前
|
NoSQL 安全 物联网
检索时间减少83%!部署MongoDB后,通用电气医疗集团狠狠提升了物联网设备的利用效率!
作为医疗技术领域的全球领导者,通用电气医疗集团选择了 MongoDB由其管理旗下物联网设备,从部署(生命周期初期,即 BoL)到报废(生命周期结束,即 EoL)的整个生命周期
1921 3
检索时间减少83%!部署MongoDB后,通用电气医疗集团狠狠提升了物联网设备的利用效率!

相关产品

  • 物联网平台