7-STM32物联网开发WIFI+GPRS基础篇(STM32+Wi-Fi(AT指令)实现MQTT远程通信控制)

https://www.cnblogs.com/yangfengwu/p/10840517.html

新板子终于到了,耽搁时间了,抱歉哈!为了表达歉意,我做了几套代码提供给大家

这节的代码也作为整版测试

看名字就知道了,简单的说 就是  单片机使用AT指令控制模块实现MQTT通信控制

先看这节 STM32+WIFI(AT指令)实现MQTT通信控制:

一,下载STM32程序

1,方式一,串口下载(其他下载方式在最后补充)

①调整拨动开关位置 → 短接BOOT0和3.3V → 复位STM32

②打开下载软件,下载程序

选择对应的串口

去掉短接,复位STM32,调整拨动开关位置,让STM32和wifi模块通信

③测试

下载APP(该APP购买到安全篇即可获取,只有学到微信小程序篇才能看得懂源码,涉及的知识点多一些)

扫码下载

下面给WIFI配网(连接路由器)

长按PB5  等到指示灯快闪,松开按钮

如果成功配网,会自动跳转到主页面,并会新添加一个设备,点击那个新添加的设备

控制继电器吸合

控制继电器断开

目前还没有时间让自己的APP适应所有的手机,有的手机可能会出现明明连接着路由器,但是就是显示没有连接路由器,后面的时间里将进行优化!

如果自己的手机安装这个APP有问题

这样测试:

修改单片机源码

修改成自家的路由器

编译

按照上面的步骤下载单片机程序

最后别忘了去掉短接,复位STM32,调整拨动开关位置,让STM32和wifi模块通信

打开电脑软件

这是接收的你板子的数据,看哪个发的最频繁,应该就是你的,记住这个    dc:4f:22:10:b8:fc  (根据自己的哈)

然后,咱控制继电器 吸合  {"data":"switch","bit":"1","status":"1"}

 然后,咱控制继电器断开  {"data":"switch","bit":"1","status":"0"}

然后大家最好,改过来,如果很多人都用这种方式,那就分不出来了.....

为了预防大家都使用那个方法.再说另一种方法

一,下载STM32程序

1,方式一,串口下载(其他下载方式在最后补充)

①调整拨动开关位置 → 短接BOOT0和3.3V → 复位STM32

②打开下载软件,下载程序

选择对应的串口

去掉短接,复位STM32,调整拨动开关位置,让STM32和wifi模块通信

然后找一个额外的串口模块

这边也接到  RX (这个是WIFI的RX),  接到了 STM32的 TX    

用串口调试助手连接新口

剩下的步骤和上面一样了

然后,咱控制继电器 吸合  {"data":"switch","bit":"1","status":"1"}

 然后,咱控制继电器断开  {"data":"switch","bit":"1","status":"0"}

然后简单一下单片机程序

1,移植使用的官方的MQTT包

不过移植教程实际上是放到了升级篇

不过呢视频是公开的  https://space.bilibili.com/433769495

2,使用了JSON解析数据   https://www.cnblogs.com/yangfengwu/p/10860117.html

还有必须知道的

https://www.bilibili.com/video/av56798874 环形队列,串口数据处理

这个必须要看,我的所有的程序的整体思路,都是按照视频中说的做的

还有要说明的

如果其它问题,加群讨论即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏算法之名

分布式文件系统FastDFS安装配置

FastDFS是一个分布式的文件系统,他可以把上传到某一台服务器的文件分发复制到其他节点的文件服务器上做高可用。

23930
来自专栏渗透云笔记

汇编笔记(四)长文警告

观察这段汇编指令对应的机器码,汇编指令中的[idata]立即数,不论是否是数据还是内存单元的偏移地址,都会在对应的机器指令中出现,CPU执行的机器指令,它必须要...

10010
来自专栏Vi的技术博客

每日五分钟,玩转JVM(三):线程独占区

如果我们对计算机组成有所了解,那么我们一定会知道在计算机中有一块儿特殊的区域,称之为寄存器,寄存器包括了指令寄存器和程序计数器,这两样位于CPU中,作为程序运行...

8630
来自专栏Web前端开发

关于进程与线程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

9930
来自专栏腾讯云IoT

【IoT迷你赛】TencentOS真正的智慧城市场景

https://www.bilibili.com/video/av64297098/

372160
来自专栏poslua

聊一聊字符串内部化

字符串作为一种不可变值类型,在多数的语言里,其底层基本都是个只读的字节数组:一旦被创建,则不可被改写。正是因为其只读特性,如果有大量相同的字符串需要处理,那么在...

13320
来自专栏腾讯云IoT

【IOT迷你赛】婴儿哭声震动IOT监测系统

浏览继续论坛时候,突然发现腾讯IOT开发板,特别好奇。腾讯什么时候开始也要布局物联网了,去年试用了阿里云的板子,还有关注了阿里IOT的比赛,阿里在...

27830
来自专栏秃头哥编程

Linux syscall过程分析(万字长文)

为了安全,Linux 中分为用户态和内核态两种运行状态。对于普通进程,平时都是运行在用户态下,仅拥有基本的运行能力。当进行一些敏感操作,比如说要打开文件(ope...

53550
来自专栏SAMshare

ML_Basic-特征预处理操作指南

主要是删除原始数据集中无关的数据、重复的数据,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理异常值缺失值等操作

6820
来自专栏架构说

Linux性能优化篇-了解CPU上下文切换

所以我们会比较好了解CPU密集型,需要大量计算资源,会非常消耗cpu,I/O密集型需要等待I/O,会有大量的不可中断进程,

41320

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励