littlebot
Published on 2025-04-18 / 0 Visits
0

【源码】基于C++和ROS的物联网设备控制系统

项目简介

本项目是基于C++和ROS(Robot Operating System)的物联网设备控制程序。借助MQTT协议与阿里云IoT平台通信,可实现对窗帘、门铃、灯等物联网设备的控制,还能实时更新并发布设备状态信息。

项目的主要特性和功能

  1. 完成ROS节点初始化和MQTT连接参数配置,包含产品密钥、设备名称、设备秘钥、服务器地址和订阅/发布主题等。
  2. 利用阿里云IoT平台的MQTT服务,建立连接并完成参数配置。
  3. 定义MQTT事件处理函数,处理连接、重连和断开等事件。
  4. 定义MQTT消息处理函数,处理从MQTT服务器接收的消息,根据消息内容更新设备状态。
  5. 定义ROS节点订阅器和发布者,接收和发送控制指令与状态信息。
  6. 根据接收到的ROS控制指令,通过MQTT协议向设备发送控制指令,控制设备状态。
  7. 定期更新并发布设备状态信息,如窗帘、灯光、门铃状态等。
  8. 定义信号处理函数,在接收到特定信号(如SIGINT)时,断开MQTT连接并退出程序。

安装使用步骤

环境准备

安装ROS和阿里云IoT SDK,确保ROS环境变量设置正确。

代码编译

  1. 生成python的动态链接库,在scripts目录下运行python3 setup.py build_ext --inplace
  2. 生成deb,在castlex_bringup目录下依次运行bloom-generate rosdebian --os-name ubuntu --ros-distro melodicfakeroot debian/rules binary
  3. 使用C++编译器编译项目代码,生成可执行文件。

运行程序

运行生成的可执行文件,程序会自动连接到MQTT服务器,开始接收和发送消息。

测试控制

通过发送ROS控制指令,如rostopic pub -1 /door_control Int32 1控制门的状态,通过rostopic echo /door_state查看门的当前状态。

查看设备状态

程序会定期发布设备状态信息到MQTT主题,可通过MQTT客户端工具查看设备状态。

关闭程序

通过发送中断信号(如Ctrl+C)或手动关闭程序,确保程序优雅地退出。

注意:以上步骤假设用户已经下载并解压了项目的源码文件,且具备相应的编程环境和工具。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】