wifi通信
现如今已进入物联网时代,各种智能穿戴设备,智能家居等控制,无不体现无线通信的优势,其主要由 WIFI、蓝牙、Zigbee、4G 等模块协同微处理器或微控制器进行控制。
其中可以通过单片机的串口与ESP8266-WIFI 模块进行通信,通过手机与开发板上的WIFI 模块连接后控制开发板。
另外的学习方向可以是以C/C++语言通过Arduino IDE来开发NodeMCU
ESP8266-WIFI 模块介绍
ESP8266简介
ESP8266 是一个完整且成体系的 Wi-Fi 网络解决方案,能够搭载软件应用,或通过另一个应处理器卸载所有 Wi-Fi 网络功能。作者手中的ESP8266 是串口型WIFI,速度比较低,不能用来传输图像或者视频这些大容量的数据,主要应用于数据量传输比较少的场合,比如温度信息,一些传感器的开关量等。当然传输的数据量虽说少,但也能一次传输几千字节的数据,而且通信非常稳定,可以满足大多数应用。
ESP8266-WIFI模块简介
安信可推出的 ESP8266-WIFI 模块有很多,它们的使用方法都大同小异,我们只要将此模块引出的通信口与单片机 IO 口连接即可。
通用WIFI模块尺寸图如下图所示:
从 图中可以看到,WIFI 模块提供了一个2*4 的外接管脚,让我们连接到自己的电路中控制,这 8 个管脚两两间距是2.54mm。管脚功能定义如下:
VCC:3.3V 电源,开发板上丝印已经标了。
RST:ES8266 复位管脚,可做外部硬件复位使用。
CH_PD:使能管脚,高电平有效。
UTXD:串口发送管脚,与单片机串口的 RXD 相连。
URXD:串口接收管脚,与单片机串口的 TXD 相连。
GPIO0:GPIO0 为高电平代表从 FLASH 启动, GPIO0 为低电平代表进入系统升级状态,此时可以经过串口升级内部固件,暂时不需要,不用管。
GPIO2:此管脚为 ESP8266 引出的一个 IO 口,暂时不需要,不用管。
GND:GND 管脚。
其实我们不需要使用这么多管脚,只需要使用 WIFI 模块的串口UTXD、URXD管脚、RST 和 CH_PD 管脚即可,其他的不用管。
ESP8266-WIFI 模块支持 STA/AP/STA+AP 三种工作模式,默认串口通信波特率是 115200。
STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
AP 模式:默认模式 ATK_ESP8266 模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。
STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。
ESP8266-WIFI 模块仅在单连接状态,支持透传模式(TCP Client 透传和UDP透传)。下面以 STA+AP 模式为例,其他的模式操作百度即可。
ESP8266 常用指令
ESP8266-WIFI 模块采用的是 AT 指令操作,ESP8266 的指令非常多,但是我们不需要全部掌握,只需把常用的了解即可,遇到不会的还可以查看ESP8266 AT 指令集文档,里面详细介绍了各个指令的功能和使用方法。下面简单介绍下部分常用指令。
基础 AT 指令如下图所示:
模块默认串口通信波特率是 115200,由于作者手上的51单片机串口通信波特率达不到该值,所以首先需要将模块波特率设置为9600,然后再与单片机通信。
WIFI功能 AT 指令
改模块的其他用法如搭建客户端和服务器参考大神的文章,
硬件设计
又见独立电路,其中P5 接口是 WIFI/蓝牙模块的接口,可以将ESP8266-WIFI 模块接在此接口,模块的电源管脚给电后,将WIFI/蓝牙模块芯片的控制管脚接至J45 端子上,方便于我们自行将控制管脚与单片机连接。ESP8266-WIFI 模块一般只需要 UTXD、URXD、CH_PD、RST 控制管脚即可,RST 对应原理图的GPIO16,也就是 J45 端子上的 BT_STATE。这4个引脚中,串口必须和单片机串口连,另外2个用其它任意单片机管脚控制即可。
实操图下篇文章介绍,太困……