学习HAL库STM32F103C8T6(制作WIFI风扇调节档位)
摘要:本项目利用ESP8266 WiFi模块实现电脑远程控制风扇。ESP8266支持STA、AP、AP+STA三种工作模式,通过AT指令进行配置和控制。硬件连接采用USB转TTL工具调试,设置TCP透传模式实现远程通信。系统通过发送AT指令控制风扇模块(ATK-MB023),包括PWM调速功能。开发过程涉及ESP8266工作模式设置、网络连接调试和代码编写,最终实现电脑通过网络调试助手发送指令控制
项目:Wi-Fi遥控风扇
需求:电脑通过esp8266模块远程遥控风扇。
硬件清单
ESP8266模块

1.ESP8266介绍
ESP8266 是一个非常强大的 WIFI 模块,可以利用串口与单片机进行通讯,从而编程实现控制 ESP8266。利 用 ESP8266 可以访问一些 API,获取天气信息或者完成网络授时,也可以连接云平台进行开发。不过因为是 串口传输,速度较慢,不能用来传输图像、视频这些大容量的数据,但是传些传感器数据还是绰绰有余的。 我们常说的 ESP8266 是指 ESP8266 WIFI 模块,它是物联网和嵌入式开发常用的模块,其中 ESP8266 是 WIFI 模块的芯片型号。 ESP8266 有 ESP-01/01S/07/07S/12E/12F/12S 等规格,还有正点原子自研的 ATK-ESP8266 (修改了固件及 模组引脚)。
2.ESP8266工作模式
ESP8266 支持 STA、AP、AP+STA 三种工作模式。
STA 模式(Station)
一般用于远距离传输。ESP8266 通过路由器连接互联网,终端设备通过互联网实现对设备的远程控制。简单 来说,此时的 ESP8266 可以当作是一个客户端,可以向服务端进行数据的下载与传输。这就类似于,手机/ 平板/笔记本(客户端)可以通过 WIFI 连接到路由器进行上网。
AP 模式(Access Point)
一般用于近距离传输。ESP8266 作为热点,提供无线接入服务、数据访问,一般的无线路由/网桥工作在 AP 模式下,最多支持 4 台设备接入。简单来说,此时的 ESP8266 可以当作是一个服务端。这就类似于, ESP8266 变身为一个路由器,然后手机/平板/笔记本可以通过 WIFI 连接到 ESP8266 进行上网。
AP+STA 模式
两种模式的共存模式,可以通过互联网控制可实现无缝切换,方便操作。简单来说,此时的 ESP8266 可以当 作是一个路由器既可以做服务端接收也可以当客户端连接路由器,进行联网传输和控制。
3. AT指令介绍
3.1 什么是AT指令?
AT 指令(AT Commands)最早是由发明拨号调制解调器的贺氏公司为了控制拨号调制解调器而发明的控制 协议。后来随着网络带宽的升级,速度很低的拨号调制解调器基本退出市场,但是 AT 指令被保留了下来。 在嵌入式开发中,经常是使用 AT 命令去控制各种通讯模块,比如 ESP8266 模块、4G 模块、GPRS 模块等 等。一般就是主芯片通过硬件接口(比如串口、SPI)发送 AT 指令给通讯模块,模块接收到数据之后回应响 应的数据。
3.2 常用AT指令介绍
AT 指令分为四种类型:

AT 指令有近百条,但常用的就十几条,理解起来也非常简单,现在举例一些常用指令,并使用这些指令一步 一步的通过 TCP 连接到远程的服务器实现收发数据


4.调试ESP8266
USB 转 TTL 工具

接线如下:


使用 USB 转 TTL 工具调试 ESP8266,可以通过上面的表格进行接线。 3.3V 相接后可能无法启动 ESP8266,这是因为 USB 转 TTL 模组的 3.3V 并没有真的达到 3.3V,莫慌,直接 将 ESP8266 的3.3V 引脚接入 USB 转 TTL 的 5V 引脚,如果 ESP8266 会发烫到无法触摸就拔掉,如果温度 你手指还能接受,那就没问题,ESP8266 还是没那么脆弱的。
接好线之后,将 USB 端连接到电脑,打开串口调试助手就可以进行调试了。
4.1上电:正常工作验证
模块拿到手之后,我们需要先确保这个模组是正常的,否则后面的调试、写代码都是白搭。 首先,上电后,蓝色灯微弱闪烁后熄灭,表示正常工作。

还可以更进一步,接好线之后,然后打开串口调试助手发送 AT(并且还要敲一个回车),ESP8266 回复 OK,就是正常启动了。

4.2 开启/关闭回显(ATE1/ATE0)
发送了指令 AT ,模块回复了「AT OK」,即模块将发送过来的指令原封不动的先复述了一遍后接着发送有 效回复,我们称这种复述为 回显 。
发送 ATE0 ,关闭回显 发送 ATE1 ,开启回显

4.3 设置AP模式及AP参数(AT+CWMODE,AT+CWSAP)
发送 AT+CWMODE? ,查询模块当前处于哪一种模式;
发送 AT+CWMODE=1 ,设置 STA 模式;
发送 AT+CWMODE=2 ,设置 AP 模式;
发送 AT+CWMODE=3 ,设置 AP+STA 模式。

4.4 设置为STA模式(AT+CWMODE=1,AT+CWJAP,AT+CIFSR)
发送 AT+CWMODE=1 ,设置 STA 模式;
发送 AT+CWJAP="SSID","password" ,连接路由器;
发送 AT+CIPSTA? ,路由器分配给 ESP8266 的局域网 IP 以及网关地址和子网掩码;
发送 AT+CIFSR ,查询 ESP8266 的 IP 地址信息。

4.5 TCP透传
实现 TCP 透传需要搭建一个 TCP 服务器,这里我们就使用网络调试助手 + 自己的电脑就好。我的网络调试 助手是正点原子的,大家不一定要用我的,只要是网络助手都可以。
首先我们需要知道自己电脑的 IP 地址,有两种方式:
方法1:打开电脑的设置:

方法2:使用命令提示符:
1.按下WIN+R
2.输入cmd回车
3.输入ipconfig

端口号 TCP 协议一般填8080。

接下来我们利用串口助手将 ESP8266 连接到 TCP 服务器。 发送 AT+CIPSTART="协议模式","服务端IP地址",端口号 ,建立连接,协议模式有 TCP 和 UDP ;
但这个时候,我们再在输入框发送内容的话,依然是默认为指令。如果我们想把数据直接发送给 TCP 服务 器,那么就需要开启透传模式。
我们需要先发送 AT+CIPMODE=1 ,开启透传模式。然后,再发送 AT+CIPSEND ,才真正开始透传发送。 此时,你发送的任何数据,就直接传输到服务器了。


退出透传:先发送 +++(不要带回车),再发送 AT+CIPMODE=0 。
如果不退出透传,发出来的就算是 AT 指令,它也会被认为是普通字符串,直接透传给对方。
小风扇模块(ATK-MB023)

ATK-MB023 小风扇模块各引脚的描述,如下表所示:


功能描述:

代码实现
ESP8266模块代码编写





ESP8266头文件

PWM调速编写


主函数编写

通过网络调试助手给ESP8266发送指令控制风扇转动


更多推荐



所有评论(0)