完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在和自己的小组捣鼓怎么将STM32的串口数据传输到MQTT服务器上,由于是第一次,所有走了一些弯路。在这里分享一下自己的这次经验。在开始之前,我想对我另外的两个队员:小杨、小行,说:你们幸苦了!
在开始之前,你得要会lua语言,并且要配置ESP8266的环境,在这里我推荐一个视频 ----> 视频地址。这个视频里详细的说了怎么配置ESP8266环境,并且也介绍了lua语言,个人认为足够用了,比较适合刚刚接触这个的人。 然后接下进行第一步,STM32与ESP8266的连接,开始我也琢磨怎么连接,结果就是最简单的连接就行了,STM32上的RXD连ESP8266上的TXD,剩下的类推就行了,然后在ESP8266中写入一个串口接收程序就行了。 程序很简单: uart.on("data",function(data) tmr.delay(1) print("从串口读取的数据:",data) end, 0) 这里要注意的一点,这个串口接收程序不能一开始就写,否则后面写入的程序可能会报错。 接下来就是ESP8266连接WiFi了,连接WiFi的程序如下: wifi.setmode(wifi.STATION) wifi.sta.config("SSID","PASSWORD") //SSID WiFi名称,PASSWORD WiFi密码 wifi.sta.connect() tmr.delay(500000) print(wifi.sta.getip()) 当看到返回了ip地址,表明连接已成功。 然后就是配置MQTT了。 配置如下: m=mqtt.Client(Clientid,3,MqttUserName,MqttUserPassword) m:connect(MqttServerIP, MqttServerPort, 0, function(client) print("connected") end ) m:lwt("/lwt", "offline", 0, 0) m:on("connect", function(client) print ("connected") end) m:on("offline", function(client) print ("offline") end) 里面的一些配置需要根据自己的情况设置参数。 Clientid:mqtt客户端ID(唯一). MqttUserName:Mqtt服务器用户名. MqttUserPassword:Mqtt服务器用户名密码. MqttServerIP:Mqtt服务器ip. MqttServerPort:Mqtt服务器端口. 然后进行连接,当看到 connected 则表明连接已成功。 当到这一步,基本已经成功了。上面的都是一步步测试程序。 接下来给上init程序: wifi.setmode(wifi.STATION) wifi.sta.config("SSID","PASSWORD") wifi.sta.connect() tmr.alarm(1, 1000, 1, function() if wifi.sta.getip()== nil then print("IP unavaiable, Waiting...") else tmr.stop(1) print("Config done, IP is "..wifi.sta.getip()) m=mqtt.Client(Clientid,3,MqttUserName,MqttUserPassword) m:connect(MqttServerIP, MqttServerPort, 0, function(client) print("connected") end ) m:lwt("/lwt", "offline", 0, 0) m:on("connect", function(client) print ("connected") end) m:on("offline", function(client) print ("offline") end) uart.on("data", function(data) m:publish("demo",data,0,1, function(m) end ) data = 0 end ) end end ) 好了,到这正式结束了。其实弄懂了流程就很简单,就是开始接触时不知道往哪下手。再次提醒下,以上程序代码都是用lua语言编写的。所以一定要有lua语言基础。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1767 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1069 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
727浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 20:04 , Processed in 1.080996 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号