Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
MQTT
onenet
RT-Thread
【基于CYW43012 Wi-Fi & Bluetooth的试用报告】基于OneNet云平台使用Mqtt上报和订阅云控制开关设计
发布于 2024-01-20 10:18:44 浏览:481
订阅该版
#目录: ####Onenote云创建 ####设备信息及配置 ####mqtt工具登录测验 ####开发板代码上大体逻辑 ####效果演示 #正文 ##1. Onenote云创建 连接地址:https://open.iot.10086.cn/ 由于我注册时间没那么早,新注册出来页面跟老账号有很多不同 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/ebf6e30ace6bb2a1eacee27bb5711fb1.png) 创建出产品,在这里我创建了名为mProduct_PowerCtrl的产品,选择wifi连接方式,协议选择mqtt ![screenshot_undefined](undefined) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/0b33e1c85b611475fe8e0b94583ad148.png) ![screenshot_undefined](undefined) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/7c8ea240e907918991503011179477cf.png) 接下来在产品下面创建设备,命名为mCtrl_Device设备。 ![screenshot_undefined](undefined) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/6459481635e54e2ce7ca9a1c5c4b00fb.png) 在产品开发->交互配置->模板配置 可以配置选择app模板 ![screenshot_undefined](undefined) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/091089c641ba83456b6d4ce5412092ce.png.webp) 设备调试中可以跟连接设备仪器调试收发数据 ![screenshot_undefined](undefined) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/da7c231557d2bbb799d462884078d61e.png.webp) 在产品开发->设备开发 中可以下载该项目的sdk实例代码 ![screenshot_undefined](undefined) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/993b24301611141cb7baf9495c8b4712.png.webp) ##2. 设备信息及配置 我的设备信息具体配置如下,记录下来用于定义到代码中使用,注意token值需要用官网下载下来的token工具来计算 加密接口: mqttstls.heclouds.com 8883 非加密接口: mqtts.heclouds.com 1883 oneNet ip: "tcp://183.230.40.96:1883" 产品信息: 名: mProduct_PowerCtrl ID: q03px7K8O9 access_key: t9uT1VtT/X91U7+3IaETazsF0Rfx+T9rdZk1NU3Zf00= 设备信息: 名: mCtrl_Device 设备密钥: Q2xDbmxqYzNncGZKN3QyRG53TmZnbldmTUZMT1RBYXA= token: version=2018-10-31&res=products%2Fq03px7K8O9%2Fdevices%2FmCtrl_Device&et=1924833600&method=md5&sign=j2Nrp%2FoZSqHQAR%2F%2FlZ5lQw%3D%3D ```c #define MQTT_TEST_SERVER_URI "tcp://mqtts.heclouds.com:1883" #define MQTT_CLIENTID "mCtrl_Device" #define MQTT_USERNAME "q03px7K8O9" #define MQTT_PASSWORD "version=2018-10-31&res=products%2Fq03px7K8O9%2Fdevices%2FmCtrl_Device&et=1924833600&method=md5&sign=j2Nrp%2FoZSqHQAR%2F%2FlZ5lQw%3D%3D" #define MQTT_SUBTOPIC "$sys/q03px7K8O9/mCtrl_Device/thing/property/set" #define MQTT_PUBTOPIC "$sys/q03px7K8O9/mCtrl_Device/thing/property/set_reply" #define MQTT_WILLMSG "Goodbye!" ``` ##3. mqtt工具登录测验 ###上报数据: 测试工具配置好id以及设备名 密码等点击连接即可连通云端测试效果 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/c7acd782c8c694998a86e3c3b11e329f.png) 连接ok即可看到云端设备处于在线状态 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/3854d72c14b79c42239e47552e43c93a.png.webp) 使用$sys/q03px7K8O9/mCtrl_Device/thing/property/post 填入json格式配置数据点击Publish后即可上报到云端 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/9642b89d77e0c7eaa5ff417466887c71.png) 在云端设备属性中可以看到对应字段值改变为我们设置状态 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/848ddb2e0032aabede58702794b185d4.png) 切换到mqtt工具 log页面也可以看到log记录 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/3b832a25f96d0ddff25cdb65974457ef.png) ###订阅测试 在mqtt工具上订阅页面订阅消息 $sys/q03px7K8O9/mCtrl_Device/thing/property/set 当字段值被改变了会订阅到,在云端调试页面中我们比如增加电量add_ele 为45,点击属性设置即可报出。 调试日志中之所以会显示{ "title": "异常", "data": "错误码:TIMEOUT;错误消息:acc timeout", "timestamp": "2024-01-20 09:47:08" } 是因为我们设备没回应对应信息 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/f55d0b5bd8f32cf7337b77ade8fddcda.png.webp) mqtt订阅页面接收到的消息,当然log页面也可以看到 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/9402ea7ebb1b2acdae293c605d4dc1de.png) ##4. 开发板代码上大体逻辑 借此调通情况下我们就可以在英飞凌开发板上写代码了 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/134172d0f75e28f5140dd3ec772dda7e.png.webp) ###1.开机启动后打开wifi 因为这个板子没用接屏,于是开机后做了个自动连接wifi逻辑,开机后尝试3次连接,正常情况下基本1-2次就连接成功了 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/321d28758a261579ee1c01b74505d347.png) ###2.连网后mqtt启动 在判断wifi连接ok后就转到mqtt_start,我这里将设备id和token值传入,mqtt就可以登录进去onenet云了 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/3d88c0a0f8bba3fc0a3702fa52fa807d.png) ###3.订阅消息 最后连接ok则直接订阅服务器消息,这里订阅使用的 "$sys/q03px7K8O9/mCtrl_Device/thing/property/set" ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/c5b5d8a6070cace7bc7b04fd6786cde9.png) ###4.上报消息 在最后单独建立一个任务周期性去上报数据 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/eb105ca90afed4b8e54dc9c9ddaf770a.png) 将一些基本字段封装到函数中去1s一包的上报 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/c8b0e381ffb781bf267a5d00e2de3681.png) ##5. 效果演示 板子端就直接用的type-c供电,同时还有个调试串口可以看信息 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/4c4f018f4be6c5f5763f9e3dd677ab7d.png.webp) 开机后通过代码中加的打印信息看出wifi连接上,onenet云登录ok,随后订阅返回ok ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/83ad8856230a216c3b2b0a26cdf96456.png.webp) 随后便是周期性上报数据,从后台属性中,点开实时刷新可以看到数据变化 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/a4248e3262c619ad8bd0ef91f0a58ea7.png) 后台数据 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/2d9b49e7f5e9d4b05a2bf9f91b14a9cc.png.webp) 启动调试可以修改字段下发,可以看到订阅信息的打印 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/fd88f3f1e468680e63c79a42723eca87.png.webp) 订阅消息放到tm_prop_set中处理 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/11175dbfabdef2569aa26cb8c82cd03b.png) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/af7357a0d673c03a120c154ce828b397.png) 串口看到收到消息如下,即total_switch设置为true的操作 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240120/ee03c227aa261f18f19acfbfc68d9b7e.png)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
小手凉凉
这家伙很懒,什么也没写!
文章
7
回答
2
被采纳
0
关注TA
发私信
相关文章
1
RT-THREAD在STM32H747平台上移植lwip
2
正点原子miniSTM32开发板读写sdcard
3
反馈rtt串口驱动对低功耗串口lpuart1不兼容的问题
4
Keil MDK 移植 RT-Thread Nano
5
RT1061/1052 带 RTT + LWIP和LPSPI,有什么坑要注意吗?
6
RT thread HID 如何收发数据
7
求一份基于RTT系统封装好的STM32F1系列的FLASH操作程序
8
RT-Thread修改项目名称之后不能下载
9
rt-studio编译c++
10
有木有移植rt-thread(nano)到riscv 32位MCU上
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部