ESP8266 AT指令开发(基于STC89C52单片机): 关于上一节MQTT底层封包解包源码使用说明

前言

  请先看这一节了解一下MQTT

  https://www.cnblogs.com/yangfengwu/p/11762642.html  (了解MQTT)

  如果自己有兴趣可以自己去安装MQTT软件

  然后让自己的设备通过自己的服务器进行通信

  或者根据文章直接连接阿里云物联网平台

  

说明

  用户看完上面的文章以后,需要明确,MQTT软件就是一个TCP服务器

  然后在TCP服务器的基础上封装了一套协议

  只要是咱的模块可以实现TCP,那么就可以实现连接MQTT

  本人这节的MQTT包底层封装的非常全面,

  用户可根据自己对MQTT的理解合理的运用.

  由于本节的开发板使用的是89C58,其容量受到限制

  故只能提供以消息等级0进行通信的基础例子

  如果想了解封装的更加全面的代码请点击链接

  

先说一下程序的流程

  一,配网(控制wifi模块连接上路由器)

  配网采用的SmartConfig

  

  SmartConfig流程就是上一节的APP绑定设备的流程

  具体流程请看上一节

  模块配网以后便连接上了路由器,那么便可以访问广域网

控制模块连接MQTT

  1.请用户自行打开一下函数

  

  2.获取了MAC地址

  连接MQTT的Client采用 设备的MAC地址

  设备订阅的主题是:user/MAC地址

  设备发布的主题是:device/MAC地址

  所以获取了MAC地址

  

  3.连接TCP服务器

  实际上就是连接MQTT服务器,MQTT服务器就是一个TCP

  所以先用TCP连接上

  我使用的是AT+SAVETRANSLINK

  这个指令是直接进入透传模式+自动重连

  单片机通过串口发送的数据,wifi模块接收以后自动发给TCP服务器

  wifi模块从TCP服务器接收的数据直接通过串口发给单片机

  

  4.打包MQTT连接指令

  

  int mqtt_msg_connect(mqtt_connect_info_t* info,unsigned char **data_ptr,unsigned char* buffer,int buffer_length)

  

  判断是否连接上

  

  6.订阅主题

  

  int mqtt_msg_subscribe_topic(unsigned char* topic, int qos,unsigned char **data_ptr,unsigned char* buffer,int buffer_length)

  

  判断是否订阅成功

  

  7.发布消息

  

   

  

  int mqtt_msg_publish(unsigned char* topic,unsigned  char* date, int data_length, int qos, int retain,unsigned  char **data_ptr,unsigned char* buffer,int buffer_length)

  

  8.接收处理消息

  

  

  9.发送心跳包

  

  

结语

  这是最底层的MQTT封包

  用户可根据自己的单片机容量合理的再次封装

  

  

  

原文地址:https://www.cnblogs.com/yangfengwu/p/12536382.html

时间: 2024-08-29 07:42:42

ESP8266 AT指令开发(基于STC89C52单片机): 关于上一节MQTT底层封包解包源码使用说明的相关文章

ESP8266 AT指令开发(基于STC89C52单片机): 测试下诱人的程序(51单片机,8266,MQTT远程通信控制)

前言 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, 简而言之: 51单片机+ESP8266用AT指令实现实现MQTT,(连接的本人云服务器上的MQTT服务器软件) ESP8266订阅的主题:device/Wi-Fi的MAC地址 ESP8266发布的主题:user/Wi-Fi的MAC地址 下载单片机程序 安装APP 调整拨动开关-51单片机和ESP8266通信 跳线帽 打开APP 选择添加设备 手机连接自家的路由器,输入路由器

基于百度云推送的高仿微信实时聊天Android源码

基于百度云推送的高仿微信实时聊天Android源码 使用服务:百度云推送    功能分类:社交     支持平台:Android 运行环境:Android       开发语言:Java     开发工具:Eclipse 下载地址:http://sina.lt/z84 源码简介 基于百度云推送的一款Android高仿微信的实时聊天app 运行动态图

【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)

c#开源IM系统 把系统中集成的IM部分,提取出来,共大家参考,也可以作为大家学习networkcomms框架的一个demo 名称:微风IM 名称来源: 微 小的意思 是说系统比较简单 风 是由于UI使用的风绪老师多年前在网上开源的高仿真qq2008中的代码,在此表示特别感谢 数据库使用的是mssql 2005. c# 2.0开发 通信框架使用的是来自英国剑桥的c#开源通讯框架 networkcomms2.3.1  可以进入此页面下载 networkcomms网络通讯框架学习 使用network

步步为营_Android开发课_番外篇[5]_软件的安装与卸载源码

Focus on technology, enjoy life!-- 杨焕州 QQ:804212028 原文链接:http://blog.csdn.net/y18334702058/article/details/44624305 本文可能存在参考或借助部分外界资源,如有任何侵权行为,请与我联系! 主题:软件的安装与卸载源码 从SDcard安装软件: String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk

自开发一机100号亚马逊、facebook云控系统源码,及技术实现

亚马逊,facebook云控系统源码核心实现.一机100个账号,每个账号的硬件环境.机器码.IMEI.序列号,手机号.IP等等都不相同,每个账号都有自己独立的工作环境中.其主要的核心功能分为两大块: 1.一机多号的核心在于每个账号的硬件环境不同,以及ip的不同.首先在于解决每个账号的硬件工作环境.我们知道每个应用识别Android手机的标志有很多,并且有些各不相同.部分核心修改代码为: String MODEL=GetCatValue("MODEL");String MANUFACTU

基于JSP+Servlet开发二手交易购物商城网站 源码 B

开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目截图: 获取源码请联系博主-Q:782827013 原文地址:https://www.cnblogs.com/xlrjgzs/p/11145850.html

基于Struts2+Hibernate开发小区物业管理系统 源码 B

开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目截图: 获取源码请联系博主-Q:782827013 原文地址:https://www.cnblogs.com/xlrjgzs/p/11145770.html

基于JSP+Servlet开发简单的家居购物商城系统 源码 B

开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目截图: 获取源码请联系博主-Q:782827013 原文地址:https://www.cnblogs.com/xlrjgzs/p/11145890.html

基于JSP+Servlet开发OA企业办公自动化系统 源码 BL

开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目截图: 获取源码请联系博主-Q:782827013 原文地址:https://www.cnblogs.com/xlrjgzs/p/11145879.html