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

news2024/9/23 2:28:51

        嵌入式设计中常用的无线通信方式主要由蓝牙、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.下位机代码实现

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1944613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文中的流程图参考图片

写论文的时候,在绘制流程图时,一直纠结n是大写还是小写,用不用斜体,号两边要不要空格。今天找到了一张标准的流程图来参考。图片来自 Zhi-Chang Ba et al, Combination of DCE-MRI and NME-DWI via Deep Neural Network for Predi…

学成在线开心学习

环境配置 第一章 项目介绍&环境搭建 项目背景 项目业务框架 项目技术架构 第二章 内容管理模块 本项目使用mybatis-plus的generator工程生成PO类、Mapper接口、Mapper的xml文件 模块工程 模型类的作用 课程查询接口 controller ApiOperation("课程查询接口&qu…

数字化就是要“用数字说话”运营,按“效果付费”经营

随着数字化技术的迅速发展,企业所处的市场环境发生了深刻的变革。在这个数字化转型时期,数据成为了企业决策的关键依据,“用数字说话”已成为企业运营的基本准则。而“效果付费”作为一种基于实际成果的商业模式,正逐渐受到企业经…

【QAC】Dashboard服务端如何配置

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决Dashboard服务端如何配置的问题。 2、 问题场景 客户想使用Dashboard,Dashboard服务端如何配置。 3、软硬件环境 1、软件版本:HelixQAC23.04 2、机器环境:Windows 64bit 3…

Linux_权限3

Linux所对应的文件类型 1.在Win下,有文件类型,通常通过后缀标识 日常用的就是windows系统这里不做举例. 2.Linux的文件类型不通过后缀区分(不代表Linux不用后缀) 其中需要注意的是第一个字符表示文件类型的含义 - :普通文件, 文本, 源代码…

AtCoder Beginner Contest 363(A~D题)

A - Piling Up 思路: 我们只需要找到下一阶段的下限。a / 100 是本阶段1 变成下一阶段&#xff0c;再 * 100变成下限&#xff0c;再与原来的相减即可。 代码: #include<bits/stdc.h> using namespace std; #define N 200010 typedef long long ll; typedef unsigned l…

Biomimetics 综述分享:肌电假肢手的交互操作控制综述

近些年假肢灵巧手成为了热点研究方向。此前有综述研究回顾了包括基于表面肌电信号的预测连续上肢运动的方法、基于表面肌电信号的多任务人机交互应用&#xff0c;以及肌电控制中的各种性能指标。近期&#xff0c;期刊Biomimetics&#xff08;JCR Q1&#xff09;发表了“面向肌电…

定时器+外部中断实现NEC红外线协议解码

一、前言 1.1 功能介绍 随着科技的进步和人们生活水平的提高&#xff0c;红外遥控器已经成为了日常生活中不可或缺的电子设备之一&#xff0c;广泛应用于电视、空调、音响等多种家电产品中。 传统的红外遥控器通常只能实现预设的有限功能&#xff0c;无法满足用户对设备更加智…

Mac 下华为鸿蒙 :DevEco Studio 开发工具下载

1.登录&#xff1a;华为开发者中心--开发--下载工具DevEco Studio 2.下载完成后 &#xff0c;安装&#xff0c;并创建一个新项目。 3.Tools --点击SDK Manager 下载SDK: 如果报&#xff1a;淘宝镜像源错误&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_H…

Threejs——辅助视图的旋转轴

官网的代码&#xff1a;link 实现这个效果 import {CylinderGeometry,CanvasTexture,Color,Euler,Mesh,MeshBasicMaterial,Object3D,OrthographicCamera,Quaternion,Raycaster,Sprite,SpriteMaterial,SRGBColorSpace,Vector2,Vector3,Vector4 } from three;class ViewHelper …

FP5207+音频功率放大器的组合解决方案-适用于便携式音频播放器、无线耳机、智能音箱和车载音响系统等高质量音频输出需求的产品,以提高电池供电的效率和输出功率

随着消费者对智能家居的需求增长&#xff0c;智能音响市场成为重要增长点。同时&#xff0c;音响技术也在不断发展&#xff0c;音响及扬声器的功能和性能不断提升。 蓝牙音箱&#xff0c;这类音箱供电是以锂电池为主&#xff0c;一般选用内置升压的音频功放芯片&#xff0c;音响…

Java聚合快递系统对接云洋系统快递小程序系统源码

&#x1f680; "聚合快递系统"无缝对接云洋系统&#xff0c;快递小程序新体验&#xff01;&#x1f4e6; &#x1f69a; 开篇&#xff1a;快递管理新纪元&#xff0c;一键接入云洋系统&#xff01; 你是否还在为繁琐的快递管理而头疼&#xff1f;多个快递公司账号切…

构建一个具有深色模式的简单React Web应用

在当今的Web开发世界里,创建一个既美观又功能丰富的用户界面是至关重要的。在本文中,我们将探讨如何使用React构建一个简单但功能强大的Web应用,它包含导航栏、内容展示区域和深色模式切换功能。 项目概述 我们的目标是创建一个具有以下特性的Web应用: 左侧导航栏,包含四个链…

JavaScript(12)——内置对象

JavaScript内部提供的对象&#xff0c;包含各种属性和方法给开发者调用。 Math Math对象是JavaScript提供的一个“数学”对象 包含的方法有&#xff1a; random:生成0-1之间的随机数 ceil&#xff1a;向上取整 floor&#xff1a;向下取整 max&#xff1a;找最大数 min&#…

Leetcode 721.账户合并(hash+dfs)☆

思路&#xff1a; 最核心的地方在于如何合并&#xff1f;这里是通过具有相同的email进行账户的合并&#xff0c;这个相同的email类似于图中的共同节点将两个账户连接起来&#xff0c;所以将原来 账户名 -> 邮件1 邮件2.。。变成hash 邮件1 ->账户id1&#xff0c;账户id2…

2024年jupyter notebook如何复制单元格cell输出的图片

背景 之前使用jupyter notebook复制图片一直是正常&#xff0c;右键就行&#xff0c;可以找到复制图片或者另存为的选项。 但是最近重新安装了anaconda&#xff0c;发现jupyter notebook升级了&#xff0c;和原来的界面不一样了。 如果有一个图片&#xff0c;我们右键&#x…

Concat() Function-SQL-字符串拼接函数

Concat() Function-SQL 在SQL中&#xff0c;CONCAT() 函数用于将两个或多个字符串连接在一起。 不同数据库管理系统可能有些许差异&#xff0c;但基本用法和语法通常是相似的。 语法 CONCAT(string1, string2, ...)string1, string2, …: 这些是需要连接的字符串参数。可以…

快速排序【示例】

冒泡排序可以说是我们学习的第一个真正的排序算法&#xff0c;并且解决了桶排序浪费 空间的问题&#xff0c;但在算法的执行效率上却牺牲了很多&#xff0c;它的时间复杂度达到了 O(N^2)。假如我 们的计算机每秒钟可以运行 10 亿次&#xff0c;那么对 1 亿个数进行排序&#xf…

弹性布局 flex layout HTML CSS

文章目录 效果图参考文档代码 效果图 其实弹性布局的好处是&#xff1a;当网页大小变化&#xff08;如窗口resize&#xff09;时&#xff0c;处于弹性容器(flex container)中的弹性元素(flex item) 之间的距离也会变化。 需要特别注意的是&#xff1a; 弹性布局的主要CSS如下。…