前言

随着物联网(IoT)技术的迅猛发展,智能设备之间的互联互通变得越来越重要。

推荐一套基于 C# 的高效 IoT 系统,该系统运行在 Linux 开发板上,并支持 Modbus RS485 传感器、NPN/PNP 开关等所有符合 485 通讯协议的设备进行数据采集和指令发送。这套系统在为智能家居、智能生产以及智能农场等领域提供全面的解决方案。

项目介绍

yihong 物联 IoT 系统是一款为实现物联网、智能家居、智能生产和智能农场而设计的高效数据采集与控制系统。

该系统基于 Linux 开发板,支持 Modbus RS485 传感器、NPN/PNP 开关以及其他所有符合 485 通讯协议的设备进行数据采集和指令发送。

通过集成这些先进的技术和硬件,yihong 物联 IoT 系统能够提供全面的解决方案,满足多种应用场景的需求。

项目架构

yihong 物联 IoT 系统采用分层架构设计,确保系统的灵活性、可扩展性和维护性。

系统由以下几个主要部分组成:

1、网关层

负责与各种传感器和执行器进行通信,采集数据并发送指令。

支持多种设备协议,包括 GPIO 操作、串口 Modbus RS485、I2C 和 NPN/PNP 信号。

2、服务端层

使用 C# 和 .NET 8.0 开发,处理来自网关的数据,并通过 MQTT 协议与网关保持实时通信。

提供 RESTful API 接口,支持第三方业务系统的接入,便于与其他系统集成。

3、数据库层

使用 MySQL 数据库存储系统配置、设备信息、历史数据等。

支持高效的数据查询和管理,确保数据的可靠性和完整性。

开发环境与技术栈

开发语言:C# (.NET 8.0)

数据库:MySQL

通信协议:

网关与服务端之间使用 MQTT 协议进行通讯。

服务端提供 API 接入,支持第三方业务系统的集成。

设备协议支持

系统支持以下几种常见的设备操作协议:

GPIO 操作:控制通用输入输出引脚,适用于简单的开关控制。

串口 Modbus RS485:用于工业自动化中的数据采集和命令发送。

I2C:一种简单的双向二线制同步串行总线,适用于近距离通信。

NPN/PNP:用于工业传感器和执行器的信号传输,支持高低电平检测和控制。

设备支持与预适配

系统已经预适配了多种常见设备,涵盖了广泛的应用场景。这些设备已经在实际生产环境中经过验证,确保其稳定性和可靠性。

另外,系统具备高度的灵活性,可以根据项目需求添加新的设备类型。

已预适配的设备列表(共23种)

项目使用

MySql数据库准备

脚本位于项目的Doc/mysqldata/yihongIOT.sql,复制到你的mysql中执行生成表即可

随后修改连接字符串 GatewayServer项目下面Configs目录中的配置文件appsettings.json

需要部署的程序

1、Mosquitto

mqtt服务端 或者安装其它的mqtt服务端也可以

Mosquitto是一个开源的MQTT消息代理,Linux、Windows和Mac OS上安装都可以,安装方法百度下,有很多教程,有问题可以群里咨询

初次使用可安装到自己电脑上测试,安装好后修改连接mqtt的参数:

GatewayServer项目下面Configs/appsettings.json

GatewayClient项目下面Configs/appsettings.json

2、GatewayServer 服务端

可以使用Microsoft Visual Studio打开项目运行起来先,没问题自己行按装到服务器上面

3、GatewayClient 网关客户端

独立发布后,上传到到香橙派中ubuntu中运行即可

使用说明

GatewayServer运行起来后,本地打开http://localhost:8070/magermain/index

即可访问,账密admin/123456

项目案例

实现案例1

家用自动浇花系统

实现案例2

大型自动化室内/集装箱式种植自动化控制

项目地址

Gitee:https://gitee.com/yihong-lin/yihong-iot

总结

以上仅展示了yihong物联IOT系统的部分功能。更多实用特性和详细信息,请大家访问项目地址。

希望通过本文能为上位机机开发方面提供有价值的参考。欢迎在评论区留言交流,分享您的宝贵经验和建议。

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

.NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案的更多相关文章

  1. 树莓派(香橙派)通过.NET IoT 操作SPI编写屏幕驱动 顺手做个四足机器人(一)

    摘要 这片文章主要是记录自己的整活过程,涉及到的技术包括.NET IoT, .NET Web, .NET MAUI,框架采用的也是最新的.NET 7. 本人是用的树莓派Zero 2 W(ubuntu- ...

  2. 2022年写的香橙派 OrangePi Zero 用python获取dht11温度和湿度

    感谢网上资料和个人的不放弃,终于方便的解决了香橙派 OrangePi Zero用python获取dht11温湿度的问题. 网上关于香橙派的资料比起树莓派真是少之又少,现在香橙派zero能干的活暂时也只 ...

  3. 【完整篇】orangepi香橙派新手入门之被官方坑

    图片特意缩小,看不清请打开另一个窗口查看原图. 第一步:烧录系统,我烧录的是Ubuntu_Desktop[请注意!!!!用户名是错的!!用户名是错的!!用户名是错的!!] 正确的用户名是orangep ...

  4. Linux下一种高效多定时器实现

    Linux下一种高效多定时器实现 作者:LouisozZ 日期:2018.08.29 运行环境说明 由于在 Linux 系统下一个进程只能设置一个时钟定时器,所以当应用需要有多个定时器来共同管理程序运 ...

  5. Red Hat 9.0 Linux 分辨率修改

    Red Hat 9.0 Linux 分辨率修改 我是在VMware Workstation中装了一个红帽的Linux系统,装上之后发现分辨率有点低,是800x600的,看着很不舒服,然后就想着怎么样可 ...

  6. ACE-6.1.0 linux 下的编译与安装步骤

    ACE-6.1.0 linux 下的编译与安装步骤  引用至http://www.cnblogs.com/liangxiaxu/archive/2013/03/07/2948417.html 1.从  ...

  7. 2.0 Linux系统的安装之Fedora安装单系统(2)

    2.0 Linux系统的安装之Fedora安装单系统(2) *Linux系统的安装之Fedora安装单系统 恐怕最好装的系统就是Linux系统了,或者与Windows并列.此篇教程为Fedora的单系 ...

  8. Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案

    Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解决方案 作者:凯鲁 ...

  9. Linux权限:提示-bash: ./startup.sh: Permission denied的解决方案

    Linux权限:提示-bash: ./startup.sh: Permission denied的解决方案 Linux上启动Tomcat,结果弹出:-bash: ./startup.sh: Permi ...

  10. Adobe/Flash Media Server 5.0 linux 64位系统下的安装

    一.下载 Adobe/Flash MS5.0下载地址: http://fs1.d-h.st/download/00036/VOt/adobemediaserver_5_ls1_linux64.tar. ...

随机推荐

  1. python之模拟数据Faker

    Faker,它解决的问题是python模拟(随机)数据!不知道大家在工作中没有用到过假数据,特别前后端开发的人员,应该经常用到,前端人员页面展示,效果展示.后端人员数据库数据模拟.今天给大家介绍的这个 ...

  2. Mybatis【7】-- Mybatis如何知道增删改是否成功执行?

    代码直接放在Github仓库[https://github.com/Damaer/Mybatis-Learning/tree/master/mybatis-05-CURD ] 需要声明的是:此Myba ...

  3. 使用联邦学习法训练强化学习算法以实现对抗攻击性:读论文——小型微型计算机系统(中文CCF B)《面向深度强化学习的鲁棒性增强方法》

    论文地址: http://xwxt.sict.ac.cn/CN/Y2024/V45/I7/1552 PS: 这个学习率有些奇怪,用数据量占一次优化的总数据量的大小作为学习率,这或许也是真的有独创性的操 ...

  4. Cython二进制逆向系列(一) 初识Cython

    Cython二进制逆向系列(一) 初识Cython   众所周知,Python类题目最难的一种就是使用Cython工具将py源码转换为二进制文件.此类题目相比于直接由Cpython编译而成的类字节码文 ...

  5. SaaS架构中多租户的概念

    SaaS架构中多租户的概念 租户可以理解为部署在云端的客户,通常出现在2B的企业中,比如现在学校的一卡通管理,通常是一个公司来做的,学校本地不需要做任何部署,而这个公司又是服务了很多个学校,那么学校对 ...

  6. ecognition server注意事项

    1.4002端口是节点管理界面,默认密码admin. 2.8184端口是任务管理界面. 3.节点在线状态下,查看提交的影像矢量路径是否正确. 4.看服务器读取各个文件是否有误. 5.用develope ...

  7. [SQL]null值被比较的结果问题

    场景还原 有一个字段是 已删除 deleted 如果0 则是未删除 如果1 则是已删除 我写的where条件是 deleted != 1 然后数据库里面这个字段的值都是null 我当时就想,null值 ...

  8. 虚拟机搭建FISCO BCOS的区块链浏览器

    一键搭建 注:根据官方文档搭建,大部分与官方文档相似.我自己修改了部分代码,并对部分报错进行了解决这次使用的是一键搭建,适合前后端同机部署,快速体验的情况使用 具体安装步骤 依赖环境 环境 版本 Ja ...

  9. 关于Qt数据库相关开发的一些经验总结

    一.前言 近期花了两个多月时间,将数据库相关的代码重新封装成了各种轮子(这条路必须打通,打通以后,相关项目只需要引入这个组件pri即可),测试了从Qt4.7到Qt6.1的各种版本,测试了odbc.sq ...

  10. Qt音视频开发10-ffmpeg控制播放

    一.前言 很多人在用ffmpeg做视频流解码的时候,都会遇到一个问题,如何暂停,如果打开的是本地视频文件,暂停你只需要停止解码即可,但是视频流你会发现根本没用,一旦你停止了解码,下次重新解码的时候,居 ...