.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
相关文章
|
3月前
|
人工智能 安全 API
20 万奖金池就位!Higress AI 网关开发挑战赛参赛指南
本次赛事共设三大赛题方向,参赛者可以任选一个方向参赛。本文是对每个赛题方向的参赛指南。
404 35
|
3月前
|
人工智能 物联网 调度
边缘大型AI模型:协作部署与物联网应用——论文阅读
论文《边缘大型AI模型:协作部署与物联网应用》系统探讨了将大模型(LAM)部署于边缘网络以赋能物联网的前沿框架。针对传统云端部署高延迟、隐私差的问题,提出“边缘LAM”新范式,通过联邦微调、专家混合与思维链推理等技术,实现低延迟、高隐私的分布式智能。
826 6
边缘大型AI模型:协作部署与物联网应用——论文阅读
|
12月前
|
监控 Cloud Native 安全
基于 API 网关践行 API First 开发实践
API First 开发模式的核心在于:以 API 为先,将其视为“头等公民”,在构建应用、服务及集成之前,应优先定义并设计 API 及其配套。API First 作为一种相对较新的开发模式,它已逐渐流行并获得业内的广泛认可。
613 157
|
传感器 数据采集 存储
物联网技术在智能环境监测中的部署与优化
物联网技术在智能环境监测中的部署与优化
|
10月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
951 1
|
11月前
|
物联网 数据挖掘 BI
基于阿里云物联网平台(IoT)的智能家居系统开发与部署
随着物联网技术的发展,智能家居成为提升生活品质的重要方向。阿里云物联网平台提供设备接入、数据管理及应用开发能力,支持亿级设备接入、高效数据管理和灵活应用开发,确保系统安全。本文通过实战案例展示如何基于该平台构建智能家居系统,涵盖设备接入、远程控制、场景联动与数据分析等功能,助力企业快速部署智能家居解决方案。
|
传感器 数据采集 监控
数据采集器和物联网网关的区别
数据采集器主要用于从各种数据源收集数据。这些数据源可以是传感器(如温度传感器、压力传感器等)、仪表(如电表、水表等)或者其他具有数据输出功能的设备。物联网网关是连接感知层(包含各种传感器和数据采集设备)和网络层(如互联网、局域网等)的关键设备。
618 4
|
数据采集 传感器 监控
.NET 工控网关 轻量级组态软件
【10月更文挑战第10天】.NET 工控网关是一种基于 .NET 平台开发的设备,用于连接工业控制系统中的不同网络和设备,实现数据传输和协议转换。它能统一处理多种协议(如 Modbus、Profibus)的数据,便于后续系统处理。.NET 平台的优势包括开发效率高、跨平台能力强及安全性高,适用于工业物联网环境。此外,轻量级组态软件具备体积小、资源占用少的特点,可在资源受限的设备上运行,提供数据采集、监控、报警及数据分析等功能,简化工业自动化过程。
295 4
|
存储 安全 物联网
.NET 跨平台工业物联网网关解决方案
【9月更文挑战第28天】本文介绍了利用 .NET 构建跨平台工业物联网网关的解决方案。通过 .NET Core 和多种通信协议(如 MQTT 和 Modbus),实现工业设备的高效接入和数据采集。系统架构包括设备接入层、数据处理层、通信层、应用层和数据库层,确保数据的准确采集、实时处理和安全传输。此外,还详细阐述了设备身份认证、数据加密及安全审计等机制,确保系统的安全性。该方案适用于不同操作系统和工业环境,具备高度灵活性和扩展性。
410 2
|
前端开发 关系型数据库 MySQL
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
436 2

相关产品

  • 物联网平台