当前位置: 首页 > news >正文

WiFi通信——STM32通过ESP8266-01S与阿里云通信

        嵌入式设计中常用的无线通信方式主要由蓝牙、WiFi、Zigbee、Lora、NB-IOT等等。这些是最常用的,也是在实际项目开发中根据项目的数据通信特点来选择相应的无线通信方式。本设计主要是讲解WiFi在嵌入式开发中的使用。

1. ESP8266-01S烧录固件

        WiFi通信的频段和蓝牙一样,都是2.4G免费频段。我们使用ESP8266-01S模块,这款WiFi模块的芯片是乐鑫公司设计的,由安信可公司生产的模组。相当于ARM公司设计芯片,ST公司生产STM32单片机。ESP8266-01S是基于乐鑫ESP8266芯片制造的一款WiFi通信模组,其内部集成了802.11b/g/n协议栈和TCP/IP协议栈,具备完整的Wi-Fi和网络功能。但是多数人都喜欢拿它来做WiFi通信使用。ESP芯片的多款模组选型如下:

1.1 ESP8266-01S模块引脚图

管脚号管脚名字功能
1脚GND接地
2脚IO2GPIO2/UART1_TXD
3脚IO0

GPIO0。下载模式:内部拉低

               运行模式:外部拉高或者悬空

4脚RXDUART0_RXD/GPIO3
5脚TXDUART0_TXD/GPIO1
6脚EN芯片使能端,高电平有效
7脚RST复位
8脚VCC3,.3V供电

提示:电源供电不足会导致烧录固件程序失败,烧录固件的时候就会出现一直在等待上电情况,建议采用外部专用电源供电,使用TTL转USB烧录时候可以用万用表检测一下你的TTL转USB模块3.3V供电是不是达到了3.3V,如果没有的话就把ESP8266-01S的把VCC端接到5V上。

        该模块出厂时默认自带出厂固件的,但如果进行其他开发需要烧录固件,比如如果想用机智云结合ESP8266-01S开发就需要烧录机智云的固件(这个可以在机智云网站找到),如果想用ESP8266-01S把STM32的数据传到阿里云上,就需要烧录MQTT的固件,因为传数据到阿里云上需要用到MQTT协议。

1.2 ESP8266-01S烧录MQTT固件

烧录方式有两种:一种是用ESP8266-01S的专用下载器下载,淘宝卖7块钱一个,下载器采用CH340C USB转TTL芯片,并增加了ESP8266自动下载电路,非常方便用户给安信可的ESP-01/01S 下载程序、升级固件、串口调试等,支持Arduino IDE 、安信可ESP8266 Flasher和乐鑫FLASH_DOWNLOAD_TOOLS 等下载软件软件一键下载,不需要接线,不需要按任何按键。WiFi模块会自动进入下载模式。我用下载器下载出现串口连接失败,不知道是不是我买的下载器有问题,已经弃用。下载器长这样:

把ESP8266-01S直接插上去就行了,注意插的方向。

一种是用USB转TTL模块配合烧录软件操作,我用这种方式烧录成功的,先把USB转TTL模块和ESP8266-01S接线,接线如下:

ESP8266-01SUSB转TTL模块
GNDGND
IO0GND
IO2悬空不接
RXDTXD
TXDRXD
EN3.3V(如果你的3.3V输出电压不够则改接5V)
RST3.3V(如果你的3.3V输出电压不够则改接5V)
VCC3.3V(如果你的3.3V输出电压不够则改接5V)

        接好线后把USB端插到电脑上,要提前在电脑上安装好CH340的驱动程序,这个网上教程和驱动程序一大堆,自己百度去吧。

        然后进入安信可公司官网->开发资料->WiFi模组系列->ESP8266系列->资源汇总->各类AT固件,选择第7个:MQTT透传AT固件(固件号:1471),点击固件下载

        然后下载烧录软件,进入安信可公司官网->开发资料->WiFi模组系列->ESP8266系列->资源汇总->开发工具,选择第二个:烧录WiFi固件工具:ESP_DOWNLOAD_TOOL,下载烧录软件

        固件和烧录软件准备好以后,解压烧录软件压缩包,然后打开下图的flash_download_tool_v3.8.5.exe

然后界面就如下分步讲解:

1.选择你上面下载的AT固件解压后的位置

2.然后手动输入0x00000(我不知道是不是自动加载的)

3.选择晶振频率24M(下图的40M是不对的,我懒得重新截图了,要改成24M)

4.选择SPI MODE:DOUT。若是下载失败可以改SPI MODE为QIO试看看。

5.选择FLASH SIZE:8Mbit。因为ESP8266-01S的flash大小就是8Mbit

6.选择你的CH340的端口,这个可以通过你电脑的设备管理器查看,我的是COM7,波特率选择115200

7.点击START开始烧录固件

然后拔插一下ESP8266-01模块的3V3那根线,相当于复位操作,然后可以看到显示下载中,下载进度条也可以看到。

等个几十秒,显示下载完成。

1.3 测试固件是否下载成功 

接下来只接这几个线,其他线都不接。

ESP8266-01S模块USB转TTL模块
3V33V3        
TXDRXD
RXDTXD
GNDGND

接好后如下图所示。

然后打开串口助手,选择对应的COM口,波特率选择115200,勾选新行

然后发送:AT。回复OK就说明烧录成功。

2.阿里云物联网网页端配置

配置的话可以参考这篇文章,如有侵权请联系我

https://archie.blog.csdn.net/article/details/135248254

按照这篇文章的配置就可以了,包括测试配置是否正确。

3.下位机代码实现

今天困了,明天下班继续写...

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Elasticsearch:Golang ECS 日志记录 - Logrus
  • 总结
  • Redis在SpringBoot中遇到的问题:预热,雪崩,击穿,穿透
  • kafka基础介绍
  • 卷与nfs实现多台主机容器之间的数据共享
  • 十、Docker版Redis集群搭建
  • DP学习——状态模式
  • idea将普通项目转换为maven项目
  • 使用JAVA代码实现生成二维码
  • windows网络应急排查
  • 以线程完成并发的UDP服务端
  • 使用kali对操作系统和网络服务类型进行探测
  • 列举excel中调整行高列宽的五种方法
  • Telegram曝零日漏洞,可伪装成视频攻击安卓用户
  • linux系统安装pytorch_中文地址命名实体识别案例
  • ES6指北【2】—— 箭头函数
  • 【刷算法】从上往下打印二叉树
  • angular2 简述
  • express + mock 让前后台并行开发
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • js正则,这点儿就够用了
  • laravel5.5 视图共享数据
  • Mac转Windows的拯救指南
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • php中curl和soap方式请求服务超时问题
  • 给Prometheus造假数据的方法
  • 前端js -- this指向总结。
  • 驱动程序原理
  • 探索 JS 中的模块化
  • 微信开源mars源码分析1—上层samples分析
  • 用jQuery怎么做到前后端分离
  • nb
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • (4.10~4.16)
  • (C语言)字符分类函数
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (MATLAB)第五章-矩阵运算
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (九)c52学习之旅-定时器
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (转)创业的注意事项
  • (转)母版页和相对路径
  • (自适应手机端)行业协会机构网站模板
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **CI中自动类加载的用法总结
  • .Net IE10 _doPostBack 未定义
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET企业级应用架构设计系列之应用服务器
  • .NET值类型变量“活”在哪?
  • .pop ----remove 删除
  • :“Failed to access IIS metabase”解决方法