| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> ESP8266 阿里云 MQTT物联网测试 -> 正文阅读 |
|
[嵌入式]ESP8266 阿里云 MQTT物联网测试 |
作者:title text-truncate |
?前面写了篇恢复ESP8266 发布APRS的文章 ESP8266 APRS 板子修改为提交数据到T2服务器的方法_五块钱的方便面的博客-CSDN博客一年多前,我折腾好了基于ESP8266 + BMP280 + 锂电池 方案做了个nodeMCU固件的APRS WX板子。https://github.com/bg6cq/nodemcu_bme280https://github.com/bg6cq/nodemcu_bme280自己动手编译nodemcu固件(ESP8266)_五块钱的方便面的博客-CSDN博客_nodemcu 固件编译起因或者说好处最近在玩ESP8266 + BMP280 的APRS气象数据报,其实很早之前就看到过BG6CQ老师的gihttps://blog.csdn.net/chenqioulin/article/details/124424242这两天有空,正好把MQTT的也玩玩,大名鼎鼎的物联网,首选肯定是阿里云了,对我这种玩具型的免费,而且服务端稳定。 nodeMCU的固件当时是编译进了MQTT支持的,BG6CQ老师的程序代码里面也同时写了MQTT的部分,不过不是针对阿里云,需要修改。 先说下结论:如果不是有大量的代码而使用他人的程序,真不如自己写了(lua上手程度真的和arduino没啥区别了),改了几天下来,逻辑改的乱七八糟,居然也能正常工作,真是神奇。 阿里云有好多SDK之类,我没用,还是用的nodeMCU 的Lua来改,毕竟有现成的代码。 还是做个笔记吧 1.阿里云部分云端部分网上有很多现成的文章,但是都写的过于复杂,我自己简单整理了下: 开通物联网--》新建产品--》添加设备。?? 个人理解:产品代表一个完整产品,设备代表产品上的小的功能模块,但是模块的功能定义或者说数据模型(就是传感器的温度气压电压这些)是在产品里面定义的。 创建好这几个以后,mqtt连接参数直接在设备的信息里面有个MQTT连接参数,并不需要网上那些文章说的还要单独去做什么计算。 2.软件测试创建好后不要直接去设备上改代码测试,下载MQTTX这个软件,垮平台的,UOS上用完全没问题。 MQTTX添加个连接,几个参数第一步说了设备信息里面有现成的了。 ?点链接后,可以直接订阅个topic,topic其实相当于一个消息通道,客户端订阅后,服务器下发消息,客户端就会收到。 服务器的topic在产品的topic类列可以看到,已经有很多现成的topic了,也可以自定义topic,我只想通过服务器获取esp8266上报的温度气压电压等信息,所以客户端不需要订阅,但这里为了获取8266要push的json报文格式,所以选下面的属性设置?订阅一个。 订阅后在设备的调试界面,对产品定义的几个属性做设置,这时候MQTTX应该能收到服务器下发的topic信息,这样就能得到报文的json格式,属性的标识符见产品的功能定义,这里面还可以对产品属性做修改。比如标识符,数据类型,取值范围,布进。除了里面默认有的,还可以自定义功能。 ?3.设备端代码设备商代码主要就是: mqtt客户端创建-》mqtt连接-》mqtt?publish(包含温度气压等)-》mqtt:close 3.1 mqtt 客户端创建及连接到服务器
3.2?mqtt ?publish
这个里面send_data()主要发送的APRS数据,写这一段是纠结的不行,BG6CQ老师原来的代码写了发送aprs mqtt http三类,想删吧又怕搞乱了,不删吧这些逻辑看起来头晕,凑合用吧。 主要就是mqttstr的连接,然后发送完关闭mqtt连接,这个Lua里面的回调函数(函数执行成功后可以将返回的数 据用来做新写的函数参数并在函数执行成功后执行)真是不习惯啊。比如:
半吊子改程序就是慢啊,上传后在esp8266上调试也费时间。 调试成功后,上阿里云管理界面可以选调试,能实时收到客户端传上来的报文。 最后在设备的物模型数据里面可以看到我们产品里面定义的属性,值就是我们ESP8266报上来的数据? 据说可以微信小程序来查看这些数据。接下来搞一个玩完,至于设备端订阅topic,目前我还没想到有需要esp8266控制的,所以目前暂时不搞,要做成好用的,那就可以订阅下topic,通过mqtt做代码更新等等,反正官方都给你定义好了那么多topic。 微信小程序未完待续~ |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:47:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |