章节
本项目教程总共分为四节
1.(当前文章)创建OneNET新版MQTT设备:为微信小程序与单片机通信打基础(微信小程序通信单片机前置任务)
2.ESP8266-01s入门:烧录AT固件与OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信单片机前置任务)
3.物联网实践教程:微信小程序结合OneNET平台MQTT实现51/STM32单片机智能控制【单片机代码篇】
4.物联网实践教程(终章):微信小程序结合OneNET平台MQTT实现51/STM32单片机智能控制【微信小程序篇】
!!强烈推荐阅读下方连接的新文章,更详细高效的连接方法!!
(已验证)stm32 + 新版 onenet + mqtt物联网(保姆级教程)
前言
之前在学校获得了一个新玩意:ESP8266-01S WIFI模块,去搜了一下这个小东西很有玩点,远程控制LED啥的,然后我就想着用一用,结果发现网上的资源很多都是比较过时的,或者跟不上版本。有大佬自己手搓了一个MQTT通信代码(很长很长),但是对于小白的我完全不懂为什么要这样写代码,所以也不太好移植,而且很多都只有说怎么上传数据,比较少说怎么操控单片机,有的也比较深奥(有可能是我自己没搜到相关内容)。后面通过自己慢慢查资料的理解,再结合前人的智慧,自己也是终于通过了微信小程序控制单片机等操作,所以我也是打算写一个博客用来记录自己的学习,以及让开始和我一样的小白少走一点弯路
引言
在这个物联网迅速发展的时代,通过智能设备实现数据的收集和远程控制已经变得越来越常见。本系列文章将引导您完成一个非常实用的项目:利用51单片机或者32单片机结合ESP8266-01s WIFI模块和OneNET云平台,构建一个智能监控系统。该系统能够和实时监测温度和光照等环境参数,并将数据上传到微信小程序。不仅如此,您还可以通过小程序下发指令来控制相连硬件,比如远程开关灯光。这不仅涉及物联网概念的实践,更融合了微信小程序这一现代移动互联网的便捷接入点,使得控制指令和数据展示触手可及。
在本篇文章中,我们将聚焦于项目的第一步——创建OneNET设备。该文章将详细指导您如何配置和注册您的设备至OneNET平台,确保您的单片机可以成功连接到ESP8266-01s WIFI模块,并建立起与微信小程序的通信桥梁。完成本篇内容后,您将为整个智能监控系统的搭建打下坚实的基础。
最终项目视频演示:
利用ESP8266的AT指令实现MQTT连接:
AT指令集是您在使用ESP8266模块时可以依赖的强大工具。它允许您通过简单的串口指令来管理复杂的网络连接和通信过程,大大简化了单片机连接到MQTT服务器的难度。这意味着我们无需深入底层网络编程,便可以轻松实现物联网设备的云端交互。
项目所需材料清单:
在开始我们的项目之前,请确保您拥有以下所需硬件和软件:
硬件:
- 单片机
- ESP8266-01s WIFI模块
软件及服务:
- OneNET新版MQTT服务
- ESP8266固件烧入软件
- STC-ISP单片机烧录软件
- ESP8266-01s固件
- 串口助手
- OneNET token计算软件
所有相关材料和软件已经在压缩包中准备好,您可以在文章底部找到下载链接。
OneNET云平台
OneNET云平台是由中国移动推出的一个开放性的物联网平台。它提供了设备连接、数据存储、设备管理和应用开发等一系列服务,旨在帮助开发者快速搭建和部署物联网应用。
OneNET云平台具有以下特点:
- 兼容性强:支持包括但不限于2G、3G、4G、NB-IoT、LoRa和WIFI等多种网络接入方式。
- 设备管理:提供设备注册、认证、连接状态监控、远程配置等设备管理功能。
- 数据处理:支持数据持久化存储,同时提供数据转发、数据解析、规则引擎等数据处理能力。
- 安全性:实现设备数据的加密传输,确保通信安全。
- 应用开发:提供API接口,方便开发者集成至自己的应用或系统之中。
MQTT
MQTT是一种轻量级的消息传输协议,专为物联网设备设计,适合在网络环境不太稳定,带宽有限的场景中使用。它基于发布/订阅模式,效率高,开销小,数据包占用带宽极低。
在OneNET平台上使用MQTT进行设备通信时,设备充当MQTT客户端,通过发布(publish)消息到平台,或者订阅(subscribe)平台消息来实现与云端的双向通信。
利用MQTT设备进行数据上传的步骤通常包括:
- 设备注册:在OneNET平台注册设备,获取设备ID等必要信息。
- MQTT连接:设备使用MQTT协议与OneNET建立连接,完成认证。
- 数据上传:设备发布消息到指定的Topic,将数据上传到云平台。
- 命令下发及控制:云平台可发布消息给设备,设备订阅对应Topic以接收命令或控制信息。
- 实时监控:开发者或用户利用平台提供的应用程序接口(API),实现数据监控和设备管理。
OneNET的MQTT服务使得IoT设备能够以一种稳定且高效的方式与云端资源进行交互,使得管理和操作变得更加简单灵活。
MQTT与HTTP区别
MQTT设备与HTTP设备在连接OneNET云平台时使用的协议不同,各自有着不同的特点和适用场景。以下是两者的主要区别:
MQTT:
- 轻量级协议:MQTT设计简洁,数据包小,适用于带宽有限的情况。
- 节省能源:设备可以长时间保持连接状态,但不会频繁发送数据,适合用电池供电的设备。
- 支持离线消息:通过“遗嘱消息”等机制,即使设备离线也能保证一定程度的消息传递。
- 低延迟:基于发布/订阅机制,可以快速响应和分发消息,几乎实时的通讯体验。
- 支持多对一和一对多通讯:一个主题可以有多个订阅者,适用于广播和分布式消息通讯。
HTTP:
- 基于请求/响应模式:客户端发起请求,服务器回应请求,没有长期连接状态。
- 更加通用和普遍:HTTP作为互联网的基础协议,被绝大多数网络应用支持。
- 连接简单:HTTP的无状态特性使得每次通信简洁明了,但每次交互都需要重新建立连接。
- 相对较高的功耗和延迟:因为需要频繁的连接建立和断开,对能量消耗和通信延迟有影响。
在物联网应用中,选择MQTT还是HTTP通常取决于特定的需求和场景。 如果需要低功耗、持续连接、低延迟及大量设备间通信的应用,MQTT是更好的选择。而对于偶尔传送数据或者和现有Web服务进行交互的应用,HTTP可能更为合适。
OneNET云平台提供了对这两种协议的支持,以满足不同物联网项目的需求。开发者可以根据具体情况选择最适合的通信方式。
创建OneNET账号
打开官方网址:中国移动物联网开放平台
创建一个账号
开发者中心
创建完成后打开开发者中心
创建一个产品
添加物模型
添加设备
到这里产品和设备就创建好了,上图的内容记得记录下来方便后续使用
Token生成
打开下载的软件
对应官方文档填写Token生成工具使用方法
资源包下载
创建完成,可开启下一章
至此,我们的设备已成功创建。请务必妥善保存您的设备名称、产品ID及生成的Token。这些信息是您在后续步骤中连接硬件、编写程序以及实现微信小程序控制等环节必不可少的关键要素。建议您将其记录在安全的地方,并确保在进行后续操作时能够轻松地调用这些数据。
敬请期待接下来的文章,我们将进一步深入探讨如何将单片机与ESP8266-01s WIFI模块相连接,并实现数据的双向传输。让我们一步步搭建起这座现代物联网的桥梁,解锁更多可能性。