怎么使用esp8266WiFi模块,js连接mqtt,实现简单的智能家居控制?

怎么使用esp8266WiFi模块,js连接mqtt,实现简单的智能家居控制?,第1张

如果您是想通过esp8266WiFi模块的MQTT协议来实现智能家居控制的话,可以了解一下支持MQTT协议的esp8266WiFi模块,比如SKYLAB的WG219/WG229以及WG231。

MQTT WiFi模块

MQTT 最初由 IBM 于上世纪 90 年代晚期发明和开发。它最初的用途是将石油管道上的传感器与卫星相链接。顾名思义,它是一种支持在各方之间异步通信的消息协议。异步消息协议在空间和时间上将消息发送者与接收者分离,因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输,但它与消息队列毫无关系,而是使用了一个发布和订阅的模型。在 2014 年末,它正式成为了一种 OASIS 开放标准,而且在一些流行的编程语言中受到支持(通过使用多种开源实现)。

物联网设备选择MQTT协议的原因分析

物联网 (IoT) 设备必须连接互联网。通过连接到互联网,设备就能相互协作,以及与后端服务协同工作。互联网的基础网络协议是 TCP/IP。MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。

MQTT 是一种轻量级的、灵活的网络协议,致力于为 IoT 开发人员实现适当的平衡:

1、这个轻量级协议可在严重受限的设备硬件和高延迟/带宽有限的网络上实现。

2、它的灵活性使得为 IoT 设备和服务的多样化应用场景提供支持成为可能。

WG219

WG219是一款基于ESP8266芯片方案的小尺寸低功耗低成本串口WiFi模块,符合80211b / g / n 无线模块标准,支持UART-WiFi -以太网数据传输。专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网通信,实现联网功能。

WG229

WG229是一款基于ESP8266芯片方案的小尺寸低功耗低成本串口WiFi模块,符合80211b / g / n 无线模块标准,支持UART-WiFi -以太网数据传输。专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网通信,实现联网功能。另外WG229仅需要通过出串口使用AT指令控制,就能满足大部分的网络功能需求。WG229高性能、低功耗、低成本、支持串口透传等特性,使得WG229在高集成、低功耗自动化和传感器解决方案的理想解决方案,WG229和LCS6260 Pin对Pin兼容,可替代ESP8266方案的ESP-12F。

支持MQTT协议的IoT UART接口WiFi模块也都是支持对接云端服务的。LCS6260支持对接阿里云、涂鸦云,WG219/WG229/WG231支持对接阿里云。

onenet是中移动物联网公司面向大众免费提供的物联网平台。简单点说就是一个存放、展示数据的服务器。12

百度搜索onenet,进入之后在上方标题栏找到开发文档链接,进入之后可以看到各种说明。 
onenet支持>

“` 
POST /devices/6523751/datapointstype=3 >

{“ADC_1”:10,”ADC_2”:20} 
“`>

—–首先, 第一行中的/devices/6523751/ 6523751是设备ID。api-key:后面跟着的正是前面所创建设备之后创建的APIkey(不是项目key,是设备key)。
Content-Length:25
25是下面这行{“ADC_1”:10,”ADC_2”:20}的长度
实际上最后一行只看到23个字符,然而我们习惯在}后面添加回车换行符,回车换行符\r\n是两个字符,所以是25Content-Length:25与{“ADC_1”:10,”ADC_2”:20}之间有一空行,千万不要忘了。
最后,最重要的一行{“ADC_1”:10,”ADC_2”:20}
这是json数据,其中“ADC_1”中的ADC_1正是我的数据流,在这里,你要替换成你的数据流。
冒号后面的10是我的数据,这里你要替换成你的数据。
json规定两个json数据之间用逗号分隔,显然“ADC_2”是我的第二个数据流,这里同时上传两个数据是没问题的。如果你只有一个数据流的话,可以是这种形式{“ADC_1”:10}     ,要记住,更改了{}里面的内容一定要重新计算数据长度,出错了就傻逼了。
废话不多说,下面演示使用PC机的网络调试助手进行调试。
我的网络调试助手是这样的

左边的是串口助手,右边的是网络调试助手。
1按照我的设置选择TCP client 要向服务器传数据  这是理所当然的  是必须的
2根据onenet公开协议接入指南,>


下面的窗口是我发送过去的信息,排版问题不要在意,只要确保你的报文在记事本里面是这样一个排版

 
不该换行的地方千万不要换行,数据有效长度后面一定跟着一个空行。
是不是真的上传成功了呢进入onenet,找到数据展示,我的是这样的

仔细点找到ADC_1和ADC_2  是不是最新数据是 15和60了呢?
最后,再给大家一些建议,>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/12739726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存