前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ESA2GJK1DH1K基础篇: APP使用SmartConfig绑定Wi-Fi 设备并通过MQTT控制设备(V1.0)

ESA2GJK1DH1K基础篇: APP使用SmartConfig绑定Wi-Fi 设备并通过MQTT控制设备(V1.0)

作者头像
杨奉武
发布2020-05-14 15:28:39
4950
发布2020-05-14 15:28:39
举报
文章被收录于专栏:知识分享

前言

  

  请先学习使用上一节,透传方式!

  有些用户使用的模块可能是非透传模式,故,给用户提供一节非透传模式下的工程!

实现功能概要

   STM32控制WI-Fi模块以AT指令TCP非透传方式连接MQTT服务器, 实现MQTT通信控制.

提示

  非透传模式下:8266连接TCP服务器的指令为: AT+CIPSTART

  使用上面的 AT+CIPSTART指令连接TCP以后发送和接收数据是如下方式

1.发送数据

  1.1 首先发送 AT+CIPSEND=66\r\n    66:为要发送的数据个数

  1.2 等待模块返回 >

  1.3 发送要发送的数据给模块

  1.4 模块返回 Recv 66 bytes  

  1.5 模块发送完成返回 SEND OK

2.接收数据

  2.1 接收数据格式: +IPD,XXXX:真实数据    XXXX 为接收的数据个数

3.意外断开

  3.1 和TCP服务器断开:CLOSED\r\n

  3.1 和路由器断开:WIFI DISCONNECT\r\n

程序说明(连接MQTT)

一,连接TCP

二,发送连接MQTT协议

  2.1发送AT+CIPSEND=XXX    等待返回 >

  2.2发送协议

程序修改(MQTT通信)

一,有数据需要发送先发送AT+CIPSEND=XXXX

设置下接收超时,接收超时变量清零以后再发送实际的数据

设置发送实际的数据以后设置个发送超时,发送数据超时变量清零以后又重新开始

  在串口中断函数里面如果收到 > 会直接清零接收超时

  如果收到SEND OK 会直接清零发送超时

  注意:所有的超时时间变量如果大于0 ,则在1Ms定时器里面每隔减一,

  也就是说,超出了设定时间会自动接着循环发送数据!

  用户不需要担心如果发送失败会不会卡机的问题!

二,接收数据

  接收数据直接简洁了当,直接剔除数据中的+IPD,XXX:

  就相当于透传接收数据了

接收数据其它改动

1.接收数据使用的是STM32内存空闲中断+缓存管理

所以在以前所有的  if(Usart1ReadFlage) 的地方全部做了如下修改

请按照上一节绑定测试!

监控的打印如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 实现功能概要
  • 提示
  • 程序说明(连接MQTT)
  • 程序修改(MQTT通信)
  • 接收数据其它改动
  • 请按照上一节绑定测试!
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档