.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月前
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
334 73
|
11月前
|
人工智能
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
|
11月前
|
人工智能 芯片
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
|
9月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
361 0
|
11月前
|
人工智能 自动驾驶 机器人
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
221 9
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
191 8
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
197 7
|
网络协议 C#
基于.NET WinForm开发的一款硬件及协议通讯工具
基于.NET WinForm开发的一款硬件及协议通讯工具
159 7
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
392 5

热门文章

最新文章

相关产品

  • 物联网平台