# yihongIOT **Repository Path**: yihong-lin/yihong-iot ## Basic Information - **Project Name**: yihongIOT - **Description**: yihongIOT物联网设备控制管理系统,基于开发板香橙派(Orange pi)和ESP32-S3双网关,支持MODBUS RS485传感器,NPN\PNP 开关等所有支持485通讯协议的设备进行数据采集、指令发送、远程控制;可应用于物联网、智能家居、智能生产、智能农场 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 83 - **Forks**: 22 - **Created**: 2024-12-26 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: iot **Tags**: None ## README # yihongIOT ## 介绍 yihongIOT物联系统是一个基于 **香橙派** Orange Pi 开发板的完整物联网解决方案。该系统支持**Modbus RS485传感器**、**NPN/PNP开关**、**GPIO**、**I2C**等几乎所有支持485通讯协议的设备,实现数据采集、指令发送、远程监控及自动化控制。 可应用于**智能家居**、**智能生产**、**智慧农业**等场景。 实现了 **ESP32-S3** 为边缘网关的能力,具体说明见GatewayESP32Client目录。 ![输入图片说明](https://foruda.gitee.com/images/1770953305281319123/ea876cd3_1470486.png "屏幕截图") ![输入图片说明](Doc/pic/esp32-s3.png) ## 软件架构 软件采用 **C# .NET 10.0 + MySQL** 构建, 边缘计算+服务端计算相结合的架构设计。 1. **GatewayClient (边缘网关)** * **部署位置:** 运行在香橙派等Linux开发板上。 * **核心功能:** 负责直接与硬件交互(采集传感器数据、控制继电器/电磁阀),并将数据通过MQTT上报云端;同时接收云端下发的指令。 * **支持协议:** GPIO操作、串口Modbus RS485、I2C、NPN/PNP信号处理。 2. **GatewayServer (网关服务端)** * **部署位置:** 本地服务器或云服务器。 * **核心功能:** 数据存储中心(MySQL),处理业务逻辑(自动化规则、联动触发),并充当消息中间路由(MQTT/RabbitMQ)。 * **主要职责:** 维护设备在线状态、存储历史数据、执行定时任务、处理报警信息。 3. **GatewayWeb (管理后台与API)** * **部署位置:** 与GatewayServer同一网络环境的服务器。 * **核心功能:** 提供基于ASP.NET Core的Web管理界面,用于配置设备、查看数据图表、管理自动化流程。 * **API服务:** 提供标准的RESTful API (`/api/mobile/`, `/api/product/`),方便手机App、触摸屏或第三方业务系统(如ERP)快速接入。 --- ## 支持设备协议 | 序号 | 支持功能 | 说明 | | :--- | :--- | :--- | | 1 | **GPIO操作** | 支持高低电平输入输出,可接入NPN/PNP传感器及普通继电器。 | | 2 | **串口 Modbus RS485** | 标准的Modbus RTU协议实现,可适配所有本协议的传感器。 | | 3 | **I2C** | 支持SHT30等常见I2C接口传感器。 | | 4 | **NPN/PNP** | 支持工业级数字量信号采集与控制。 ### 已预适配设备列表 (部分) 系统已内置适配超过20种实际生产环境中的设备: * **环境监测:** 温度、湿度、光照度、二氧化碳(CO2)、噪声、风向、大气压、雨雪、风速、PM2.5、PM10、甲醛、TVOC、臭氧。 * **液体检测:** 溶液EC传感器、PH检测传感器、液位传感器。 * **控制执行:** 485继电器、高低电平继电器、空调红外遥控器、脉冲传感器、流量计。 --- ## 安装教程 [查看viki安装部署教程](https://gitee.com/yihong-lin/yihong-iot/wikis/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2) --- GatewayClient 网关客户端相关截图 ![输入图片说明](doc/14.png) ![输入图片说明](doc/pic/12.png) ## 使用说明 ### 1. 登录管理后台 * 访问地址:`http://localhost:8070/magerlogin/login` * **账号:** admin * **密码:** 123456 ### 2. API接口使用 系统提供了完善的API用于移动端或第三方系统集成。 * **Mobile API 基础示例:** * 获取设备详情: `GET /api/mobile/Device/getDevice?dguid={设备GUID}` * 向设备发送指令(开关): `GET /api/mobile/Device/sendDeviceControl?dguid={设备GUID}&key=open` * 获取设备当前数据值: `GET /api/mobile/DeviceValueCurrent/getValueCurrentByDevice` * **产品级API:** * 提供 `/api/product/{ProductModel}/...` 路由,支持按产品型号快速调用接口。 ### 3. 自动化与控制 * **定时任务:** 支持Cron表达式设置定时采集数据或执行指令。 * **条件联动:** 当设备A的数值满足条件(如温度>30)时,自动触发设备B(如开启风扇)。 * **流程控制:** 支持将多个设备的动作组合成一个流程,按顺序或条件执行。 * **Web控制面板演示:** 访问 `http://localhost:8070/HtmlDemo/iot_control_panel.html?pguid={产品GUID}` 可查看实时传感器数据及开关控制面板。 --- * **比如: * 获取设备信息: http://localhost:8070/api/mobile/Device/getDevice?dguid=130a21d6-d191-43a3-ba46-19b1a23272e2 * 向设备发送指令: http://localhost:8070/api/mobile/Device/sendDeviceControl?dguid=9a4274d0-c863-41a3-a797-e003cd7c35cd&key=open * **可以设置定时采集数据/执行指令、多设备按流程运行、条件触发动作等 ![输入图片说明](doc/pic/1.png) ![输入图片说明](doc/pic/3.png) #### 控制面板 ![输入图片说明](doc/right1.png) 位于GatewayWeb 项目 GatewayWeb \wwwroot\HtmlDemo目录下,里面包括了调用接口的使用例子 运行 GatewayWeb 项目 访问http://localhost:8070/HtmlDemo/iot_control_panel.html?pguid=cf4675f2-aa14-480b-abf9-59d89768e8be ![输入图片说明](doc/kzmb.png) 基于uniapp开发的控制面板效果(代码在目录 doc 下) ![输入图片说明](doc/7421ee2bca014ee82668feb4e9190d43.png) 实现案例1: 家用自动浇花系统 https://blog.csdn.net/qq_16005627/article/details/128020188?spm=1001.2014.3001.5501 实现案例2: 大型自动化室内/集装箱式种植自动化控制 ![输入图片说明](doc/pic/34.jpg) ![输入图片说明](doc/pic/32.jpg) ![输入图片说明](doc/pic/33.jpg) ![输入图片说明](doc/pic/35.jpg) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 微信 进大群, 加微信时请加 ** 备注“yihongIOT" ** ![输入图片说明](doc/weixin.png) **打赏二维码** 开源创作不易,为支持本项目发展和交流,您的支持是我的动力,自愿打赏,感谢支持! ![输入图片说明](doc/pic/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20260203171145_90_4.jpg)