Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
dht11
MQTT
nuc980
【NUC980开发板DIY项目大挑战】MQTT通信测试
发布于 2022-06-03 06:19:30 浏览:729
订阅该版
[tocm] # 0、项目描述 AT指令控制ESP8266连接WIFI接入互联网,NUC980采集DHT11温湿度传感器数据,通过MQTT发送到消息服务器(本人是EMQX+腾讯云服务器)。同时NUC980订阅消息,对接收的json格式数据解析后打印显示。 # 1、DIY过程 ## 1.1 使用ESP8266、ESP-01S接入互联网 ### 检查版本 检查版本,如果显示是2016,则需要升级固件,否则at_device软件包无法支持 ![image.png](https://oss-club.rt-thread.org/uploads/20220603/95d7159834f082556ca3d7cbf7f62a67.png) [固件更新方式](https://blog.csdn.net/thisway_diy/article/details/117476867) ESP-01S模块接线图 ![image.png](https://oss-club.rt-thread.org/uploads/20220602/0b236d9e8aea691932f7c0a9cc613ede.png.webp) ESP8266接线方式:UART1接TX、RX ## 1.2 安装 at_device 软件包 ![image.png](https://oss-club.rt-thread.org/uploads/20220602/5dcfde5fe18aaf61649d225801ee770f.png.webp) 在at_device 软件包修改参数 ![image.png](https://oss-club.rt-thread.org/uploads/20220602/24e0a84766a3926956cac43fa1bb44fa.png.webp) ## 1.2 安装 pahomqtt 软件包 ![image.png](https://oss-club.rt-thread.org/uploads/20220603/03482f8b51023e32912cea1da270524d.png) ## 1.4安装 dht11 软件包 注意修改引脚 ![image.png](https://oss-club.rt-thread.org/uploads/20220603/8f006dc82152d87ff748bd4663311a5b.png) ## 1.5安装CJSON包 无需配置 # 2、MQTT通信 在 at_sample_esp8266.c 文件中,修改函数,使得WIFI连接成功后直接启动mqtt服务 ``` static int esp8266_device_register(void) { struct at_device_esp8266 *esp8266 = &esp0; at_device_register(&(esp8266->device), esp8266->device_name, esp8266->client_name, AT_DEVICE_CLASS_ESP8266, (void *) esp8266); // 如果esp8266初始化成功,则直接创建mqtt通信 if(esp0.device.is_init == RT_TRUE) { mqtt_start(1); } return RT_EOK; } ``` ## 2.1 NUC980与上位机通信测试成功 ![image.png](https://oss-club.rt-thread.org/uploads/20220603/6f002f47b36dfdeef4edc4c659d5de7c.jpg.webp) ## 2.2 NUC980数据接收解析 ``` static void mqtt_sub_callback(MQTTClient *c, MessageData *msg_data) { *((char *)msg_data->message->payload + msg_data->message->payloadlen) = '\0'; LOG_D("mqtt sub callback: %.*s %.*s", msg_data->topicName->lenstring.len, msg_data->topicName->lenstring.data, msg_data->message->payloadlen, (char *)msg_data->message->payload); //JSON提取值 cJSON* cjson_test = NULL; cJSON* cjson_value = NULL; cJSON* cjson_name = NULL; cJSON* cjson_hour = NULL; cJSON* cjson_min = NULL; LOG_D("Start parse\n"); char* name = NULL; /* 解析整段JSON数据 */ // 数据: {"temp":168,"humi":178} cjson_test = cJSON_Parse((char *)msg_data->message->payload); if(cjson_test == NULL) { LOG_D("parse fail.\n"); return; } cjson_name = cJSON_GetObjectItem(cjson_test, "Id"); name = cjson_name->valuestring; /* 提取值 */ cjson_value = cJSON_GetObjectItem(cjson_test, "Temp"); temp = cjson_value->valueint; LOG_D("temp set ok, value = %d.\n", temp); /* 提取值 */ cjson_value = cJSON_GetObjectItem(cjson_test, "Humi"); humi = cjson_value->valueint; LOG_D("humi set ok, value = %d.\n", humi); } ``` ## 2.3 NUC980与上位机数据发布 (待补充) # 可编译下载的代码 [Gitee链接](https://gitee.com/sethnie/nuvoton_nuc980) # 心得体会 1、NUC980总体上性能还是很不错的,最初想法是通过USB HOST读取xbox手柄数据,但是USB协议看了一半,实在没时间看了,现有的USB HID方面的demo,还未支持NUC980 USB HOST。 2、烧录速度还是很快的,赞。 3、下一步是使用以太网调通MQTT。 # 参考资料 [使用MQTT对接EMQX](https://blog.csdn.net/Mculover666/article/details/104680797) [ESP8266常见AT指令](https://blog.csdn.net/qq_51865191/article/details/123916907)
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
sethnie
这家伙很懒,什么也没写!
文章
5
回答
4
被采纳
0
关注TA
发私信
相关文章
1
umqtt 软件包使用后,连接上emqx服务器,过一会儿就掉线了
2
使用正点原子的 潘多拉 开发板 的例程19_iot_mqtt
3
mqtt软件包,不支持直接关闭?
4
kawaii_mqtt 申请内存崩溃
5
_signal_entry() 函数中dbg_enter在哪里定义呢?
6
start to connect mqtt server 失败
7
MQTT 在“ read 0:1, break “后断开重连
8
paho_mqtt线程相关疑问
9
RT thread studio kawaii mqtt 无法连接EMQ
10
调试bc26 ,断言错误failed at rt_thread_timeout
推荐文章
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
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部