# MQTT **Repository Path**: xujiangfen/mqtt ## Basic Information - **Project Name**: MQTT - **Description**: 实现树莓派MQTT温度上报给阿里云 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-26 - **Last Updated**: 2025-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MQTT 项目说明 ## 项目简介 本项目是基于 Mosquitto 客户端的 MQTT 协议实现,主要用于与阿里云物联网平台进行通信。项目支持发布和订阅消息,并集成了 JSON 数据处理、SQLite 数据库存储、配置文件解析等功能。 ## 主要功能 - **MQTT 通信**:支持连接阿里云物联网平台,实现消息的发布与订阅。 - **JSON 数据处理**:使用 cJSON 库处理 JSON 格式数据,构建和解析物联网平台所需的消息体。 - **配置文件解析**:通过 iniparser 读取配置文件(mqtt_aliyun.ini),配置 MQTT 连接参数和通信主题。 - **SQLite 数据库**:支持将接收到的数据存储到 SQLite 数据库中。 - **网络信息获取**:提供获取本地 IP 地址的功能。 ## 环境依赖 - **Mosquitto**:MQTT 客户端库,需安装 Mosquitto 开发库。 - **cJSON**:JSON 解析库。 - **iniparser**:用于解析 ini 格式配置文件。 - **SQLite3**:用于本地数据存储。 - **dictionary**:提供字典结构用于配置项存储。 ## 编译与运行 ### 编译 使用项目中的 Makefile 进行编译: ```bash make ``` ### 运行 确保已正确配置 `mqtt_aliyun.ini` 文件,然后运行程序: ```bash ./mosquitto_pub ``` ## 配置说明 项目通过 `mqtt_aliyun.ini` 文件进行配置,主要包括以下内容: - **MQTT Broker 地址与端口** - **用户名与密码** - **客户端 ID** - **发布与订阅的主题** - **QoS 级别** - **JSON 数据格式配置** ## 使用说明 1. **配置 MQTT 参数**:在 `mqtt_aliyun.ini` 文件中填写阿里云物联网平台的连接信息。 2. **启动程序**:运行编译生成的可执行文件,程序将自动连接 MQTT Broker。 3. **发布消息**:程序将按照配置的发布主题和频率发送数据。 4. **订阅消息**:支持订阅指定主题的消息,并进行相应处理。 ## 文件说明 - **mosquitto_pub.c**:主程序文件,实现 MQTT 客户端的连接、发布与订阅功能。 - **mqtt_conf.c/h**:配置文件解析模块,读取 `mqtt_aliyun.ini` 中的配置。 - **cJSON.c/h**:JSON 数据处理模块,用于构建和解析 JSON 消息。 - **iniparser.c/h**:配置文件解析库,用于读取 ini 文件。 - **db_sqlite3.c/h**:SQLite 数据库操作模块,用于数据存储。 - **dictionary.c/h**:字典结构实现,用于配置项的存储与访问。 - **ifconfig.c/h**:获取本地网络信息模块。 ## 许可证 本项目遵循 MIT 许可证,请参见项目根目录下的 LICENSE 文件。 ## 贡献者 - LiYi <1751425323@qq.com>