ESP8266用户手册
- 格式:docx
- 大小:29.24 KB
- 文档页数:3
ESP8266设置及说明
模块的VCC,GND,TXD,RXD与单片机的VCC,GND,RXD,TXD连接。
ESP8266模块是3.3V供电! 切记请勿接5V !模块从FLASH启动进入AT系统,必须将CH-PD引脚直接接VCC(不接的情况下,串口可能无数据),其余三个引脚可选择悬空。
(GPIO0为高电平代表从FLASH启动,GPIO0为低电平代表进入系统升级状态,此时可以经过串口升级内部固件 RST(GPIO16)可做外部硬件复位使用)。
测试系统不同,接线方法也选择多多,请各位根据自己的情况进行选择,推荐接法:必须将CH-PD引脚接VCC后,将UTXD,GND,VCC,URXD 连上USB-232(注WIFI模块与USB-232转换工具两者的TXD和RXD交叉接)即可进行测试。
新购卖回来的WIFI模块波特率是115200。
在本设计中,单片机的串口中断的波特率设为9600,切记在将ESP8266模块与单片机硬件连接之前,先用USB-TTL模块连接好ESP8266模块,将ESP8266模块用AT 命令改为9600的波特率。
使用的命令:
AT+UART=9600,8,1,0,0
注:命令后必须加回车换行,之后点发送。
接收窗口返回:OK 时,设置才算成功,如下图:
当接收窗口收到:
AT+UART=9600,8,1,0,0
OK
这时,必须把串口调试软件的波特率改成9600,同时需要把WIFI 模块的电切断,之后重新上电,来检验WIFI模块的波特率设置成功否,使用AT使命:
AT
接收窗口返回:OK
注:命令后必须加回车换行,之后点发送。
接收窗口返回:OK 时,设置才算成功。
esb8266参数
您可能指的是ESP8266,这是一种常用的Wi-Fi模块。
ESP8266有很多参数和配置选项,以下是一些常见的参数:1. `AT+CWMODE`:设置Wi-Fi模式,有三种模式可选:Station (客户端模式)、SoftAP(热点模式)和SoftAP+Station(同时支持客户端和热点模式)。
2. `AT+CWJAP`:连接到指定的Wi-Fi网络,需要提供网络名称和密码。
3. `AT+CIPSTART`:建立TCP或UDP连接到目标服务器,需要提供服务器的IP地址和端口号。
4. `AT+CIPSEND`:发送数据到已经建立的TCP或UDP连接中。
5. `AT+CIPCLOSE`:关闭当前的TCP或UDP连接。
6. `AT+CIFSR`:获取ESP8266的IP地址信息。
7. `AT+RST`:重启ESP8266模块。
以上只是一些常见的命令和参数,ESP8266还有很多其他的AT指令和配置选项可供使用。
具体的参数和用法可以参考ESP8266的官方文档或相关资料。
ESP8266模块使用方法准备工作-硬件接线 (1)准备工作-软串口测试 (2)AP模式下做为tcp server (4)Station+AP模式下做为tcp client (9)Station模式下做为tcp client (13)其他模式 (14)ESP8266常用 AT 指令 (14)准备工作-硬件接线硬件:Wifi模块ESP8266、Arduino UNO;软件工具:串口调试工具、USR-TCP232-Test 硬件说明:实物图接口说明引脚说明:引脚名接线说明与Arduino UNO相连的接线图UTXD UTXD接单片机的RX 3URXD URXD接单片机的TX 2CH_PO 接3.3V,用来选择AT指令模式; 3.3VVCC VCC接3.3V 3.3V,千万不要接成5vGND 接地GND说明:其他引脚悬空即可接线示意图如下:实物图:准备工作-软串口测试由于Arduino UNO只有一个串口,为了方便测试,用2,3引脚做一个软串口,并将该软串口与wifi模块的串口连接。
在测试wifi模块之前,先测试软串口是否正常工作。
测试时将引脚3与0短接。
#include <SoftwareSerial.h>SoftwareSerial mySerial(3, 2); // RX, TXvoid setup(){Serial.begin(9600);while (!Serial) {;}Serial.println("hardware serial!");mySerial.begin(9600);mySerial.println("software seria");}void loop(){if (mySerial.available())Serial.write(mySerial.read());if (Serial.available())mySerial.write(Serial.read());}软串口测试完成后,完成硬件连接,打开串口调试工具,上电后上电后,蓝色灯微弱闪烁后熄灭,红灯长亮,打开串口工具,出现如下图:软硬串口测试如果复位出现乱码,改下波特率即可。
ESP8266三种模式配置Station(STA)模式是设备通过Wi-Fi连接到现有的路由器或其他接入点,让设备能够访问互联网。
在STA模式下,ESP8266可以作为一个客户端连接到Wi-Fi网络,获取到IP地址后就可以和互联网进行通信。
通过STA模式,ESP8266可以作为无线终端连接到现有的网络,实现远程控制、数据传输等功能。
Access Point(AP)模式是ESP8266作为一个热点(无线接入点),创建一个小规模的Wi-Fi网络。
在AP模式下,ESP8266可以充当一个路由器,其他移动设备可以连接到其创建的Wi-Fi网络,实现设备之间的无线通信。
通过AP模式,ESP8266可以实现局域网内的通信需求,比如无线监控、传感器数据采集等。
混合模式(STA+AP)可以同时支持STA和AP两种模式,即在STA模式下连接到现有的Wi-Fi网络,同时又创建一个AP模式的热点。
通过混合模式,ESP8266既可以接入互联网,又可以为其他设备提供无线连接。
混合模式在物联网领域的应用非常广泛,可以将设备连接到互联网,同时也可以让其他设备通过热点连接到此设备进行数据传输和通信。
在ESP8266的开发过程中,可以通过AT指令或者使用Arduino的ESP8266库来配置不同的工作模式。
通过AT指令,可以通过串口与ESP8266进行通信,设置相应的模式。
通过ESP8266库,可以使用Arduino IDE进行编程,简化了开发过程,提供了更高层次的封装。
总结:ESP8266支持Station(STA)模式、Access Point(AP)模式和混合模式(STA+AP)。
Station模式用于连接到现有的Wi-Fi网络,Access Point模式用于创建一个小规模Wi-Fi网络,混合模式同时支持STA和AP两种模式。
在开发过程中,可以通过AT指令或者使用Arduino 的ESP8266库来配置和控制不同的工作模式。
OCROBOT SEED(WIFI模块)AT指令参考手册
通用指令部分
AT+Reset
版本号
AP操作指令部分
AT+MODE
AT+ExtAP
退出网络
AT+SAP
配置模块为可登陆的wifi热点(仅在AP与Station+AP模式下有效)
TCP/IP指令部分
AT+MUX
配置单链接模式或者多链接模式(一般使用推荐配置成单链接模式,使用简单)
建立TCP或者UDP链接
单链接模式下
多链接模式
获取链接状态
AT+UpDate 发送数据
多链接模式
关闭链接
单链接模式
建立服务器,接受数据(请注意:一定要开启多链接模式才能启用)
其他显示指令
+IPD指令
这个指令为系统收到数据的自动返回指令格式如下+IPD,<数据长度>,<数据> +IPD,<链接ID>,<数据长度>,<数据>。
前言ESP8266有很多好玩的技术,比如sniffer、smartconfig。
这一次就介绍的是E SP-NOW。
那么什么是ESP-NOW呢?根据官方文档介绍ESP-NOW 是一种短数据传输、无连接的快速通信技术,适用于智能灯、遥控控制、传感器数据回传等场景。
下面会简单介绍ESP-NOW,并放出使用示例代码(基于ESP8266 SDK 2.0),想更深入研究请参考官方文档。
面向的读者本文主要面向ESP8266开发者,阅读本文需要有一定的ESP8266开发基础,比如开发环境的搭建、SDK的开发等。
开发平台和工具∙Windows 10 x64∙ESP8266 IDE 2.0∙NodeMCU(4MB Flash)∙ESP8266_NONOS_SDK 2.0.0ESP-NOW特性ESP-NOW 支持下面特性:∙单播包加密/不加密通信∙加密和非加密配对设备混合∙可携带最长250字节的用户数据(payload)∙支持设置发送回调函数限制∙暂时不支持广播包∙加密配对有数量限制(具体参考文档)∙用户字节限制为250字节ESP-NOW 的Role在配置ESP-NOW 的时候需要给设备配置role,ESP-NOW有如下role:∙IDLE。
不设置角色,不允许发送数据。
∙CONTROLLER。
控制方。
∙SLAVE。
被控制方。
∙COMBO。
控制方&被控制方。
其中,ESP8266的Wi-Fi模式有station和softAP。
当ESP-NOW作为CONT ROLLER时,数据优先从station接口发出。
当作为SLAVE时,数据优先从so ftAP接口发出示例代码博主自己编写的示例代码user_esp_now.c如下:/** user_esp_now.c** Created on: 2017年7月8日* Author: Administrator*/#include "ets_sys.h"#include "osapi.h"#include "user_interface.h"#include "espnow.h"#define CONTROLLER//#define SLAVE// 是否使用加密#define SECURITY 0#if SECURITYu8 g_key[16]= {0x12, 0x34, 0x56, 0x78,0x12, 0x34, 0x56, 0x78,0x12, 0x34, 0x56, 0x78,0x12, 0x34, 0x56, 0x78};#endif// 使用虚拟的MAC地址,station设置MAC似乎不行u8 controller_mac[6] = {0xA0, 0x20, 0xA6, 0xAA, 0xAA, 0xAA}; u8 slave_mac[6] = {0xA2, 0x20, 0xA6, 0x55, 0x55, 0x55};#define ESP_NOW_SEND_INTERVAL 3000static os_timer_tg_esp_now_timer;/** 函数:user_esp_now_recv_cb* 说明:ESP-NOW接收回调函数*/staticvoid ICACHE_FLASH_ATTRuser_esp_now_recv_cb(u8 *macaddr, u8 *data, u8 len) {int i;static u16 ack_count=0;u8 ack_buf[16];u8 recv_buf[17];os_printf("now from[");for(i = 0; i <6; i++){os_printf("%02X ", macaddr[i]);}os_printf(" len: %d]:", len);os_bzero(recv_buf, 17);os_memcpy(recv_buf, data, len<17?len:16);os_printf(recv_buf);os_printf("\r\n");if (os_strncmp(data, "ACK", 3) == 0){return;}else{}os_sprintf(ack_buf, "ACK[%08x]", ack_count++);esp_now_send(macaddr, ack_buf, os_strlen(ack_buf)); }/** 函数:user_esp_now_send_cb* 说明:ESP-NOW发送回调函数*/void ICACHE_FLASH_ATTRuser_esp_now_send_cb(u8 *mac_addr, u8 status) {int i;for(i = 0; i <6; i++){os_printf("%02X ", mac_addr[i]);}if(1==status){os_printf("SEND FAIL!\r\n");}elseif(0==status){os_printf("SEND SUCCESSFUL!\r\n");}}/** 函数:user_esp_now_send* 说明:ESP-NOW数据发送*/void ICACHE_FLASH_ATTRuser_esp_now_send(u8 *mac_addr, u8 *data, u8 len){/* the demo will send to two devices which added by esp_now_add_peer() */ //u8 result = esp_now_send(NULL, data, len);/* send to the specified mac_addr */u8 result = esp_now_send(mac_addr, data, len);}/** 函数:user_esp_now_timer_cb* 说明:定时器回调函数*/staticvoid ICACHE_FLASH_ATTRuser_esp_now_timer_cb(void* arg){u8 *mac = arg;u8* send_data = "Hello World!";int result = esp_now_is_peer_exist(mac);//os_printf("peer_exist = %d\r\n", result);user_esp_now_send(mac, send_data, os_strlen(send_data));}/** 函数:user_esp_now_timer_init* 说明:定时发送 ESP_NOW 数据包*/void ICACHE_FLASH_ATTRuser_esp_now_timer_init(u8 *mac){os_timer_disarm(&g_esp_now_timer);os_timer_setfn(&g_esp_now_timer, (os_timer_func_t *)user_esp_now_timer_c b, mac);os_timer_arm(&g_esp_now_timer, ESP_NOW_SEND_INTERVAL, 1);}/** 函数:user_esp_now_init* 说明:ESP-NOW初始化*/void ICACHE_FLASH_ATTRuser_esp_now_init(void){int result;if (esp_now_init()==0) {os_printf("esp_nowinit ok\n");// 注册 ESP-NOW 收包的回调函数esp_now_register_recv_cb(user_esp_now_recv_cb); // 注册发包回调函数esp_now_register_send_cb(user_esp_now_send_cb);#if SECURITY// 设置主密钥//esp_now_set_kok(g_key, 16);#endif/* role* ESP_NOW_ROLE_IDLE - 空闲* ESP_NOW_ROLE_CONTROLLER - 主机* ESP_NOW_ROLE_SLAVE - 从机* ESP_NOW_ROLE_COMBO - 主/从机*/#if defined(SLAVE)os_printf("==================\r\n");os_printf("SLAVE\r\n");os_printf("==================\r\n");esp_now_set_self_role(ESP_NOW_ROLE_SLAVE);//esp_now_add_peer(controller_mac, ESP_NOW_ROLE_CONTROLLER, 1, NULL, 1 6);#if SECURITYesp_now_set_peer_key(controller_mac, g_key, 16);#endif#elifdefined(CONTROLLER)os_printf("==================\r\n");os_printf("CONTROLLER\r\n");os_printf("==================\r\n");esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);esp_now_add_peer(slave_mac, ESP_NOW_ROLE_SLAVE, 1, NULL, 16);#if SECURITYesp_now_set_peer_key(slave_mac, g_key, 16);#endif// 不需要连接Wi-Fiwifi_station_disconnect();//wifi_station_connect();user_esp_now_timer_init(slave_mac);#endif} else {os_printf("esp_nowinit failed\n");}}/********************************************************************** **//** 函数:user_esp_now_set_mac_current* 说明:设置虚拟MAC地址,必须在user_init() 函数里调用*/void ICACHE_FLASH_ATTRuser_esp_now_set_mac_current(void){#if defined(SLAVE)wifi_set_macaddr(SOFTAP_IF, slave_mac);wifi_set_opmode_current(SOFTAP_MODE);#elifdefined(CONTROLLER)// 设置station MAC地址wifi_set_macaddr(STATION_IF, controller_mac);// 设置为station模式wifi_set_opmode_current(STATION_MODE);#endif}以上代码的功能分为两部分:CONTROLLER和SLAVE。
esp8266开发教程
以下是一个简单的ESP8266开发教程:
第一步:硬件准备
- 准备一块ESP8266开发板(如NodeMCU)
- 连接USB数据线,将开发板与电脑连接
第二步:环境搭建
- 下载并安装Arduino IDE开发环境
- 在Arduino IDE中选择合适的开发板(例如Generic ESP8266 Module)
- 安装ESP8266的相关库文件(可在Arduino IDE的“工具”菜单中找到)
第三步:编写代码
- 打开Arduino IDE,创建一个新的空白项目
- 在代码编辑器中编写你的程序逻辑
第四步:上传代码
- 在Arduino IDE中选择正确的端口(通过“工具”菜单)
- 点击“上传”按钮,将代码上传至ESP8266开发板
- 等待上传完成并进行编译、烧录的过程
第五步:测试和调试
- 使用串口监视器(通过Arduino IDE的“工具”菜单访问)来检查程序的输出
- 验证程序的功能是否符合预期
以上是一个简要的ESP8266开发教程,希望对你有所帮助。
记得先准备好硬件,然后搭建开发环境,编写代码,并完成上传、测试和调试的步骤。
祝你成功!。
ESP8266用户手册
ESP8266是一种广泛使用的无线模块,由Espressif Systems开发,被广泛使用于物联网和嵌入式设备的应用。
ESP8266的设计目标是为IoT应用提供连接便捷、底层可编程性和低成本的方案,它采用了Tensilica的L106 Diamond系列的32位大小端MCU。
由于其强大的功能和易于使用性,ESP8266已经成为了DIY电子爱好者的最爱。
本文将详细介绍ESP8266用户手册,以帮助新手更好地使用该模块。
1. 硬件介绍
ESP8266是一款集成了Wi-Fi的芯片,它与主控芯片之间通过串行通信进行交互。
ESP8266的主体尺寸为16mm x 24mm,并且它的引脚和结构都是十分紧凑的。
ESP8266通常工作在3.3V的电压下,但是如果需要与5V的主控芯片进行通信,就需要进行电平转换。
2. 软件介绍
在软件方面,ESP8266支持多种开发平台和语言。
目前,ESP8266最受欢迎的开发平台是Arduino IDE,用户可以通过该平台进行快速的开发工作。
此外,ESP8266也支持其他语言和开发平台,例如Python、Lua等。
3. WiFi模式
ESP8266支持三种WiFi模式: STA模式、AP模式和STA+AP 模式。
STA模式是指将ESP8266作为一个WiFi的客户端连接到一个现有的WiFi网络,AP模式是指将ESP8266作为一个WiFi热点使其它设备可以连接到它,STA+AP模式是指将ESP8266同时作为WiFi客户端和WiFi热点。
4. AT指令
ESP8266可以通过AT指令进行控制。
当我们要将ESP8266作为单片机处理时,我们可以使用AT指令来控制它的各种功能。
AT指令通常以“AT”开头,其后跟着具体的指令。
例如,
AT+GMR是一个用来获取ESP8266固件版本信息的指令。
5. 固件升级
在使用ESP8266过程中,我们可能需要升级不同版本的固件以获取新的功能和修复BUG。
在进行固件升级之前,我们需要了解一些关于固件升级的基本概念和注意事项。
当前,ESP8266固件的最新版本号是ESP8266_NONOS_SDK_V3.0.0。
总之,ESP8266是一种强大的无线模块,具有许多优点,但是对于新手来说,可能存在一定的学习门槛。
通过本文所提供的ESP8266用户手册,我们可以更好地了解ESP8266的硬件和软件方面的知识,更好地使用该模块。
为了更深入地学习ESP8266相关知识,读者也可以参考ESP8266官方文档并进行实践。