ESP8266是一个完整且自成体系的 WiFi 网络解决方案,能够独立运行,也可以作为 slave 搭载于其他 Host 运行。ESP8266也是一个非常实用强大的硬件,可以与其它的芯片及组件进行组合搭配,做出自己想要的实现某些特定功能的单片机出来。ESP8266 强大的片上处理和存储能力,使其可通过 GPIO 口集成传感器及其他应用的特定设备,实现了最低前期的开发和运行中最少地占用系统资源。硬件图片如下图所示:
ESP8266有着自己的结构框架,对其底层原理有兴趣的朋友可以自己深度学习研究一下。其结构图如下所示:
ESP8266有着各类参数需要进行了解,某些参数比较重要,这里给出ESP8266较为齐全的模块参数列表:
分类 | 参数 | 取值 |
---|---|---|
无线参数 | 标准认证 | CCC/FCC/CE |
无限标准 | 802.11 b/g/n | |
频率范围 | 2.4G-2.5G(2400M-2483.5M) | |
发射功率 | ||
802.11b: 20dBm | ||
802.11g: 17dBm | ||
802.11n: 14dBm | ||
接收灵敏度 | ||
802.11b: (11Mbps)-91db | ||
802.11g: (54Mbps)-75db | ||
802.11n: (MCS7)-72db | ||
天线选项 | PCB板载天线、外置天线、IPEX接口天线、陶瓷贴片天线 | |
硬件参数 | 数据接口 | |
UART | ||
PWM、GPIO | ||
工作电压 | 3.3V | |
工作电流 | 平均电流 80mA | |
工作温度 | -40º~125º | |
存储温度 | 常温 | |
尺寸 | 5x5mm | |
外部接口 | N/A | |
软件参数 | 无限网络模式 | station/softAP/SoftAp+station |
安全机制 | WPA/WPA2 | |
加密类型 | WEP/TKIP/AES | |
升级固件 | ||
本地串口烧录 | ||
云端升级 | ||
定制开发 | 支持客户自定义服务器提供 SDK 给客户二次开发 | |
网络协议 | IPv4,TCP/UDP/HTTP/FTP | |
用户配置 | AT+指令集,WebSite操作,Android/ios终端 |
其中又可以分为网络服务功能以及无线更新ESP8266功能。提供了使用TCP和UDP通过WiFi进行通信的库等等。下面给出常见的功能列表:
名称 | 功能服务 |
---|---|
ESP8266WiFi | wifi基础功能 |
ESP8266HTTPClient | http客户端功能 |
ESP8266WiFiMulti | ESP8266WiFi多连接功能 |
ESP8266WebServer | 局域网web服务器功能 |
WiFiUdp | UDP服务 |
ESP8266mDNS | 局域网本地发现功能 |
DNSServer | 真正的DNS域名服务 |
ArduinoOTA | OTA无线更新 |
ESP8266有三种模式,分别为sta模式、Ap模式、混合模式(两种模式都有)
STA模式有几个特点:------我想连上谁
在连接丢失的情况下,一旦WiFi再次可用,ESP8266将自动重新连接到最近使用的接入点
模块重启也会发生同样的情况,因为ESP8266将最后使用的接入点认证信息(ssid账号,psw密码)保存到Flash(非易失性)存储器中
如果在Arduino IDE修改代码,但代码不更改Wi-Fi工作模式或接入点认证信息(ssid账号,psw密码),则ESP8266使用保存在Flash上数据来重新连接
AP模式—— 谁想连上我
AP(Access Point)模式可以理解为Station模式的相反面,用于将ESP8266模块作为接入点建立Wi-Fi网络,供其他Station模式的模块连接进来
AP模式可以用于Station模式的模块之间交互的中转站(让所有模块处于同一个WiFi网络中);
在将ESP8266模块(Station模式)连接到wifi之前,一般我们是不知道当前wifi网络的ssid账号和psw密码,那么我们怎么
告诉ESP8266呢? 在AP模式下,我们可以使用手机或者笔记本连接到它,然后我们就可以给ESP8266模块发送连接网络的ssid和psw。一旦完成,ESP8266自动切换到Station 模式,就可以连接到目标wifi接入点。
Sta+Ap模式——双方都想连
Sta+Ap混合模式可以理解为双方都项链,即既是客户端也是服务器端,双方都要连接,就比如与onenet服务器进行连接时,onenet连接ESP8266获取单片机的数据、ESP8266同样连接onenet进行onenet平台设备数据流的数据。
Ap+Sta模式具备Ap模式与Sta模式的功能,功能如上所示。当你使用的上面两者的功能都需要使用时,就可以用Ap+Sta混合模式。
ESP8266通过使用At指令来对ESP8266本身进行配置,如配置波特率、配置WiFi模式、配置多连接模式、配置连接服务器的端口等等。然后这里咱们较为详细的介绍一下这个ESP8266WiFi模块AT指令有哪些以及所代表的功能。
下面给出常用的At指令列表
AT指令 | 功能作用 |
---|---|
AT | 测试8266能否工作 |
AT+CWMODE=3 | 设置工作模式。1:station模式;2:ap模式;3:ap+station复位保存当前值 |
AT+RST | 复位 |
AT+CWLAP | 查询当前无线路由列表 |
AT+CIOBAUD=9600 | 设置波特率为960 |
AT+CWJAP=”WiFi热点”,”密码” | 加入当前WiFi热点无线网络 |
AT+CIFSR | 查询本机模块IP |
AT+CIPMUX=1 | 1:开启多连接;0:单链接(7在6后 |
AT+CIPSTART=“TCP”,“183.230.40.33”,80 | 连接服务器,这里TCP为TCP透传、183.230.40.33为服务器IP地址,80为端口号 |
AT+CIPMODE=1 | 0非透传模式;1透传模式 |
AT+CIPSEND | 向服务器发送任意长度数据即发送玩这个命令就可以开始发送数据了 |
AT+CIPSERVER=1,8080 | 创建服务器,1打开;0关闭。8080为服务器端口号。 |
AT+CIPSTO=Timeout | 设备服务器断开时间(0~28800s),Timeout即为时间 |
AT+CIPSERVER=0 | 关闭服务器,之后要执行AT+RST指令。 |
AT+CIPSTATUS | 查看当前连接 |
常用的就是这些AT指令。通过这些At指令已经能够基本满足我们需要实现的功能了。
1、需要一个ESP8266WiFi模块及其烧录硬件设备-USB固件烧录器,如果没有的话,建议上淘宝搜索ESP8266USB固件烧录器,一个仅几元钱。
2、需要下载串口/网络调试助手,下载地址https://download.csdn.net/download/EngineerofAI/12657360。
3、需要创建一个onenet平台上的产品以及设备,并为设备创建一个或多个数据流,如果对此不了解的朋友,可以参考智慧农业IOT-onenet简介里的图文教程进行产品设备数据流的创建。
前期工作做完之后,接下来就是进行ESP8266连接onenet平台的演示过程。下面给出详细教程:
在进行与onenet服务器连接之前,需要对ESP8266进行相关配置,顺便也补充介绍一下SSCOM串口/网络调试助手的用法。
1、首先通过USB固件烧录器将ESP8266与电脑进行连接,ESP8266与固件烧录器通过引脚串口相连,固件烧录器通过USB接口连接电脑,连接成功后在此电脑—>属性—>设备管理器—>端口中可以查看到已经连接的端口号。
2、打开SSCOM串口/网络调试助手,点击端口号列表选中ESP8266的端口(我这里是COM6)
3、点击打开串口,并将波特率、文件发送的相关设置进行配置。
4、先通过输入AT进行测试,看ESP8266是否正常。
5、通过AT指令更改波特率为9600,常用波特率为9600,ESP8266需要对波特率进行更改。
这样ESP8266的基本配置就弄好了,下面开始讲解与onenet服务器进行连接的详细过程。
完成以上步骤之后,相信ESP866已经成功配置好了,此时咱们可以开始连接onenet服务器了,下面给出连接onenet服务器的详细过程。输入命令
1、配置成Ap+Sta模式,并执行重启生效、查询设备IP操作。
先后执行AT指令:
AT+CWMODE=3//配置成 AP+STA模式
AT+RST//重启生效
AT+CIFSR//查询设备IP
2、通过AT指令连接热点,AT+CWJAP=“ssid”,“pswd” ,连接你手机的热点,“ssid”为热点的名称,"pswd"为密码。
我这里用户名为“777”,密码为“12345678”,注意输入的时候,符号都是英文符号,不然会报错。
3、顺序执行以下指令,连接服务器,并准备发送数据
AT+CIPSTART=“TCP”,“183.230.40.33”,80//HTTP服务器183.230.40.33/80
AT+CIPMODE=1//开启透传模式
AT+CIPSEND//开始透传
4、此时已经成功连接上了onenet服务器,现在咱们通过发送GET命令获取onenet数据进行测试。在设备ID与鉴权码出分别填充自己对应的设备ID与设备APIkey鉴权码。
GET /devices/设备ID/datastreams/temp HTTP/1.1
api-key:“鉴权码”
Host:api.heclouds.com
此时获取到的数据为29,而onenet平台上的temp数据流的值也是29,对onenet平台这个是怎么来的很懵的朋友们可以参考智慧农业IOT-onenet简介里面的教程进行产品、设备、数据流的创建。
说明服务已经连接成功了,当然还可以直接查看设备的状态,当然我这里由于是TCP透传,HTTP协议,所以是2短连接,显示的是未连接的状态,如果用EDP协议的话,就可以直接通过状态看出设备是否连接。这里就不做过多详解。
关于智慧农业ESP8266WiFi模块的相关知识的讲解就到这里了。智慧农业小产品(自制)的微信小程序端、单片机编程源码下载地址:https://download.csdn.net/download/EngineerofAI/12652208
SSCOM串口/网络调试助手下载地址https://download.csdn.net/download/EngineerofAI/12657360