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

JavaScript069

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

开发资源

1、Esp8266 Wi-Fi模块

2、机智云串口调试软件

3、51单片机或者STM32单片机或者其它单片机

4、Windows 10

主要设计思路

一句话概括:将esp8266 Wi-Fi 模块连接上能上网的路由器(手机开热点作为路由器也行),连接过程需要做一些配置,以跟机智云平台对接。之后智能终端(手机或平板)跟Wi-Fi模块绑定后即可远程或者局域网控制设备。

简易介绍机智云官方提供的文档资料

机智云给开发者提供了大量开发支持,如开源的安卓/苹果SDK、APP等,开发者直接在开源的架构上二次开发即可,从而减少开发工作量。文档中心提供大量的接入教程,非常详细,此处不再重复说明。

机智云官方文档中心链接:http://docs.gizwits.com/zh-cn/overview/overview.html

步骤一:

我们要将自己的Wi-Fi模组跟机智云对接,必须对Wi-Fi模组烧录机智云官方给的GAgen固件。硬件厂商对硬件智能化的第一步是让设备能够联网,GAgent是机智云提供的一款兼容国内主流Wi-Fi模块、移动网络模块的模组系统。硬件厂商只需理解如何与GAgent进行通讯即可。

详细教程链接地址:http://docs.gizwits.com/zh-cn/GCP/wmodule/ESP8266.html#ESP8266

步骤二:

在机智云平台注册一个属于自己的账号。

1、创建产品

2、创建数据点

3、根据需求选择MCU开发或者SOC开发。MCU开发就是在51/STM32等单片机开发,代码可自动生成,不需要懂协议即可开发。SOC开发是指直接在ESP8266上开发。注意:自动生成的代码,MCU运行环境至少要有2K的RAM左右的大小,如果是普通的51单片机,RAM一般不足1K,STC15系列有2K大小的RAM,STM32基本所有系列RAM大小都超过2K。如果RAM不够的单片机,就需要自己懂协议,才能开发。协议其实也挺简单,无非就是一些你发数据包,我解析后回复给你数据,有来有往。

4、手机安装机智云开源的APP,进行调试测试

5、.......

详细教程:http://docs.gizwits.com/zh-cn/quickstart/UseMCU.html

步骤三:

建议直接使用机智云封装好的协议,直接自动生成包含协议相关的代码,前提是,你得保证你的单片机拥有超过2K的RAM大小空间。如果不满足RAM大小的单片机,则自己根据协议文档编写代码,通信协议在《开发向导》里下载,如图下所示。

根据文档协议写测试代码的时候,可以不着急在单片机上测试,机智云提供了一个串口调试助手,可在这里先测试好。

机智云机智云串口工具使用文档:http://docs.gizwits.com/zh-cn/deviceDev/%E4%B8%B2%E5%8F%A3%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.html

关于单片机上的应用开发,不管开发什么产品,协议上报数据格式都是固定不变的。遇到问题多看机智云官方给的教程即可解决绝大部分问题。

如果您是想通过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模块,符合802.11b / g / n 无线模块标准,支持UART-WiFi -以太网数据传输。专为移动设备和物联网应用设计,可将用户的物理设备连接到WiFi无线网络上,进行互联网或局域网通信,实现联网功能。

WG229

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

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