| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> LiteOS + PahoMQTT 连接华为云 -> 正文阅读 |
|
[嵌入式]LiteOS + PahoMQTT 连接华为云 |
文章目录LiteOS + PahoMQTT 连接华为云一、前言使用小熊派连接华为云平台,实现数据的上传与下放,软件层使用 LiteOS 做系统支撑,移植 PahoMQTT 做通讯 二、平台端配置2.1 创建 IOTDA 云产品进入华为云控制台,进入 IOTDA 中,创建一个产品: 2.2 定义产品模型进入到产品,创建产品模型 2.3 创建属性和命令创建模型的温度接受属性 创建模型的 LED 控制命令 2.4 添加设备进入设备控制台,添加设备: 添加后会生成设备ID和设备密钥,这两个很重要,我们要保存好,后面要使用到 三、设备端配置3.1 设备端配置准备小熊派,建立工程,移植 LiteOS,这里我使用的是我之前移植的一个 MDK LiteOS 项目,同时移植了 LVGL,基于这个项目继续配置 esp8266 项目地址:链接 开启工程 LUART,配置 LUART 参数同时开启 DMA: 移植 Paho MQTT 工程代码: Paho MQTT 开源地址:Github ,将 MQTTPacket 下面的 SRC 源码移植进去 关于代码移植我们只需要关注 transport.c 和 .h 文件,这两个文件是 MQTT 的物理层接口,这里我移植串口发送进去,使用 信号量+DMA 的方式进行开发,防止串口资源使用冲突,同时进一步提高串口速率,部分代码如下: 具体代码可以参考我后面完整的工程代码: 这里是 MQTT 的底层代码,除此之外我们建立一个 ESP8266 文件用于发送数据到 ESP,配置 WIFI 模块,主要就是设置 WIFI 模块工作模式,连接 WIFI 以及连接华为云服务平台,参考代码如下,具体代码见实际工程: 连接 WIFI 主要就是 WIFI 的账号和密码,连接服务平台的话则需要服务平台的域名和端口,域名获取端口在控制台的 IOTDA 接口下面 接口如下,这里使用明文 MQTT 接口: 放到代码如下位置: 3.2 连接华为云下面创建 huawei.c 和 .h 文件用于连接华为云进行数据上报和下发: 根据 ID 和用户名以及密码调用 MQTT 接口连接华为云,这三个数据通过生成器生成,生成器下载地址:下载地址 将ID、用户名、密钥都填写到代码里面 然后调用 MQTT 接口连接
3.3 上传数据使用 Paho MQTT 到华为云的上传数据分为两步,第一步订阅主题,主题格式如下
devices_id 填写设备 ID,然后定义一个数据上传格式
service_id 是产品添加时设置 Home Temp 是产品的属性,然后调用宏接口填写数据:
编写完成后,我们在 mian 文件中创建相关任务,调用代码: 编译下载程序,在华为云的实验平台上进入设备调试模式,观察数据上传情况,可以看到数据正常上传: 3.4 接受命令接受命令主要分为三步 第一步先订阅命令接受主题并读返回数据检验有没有订阅成功
订阅主题如下:
具体格式可以查看华为云手册 订阅后就是一个死循环来循环读取订阅主题发送的命令,然后解析命令,将接受的命令打印出来,这里是 JSON 格式的返回数据,想进一步处理的话可以使用 CJSON
接受到数据后,要返回命令下发成功信息,先将接受的 ID 复制到新主题上,这个操作就是上个代码的 ropicString 字符串操作部分,然后我们根据主题发送成功信息
代码编写成功后在任务中调用该函数: 编译下载代码,我们在云端打开设备调试,给设备发送命令: 可以看到命令发送成功,接受返回的命令也成功了 小熊派的串口也打印出接受到的数据: 到此使用 LiteOS 移植 PahoMQTT 对华为云进行数据收发基本完成 四、代码链接GitHub 工程地址:链接 CSDN 下载地址:链接 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/8 4:32:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |