硬件准备

  • Arduino UNO主板
  • Esp8266 01s
  • 面包板
  • 杜邦线若干

软件准备

  • Arduino IDE
  • 网络调试助手(PS端或手机均可,手机可在应用市场搜索网络调试精灵)

接线

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_串口

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_数据_02

Arduino

esp8266 01s

3.3V

VCC

GND

GND

3

TX

2

RX

3.3V

CH_PD / EN

使用esp8266只要5个针脚就可以了,分别是 GND、VCC、TX、RX、CH_PD

注意,电源接的是 3.3V;否则会烧坏WiFi 模块

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_愤怒的小鸟_03

AT指令配置程序

#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2); // RX, TX 配置 3、2 为软串口
void setup()
{
  Serial.begin(9600);//设置硬串口波特率
  Serial.println("ESP8266 WIFI Test");
  while (!Serial) {//串口是否准备好。
    ;
  }
  Serial.println("hardware serial!");
  mySerial.begin(115200);//设置8266的波特率为115200,初始默认是115200
  mySerial.println("software serial!");
}
void loop()
{
  if (mySerial.available())//获取从软串口读取有效的字节数
  {
    Serial.write(mySerial.read());//硬串口写软串口中读取的数据
  }
  if (Serial.available()) {//获取从硬串口读取有效的字节数
    mySerial.write(Serial.read());//软串口写硬串口中读取的数据
  }
}

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_Scratch_04

出现上面情况,表示esp无法使用,请检查线路是否接错,或者电压是否保证3.3V

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_愤怒的小鸟_05

出现3到4行则表示成功,esp8266可以使用

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_数据_06

修改结束符为 NR 和 CR,发送AT;

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_数据_07

虽然我们测试成功了,但是我们发现回复信息中会出现乱码,原因是软串口(i/o 模拟出来)所能支持的波特率有限,最大支持 9600,因此我们需要修改esp8266波特率为9600

AT+UART=9600,8,1,0,0

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_愤怒的小鸟_08

接下来我们修改一下程序中软串口的波特率为9600,重新上传程序试试

mySerial.begin(9600);

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_愤怒的小鸟_09


esp8266 Arduino 连接巴法云 arduino uno esp8266联网_Scratch_10

配置

1.接下来我们来设置esp为混合模式,配置 ESP8266 模块为 AP+STA 模式,开启 wifi 热点

AT+CWMODE=3

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_scratch游戏_11

  1. 重启模块使 AP 模式生效
AT+RST

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_数据_12

3.设置模块的AP,热点名字和密码,通道号以及加密方式

AT+CWSAP="Lime","12345678",1,4

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_串口_13

通道号为 1,加密方式为:WPA_WPA2_PSK

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_数据_14

4.启动多连接,esp作为服务器,最多支持 5 个客户端的链接,id 分配顺序是 0-4

AT+CIPMUX=1

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_scratch游戏_15

5.开启服务器模式,端口号 8080

AT+CIPSERVER=1,8080

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_Scratch_16

6.设置服务器超时时间,超时时间1200s

AT+CIPSTO=1200

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_Scratch_17

7.查看ESP8266 的 IP

AT+CIFSR

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_scratch游戏_18

  1. 手机与esp建立连接和通信,手机下载一个网络调试助手,手机连接esp8266的热点,热点名:Lime,密码:12345678,输入查询到ip 192.168.4.1和设置好端口8080,连接成功后可发送消息到esp8266

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_愤怒的小鸟_19

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_串口_20

9.esp8266 使用AT发送数据
先输入 AT+CIPSEND=clientid,length
说明:先发送准备发送的命令,再发需要发送的数据

参数 client:是连接序号(0-4)

参数 data:发送的数据长度

比如发送12345
先输入指令

AT+CIPSEND=0,5

在输入

12345

esp8266 Arduino 连接巴法云 arduino uno esp8266联网_scratch游戏_21

  1. 通信过程


arduino局域网通讯