# CandyIIoT **Repository Path**: wanliofficial/CandyIIoT ## Basic Information - **Project Name**: CandyIIoT - **Description**: No description available - **Primary Language**: C++ - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-13 - **Last Updated**: 2026-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CandyIIoT - 嵌入式Linux工业物联网网关 RK3506 多核架构工业物联网协议转换网关,支持Modbus RTU/TCP、OPC UA、BACnet、CAN等多种工业协议采集,转换为MQTT协议上云。 ## 功能特性 ### 核心协议 - **Modbus RTU/TCP** - 支持多种数据类型、自定义寄存器映射、线性缩放 - **OPC UA** - 工业自动化标准协议 - **BACnet** - 楼宇自动化协议 - **CAN总线** - 汽车/工业总线协议 - **MQTT Sparkplug B** - 工业MQTT标准 ### 云平台支持 - **AWS IoT Core** - 亚马逊云物联网平台 - **Azure IoT Hub** - 微软Azure物联网中心 - **阿里云IoT** - 阿里云物联网平台 - **EMQX/Mosquitto** - 自建MQTT Broker ### 高级功能 - **热备冗余** - 双机热备检测、故障自动切换 - **数据缓冲** - 断网存储转发、数据压缩 - **Web配置界面** - 中英文双语、实时数据监控 - **OTA升级** - 远程固件升级 - **高性能** - epoll事件驱动、线程池模型 ## 项目结构 ``` CandyIIoT/ ├── include/candyiiot/ # 头文件 │ ├── types.h # 核心数据类型定义 │ ├── config.h # 配置管理 │ ├── modbus.h # Modbus协议接口 │ ├── mqtt_client.h # MQTT客户端 │ ├── gateway.h # 网关核心 │ ├── cloud.h # 云平台适配 │ ├── data_buffer.h # 数据缓冲 │ ├── hotstandby.h # 热备冗余 │ ├── web_api.h # Web API │ └── protocol_handler.h # 协议处理器 ├── src/ │ ├── core/ # 核心模块 │ │ ├── config.c # 配置加载/保存 │ │ ├── modbus.c # Modbus协议实现 │ │ ├── mqtt_client.c # MQTT客户端 │ │ ├── data_buffer.c # 数据缓冲 │ │ ├── gateway.c # 网关核心 │ │ └── hotstandby.c # 热备冗余 │ ├── protocols/ # 协议处理器 │ │ ├── protocol_handler.c │ │ ├── opcua_handler.c │ │ ├── bacnet_handler.c │ │ └── can_handler.c │ ├── cloud/ # 云平台适配 │ │ ├── cloud.c │ │ ├── aws_iot.c │ │ ├── azure_iot.c │ │ └── aliyun_iot.c │ ├── web/ # Web API │ │ └── web_api.c │ └── main.c # 主程序 ├── web/ # Web前端 │ ├── index.html # 主页面 │ ├── css/style.css # 样式表 │ ├── js/ # JavaScript │ │ ├── app.js # 主应用 │ │ └── i18n.js # 国际化 │ └── i18n/ # 语言包 │ ├── zh_CN.json # 中文 │ └── en_US.json # 英文 ├── config/ │ └── config.json # 配置文件 ├── meta-candyiiot/ # Yocto层 ├── scripts/ # 构建脚本 ├── tests/ # 单元测试 ├── CMakeLists.txt # CMake构建 └── LICENSE ``` ## 快速开始 ### 依赖安装 (Ubuntu/Debian) ```bash sudo apt-get update sudo apt-get install -y \ build-essential \ cmake \ pkg-config \ libglib2.0-dev \ libjson-c-dev \ libmodbus-dev \ libmosquitto-dev ``` ### 编译 ```bash # 创建构建目录 mkdir build && cd build # 配置 cmake .. -DCMAKE_BUILD_TYPE=Release # 编译 make -j$(nproc) # 安装 sudo make install ``` ### 运行 ```bash # 使用默认配置运行 candyiiot -c /etc/candyiiot/config.json # 指定Web端口 candyiiot -c config.json -p 8080 ``` ### 访问Web界面 浏览器打开: `http://<设备IP>:8080` ## 配置说明 ### 设备配置 ```json { "id": 1, "name": "Modbus Device", "protocol": "modbus_tcp", "poll_interval_ms": 1000, "protocol_config": { "ip": "192.168.1.100", "port": 502 }, "points": [ { "id": 1, "name": "Temperature", "data_type": "float", "address": 0, "length": 2, "scale_factor": 0.1, "unit": "°C" } ] } ``` ### 云平台配置 ```json { "id": "aws-primary", "type": "aws_iot", "host": "xxxxxxxxxx-ats.iot.us-east-1.amazonaws.com", "port": 8883, "client_id": "candyiiot-gateway-001", "tls": true, "ca_cert": "/etc/candyiiot/certs/AmazonRootCA1.pem", "client_cert": "/etc/candyiiot/certs/device-cert.pem", "client_key": "/etc/candyiiot/certs/private-key.pem", "topic_prefix": "candyiiot/gw001", "enabled": true } ``` ## Yocto构建 ```bash # 运行Yocto构建脚本 ./scripts/build_yocto.sh # 构建完成后,镜像位于: # yocto/build/tmp/deploy/rpm/ ``` ## 命令行参数 ``` Usage: candyiiot [options] Options: -c, --config 配置文件路径 (默认: /etc/candyiiot/config.json) -p, --port Web服务端口 (默认: 8080) -w, --webroot Web根目录 (默认: /var/www/candyiiot) -l, --log 日志目录 (默认: /var/log/candyiiot) -v, --version 显示版本信息 -h, --help 显示帮助信息 ``` ## API接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/devices` | GET | 获取设备列表 | | `/api/devices/:id` | GET | 获取设备详情 | | `/api/clouds` | GET | 获取云平台配置 | | `/api/system` | GET | 获取系统信息 | | `/api/config/save` | POST | 保存配置 | ## systemd服务 ```bash # 启动服务 sudo systemctl start candyiiot # 开机自启 sudo systemctl enable candyiiot # 查看状态 sudo systemctl status candyiiot # 查看日志 sudo journalctl -u candyiiot -f ``` ## 硬件平台 - **处理器**: RK3506 (A7+M0多核) - **内存**: 256MB+ DDR3 - **存储**: 8GB+ eMMC - **接口**: RS485 x2, RS232 x1, Ethernet x2, USB x2, CAN x1, 4G/WiFi ## 技术栈 - **语言**: C11 - **构建**: CMake + Yocto - **协议库**: libmodbus, libmosquitto - **JSON**: json-c - **Web**: 原生HTML/CSS/JS + REST API - **系统**: Buildroot / Yocto ## 许可证 MIT License