点击下载程序文件EspUnoWifi.zip

# esp8266 Uno Wifi

该项目运行在esp8266上,并为uno提供串行桥接服务,第一次需要使用串口将草图上传到esp8266,然后可以像使用USB一样使用WIFI串口。

您可以:

  • 通过OTA将新草图上传到esp8266
  • 通过OTA将新草图上传到UNO(无需手动重置UNO)
  • 通过Web浏览器访问Uno的串行端口
  • 通过TCP访问uno串行端口
  • 使用网络浏览器配置接入点和wifi
  • TCP通道(oseppBlock)和最多五个WebSocket连接(浏览器)从Uno串行端口同时接收数据
  • 在任何地方、任何设备上使用网络浏览器控制机器人

ESP8266有两个IP地址,具体取决于您的网络连接。如果esp8266已连接至路由器,并且设备也已连接至该路由器,则应使用路由器分配给ESP8266的IP地址进行访问。 IP地址的格式通常为192.168.1。如果您的设备访问ESP8266的WIFI接入点,则应使用192.168.4.1进行访问,无论您如何连接,它们都是等效的。

# 1. 配置ESP8266

  • 加载 EspUnoWifi.ino 到Arduino IDE

  • 安装esp8266开发环境到Arduino IDE

  • 安装[arduinoWebSockets]库(https://github.com/Links2004/arduinoWebSockets)
    项目 -> 加载库 -> 管理库
    搜索并安装 WebSockets by Markus Sattler
    参考如何安装库

  • 在程序中修改填入您的路由器SSID和密码(您可以跳过此步骤,并在后期通过浏览器设置)
    const char default_router_ssid[] = "YourRouterSSID";//您的路由器SSID
    const char default_router_pswd[] = "YourRouterPassword";//您的路由器密码

  • 上传程序到ESP8266
    如果您没有专用的ESP8266编程器,您可以通过Uno来充当编程器,照着下表连接ESP8266和UNO

    ESP-01S UNO
    RX RX
    TX TX
    IO0 GND
    GND GND
    3V3 3V3
    Reset-->GND

    现在通过USB线连接Uno到电脑上,因为UNO的Reset引脚连接到GND,所以UNO现在是复位状态,相当于被旁路了。同时ESP8266的IO0也连接到GND,所以ESP8266会进入引导程序,此时通过Arduino上传的程序将会进入ESP8266,而不是UNO。

    • 工具->开发板->Generic ESP8266 Module
    • 工具->Flash Size->1M(no SPIFFS)
    • 工具->端口->选择连接Uno的端口
    • 点击上传按钮
    • 如果上传失败了,有可能是ESP8266没有进入引导程序,断开USB连接,等待3秒再次尝试。

# 2. 设置热点 & 连接路由器

如果您已经在步骤1中设置了路由的SSID和密码,您可以跳过此步骤。

  • 给ESP8266接通电源。
  • 使用具备WIFI的设备连接热点 WIFI-ESP-SERIAL-xxxxxx ,密码为: oseppesp
  • 使用浏览器打开URL: http://192.168.4.1/netstat
  • WIFI SSID栏选择你的路由SSID ,并在WIFI Password填入您的路由器密码,点击下方的update按钮,esp8266将记住该设置并重启,所以您将会丢失连接,稍等片刻后重新连接该热点并刷新网页URL: http://192.168.4.1/netstat 。首次连接路由器将花费较长时间,您可能见到的IP地址是0.0.0.0,表明它尚未正确连接路由器,你可能需要手动重启ESP8266,并再次查看,确认ESP8266已经连接到了路由器。
  • 如果ESP8266已经成功连接到您的路由器,您可以在页面底部看到它的IP地址。
  • 您还可以修改ESP8266默认的热点名和密码,填写AP SSIDAP PSWD并点击下方的update按钮。

# 3. 连接ESP8266和UNO

按照下表连接ESP8266和UNO引脚,注意RX-TX

ESP-01s uno
RX TX
TX RX
3V3 3v3
GND GND
IO2 reset
Nodemcu uno
RX TX
TX RX
VIN 5V
GND GND
D4 reset

# 4. 通过OTA上传程序到UNO

  • 工具->开发板->Arduino Uno WiFi
    您并不能使用Uno WiFi的任何特征,只是为了使用arduino OTA
  • 工具->端口->网络端口->您的ESP8266对应的IP
  • 点击 上传
  • 如果您见到类似于下方的文字,代表已经成功上传程序到Uno中。

    Resetting the board
    Waiting for the upload to start
    OSEPP Esp8266 for UnoOTA, SYNC OK!184705
    Uploading the sketch
    Upload done! Flash used:2806 bytes
    Sketch uploaded successfully
    Resetting the board

# 5. 通过OTA更新ESP8266程序

  • 工具->开发板->Generic ESP8266 Module
  • 同居->Flash Size->1M(no SPIFFS)
  • 工具->端口->网络端口->您的ESP8266对应的IP
  • 点击 上传 按钮

# 6. 网页版串口监视器

  • 通过浏览器打开网址URL:http://[esp8266 ip]?baudrate=115200
    note:您可以通过URL参数*?baudrate=nnnnn**指定串口波特率,ESP8266会记住它*
  • 上传一个具有串口打印功能的程序到Uno,参考步骤4
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(millis());
  delay(1000);
}
1
2
3
4
5
6
7
8
9
10
  • 您将看到串口信息显示在浏览器中。
  • 您还可以在网页中发送信息到Uno,复位Uno。

# 7. 在OseppBlock IDE中使用OTA和串口

  • 选择或填入ESP8266的IP地址。
  • 点击上传按钮来上传积木程序到Uno中
  • 点击连接图表,通过使用TCP来连接串口,就像使用USB连接一样。

# 8. 虚拟摇杆

  • 在电话, 平板, 电脑, 等设备上支持使用支持HTML5的浏览器打开网址: http://[esp8266 ip address]/joy
  • 通过在URL中添加 ?baudrate=nnnnnn 来设置串口波特率,例如 http://192.168.0.88/joy?baudrate=115200
  • 使用鼠标,手指,点击页面并拖动,支持多点触摸(2点)
  • 在OseppBlock IDE中,您可以使用现有的积木来解码遥控器发送来的控制信息
  • 在Arduino IDE中,您可以使用oseppRemote库来解码。