除了上述简单的wifi模块外,还有如下图所示的WIFI模组,具有更多的IO和控制资源
ESP8266是智能家居等物联网场景下常用的数传模块,具有强大的功能,通过串口转WIFI的方式可实现远距离无线数据传输、远程控制、在线查询等基本物联网诉求!
ESP8266模块有两种模式:
模式一:连网传输数据,就是连接你家中的路由器,即Station模式,本文主要基于该模式进行介绍
模式二:这个模块本身作为一个热点来让你的手机连接它,即AP模式
如果要彻底搞懂这个模块还需要了解AT指令集和mqtt协议,这些相对比较复杂,不在此展开,本文直接上干活,争取用最短的时间教会大家做出项目,并可以按照自己的需求修改
本系列文章就基于ESP8266-01S+STM32F103进行简单的数传/控制介绍,从而了解ESP8266的基本功能。内容比较多,我尽量每一步详细说明,请耐心看完。
二、电气特性
产品参数如下:
注意:模块电压为3.0-3.6V,不可直接用5V供电,电流大于500mA,需要单独供电
模块管脚定义:
三、透传设置
透传主要为了设置开机自动透传,断线自动重连,可实现数据连续上传,透传设置包括配置(1)WiFi名称(2)WiFi密码,这个设置对于后续数据自动上传至关重要,若WiFi信息更改需要重新透传设置。
常用的透传设置包括
(1)手动透传:借助串口助手+AT指令配置——本文介绍透传方式
(2)自动透传:这里主要借助Arduino单片机实现配置,如果这个单片机不熟悉的话建议选择方式一手动透传
接下来就重点介绍利用串口助手进行数据透传设置,准备工作如下:
(1)串口助手软件(文末附资源链接)
(2)USB转串口模块,某宝上搜索有很多**USB模块供电不够,需要单独外部供电**
(3)服务器网站(本文选用“贝壳物联”,网址:https://www.bigiot.net/)
手动透传接线说明
ESP8266-01S | USB转串口模块 |
---|---|
VCC | 3V3(注意:透传设置时模块功耗高,需外部供电) |
GND | GND |
RXD | TXD |
TXD | RXD |
CH_PD | 如果使用ESP8266-01需要接10K上拉,-01s无需接线 |
接线图
检测ESP8266模块是否正常
在串口助手中发送"AT"指令,如果返回“OK”则表示正常启动,否则需要检查下接线是否正确,电源及RXD/TXD是否接反,以及模块单体是否损坏
查询固件版本
使用"AT+GMR"命令查询当前固件版本:
通过命令透传设置
如果固件是V0.9.5.2版本,在串口助手中依次输入以下命令进行透传设置
//设置WiFi应用模式为Station
AT+CWMODE=1
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码(也可以是手机热点)
AT+CWJAP="SSID","Password"
//连接贝壳物联服务器
AT+CIPSTART="TCP","www.bigiot.net",8181
//设置为透传模式
AT+CIPMODE=1
//进入透传模式
AT+CIPSEND
完成以上命令重启,自动进入透传模式,并连接贝壳物联服务器
如果固件是V1.0+版本,在串口助手中输入以下命令进行透传设置(本文使用的固件刷新方法)
其中,SSID是路由器名称,Password是路由器WiFi密码,其他不需要修改
+++
AT
ATE0
AT+RESTORE
AT+CWMODE=3
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP="SSID","Password"
AT+CIPMUX=0
AT+CIPMODE=1
//这块是贝壳物联网站地址,不用修改
AT+SAVETRANSLINK=1,"121.42.180.30",8181,"TCP"
自此,ESP8266透传设置完成,后面连接单片机后就可以正常传输数据了
四、温湿度数据上传显示
前面介绍了ESP8266模块并完成透传设置,接下来就可以连接STM32单片机进行数据上传显示了,这里以STM32F103C8T6单片机为例说明,其他MCU也是类似的。STM32采集DHT11温湿度数据,然后再通过串口传输给ESP8266,通过wifi传输给服务器端显示。
ESP8266-01S和STM32F103C8T6接线图
ESP8266-01S | STM32F103C8T6 |
---|---|
VCC | 3V3(电流大于500mA,需独立供电) |
GND | GND |
RXD | PA9 |
TXD | PA10 |
CH_PD | ESP8266-01需要接10K上拉,-01s不需要 |
DHT11和STM32F103C8T6接线图
DHT11 | STM32F103C8T6 |
---|---|
VCC | 3V3 |
GND | GND |
DATA | PA8 |
系统框图
基于DHT11模块的温湿度数据传输框图如下所示,STM32接收到温湿度数据后再将数据通过串口传输给ESP8266模块,然后再传输给贝壳物联
贝壳物联服务器端设置
STM32和ESP8266配置好还只是数传的开始,只是硬件模块搭建好了,若想实现数据上传服务器端,还需要对服务器端进行设置,本文以贝壳物联为例进行说明,网站链接如下:
https://www.bigiot.net/
进入网站首页,点击右上角“注册”、“登录”拥有自己的账号
注册成功后主页面显示如下,注意这里面的 “ID”和“APIKEY” 这两个参数是和你添加智能设备后就有的,不会改变,后面代码中会用到
如果需要添加新的智能设备的话,可以在“智能设备”——“添加设备”中添加
由于是要将传感器采集到的温湿度数据上传到贝壳物联服务器中,所以这里面需要用到数据接口,如下所示,可以点击“添加接口”进行新增
添加配置完接口后显示如下,可以任意配置接口,但是需要注意的每个接口都有唯一一个"ID",这个ID很重要,后续代码中会体现出来
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!