点击下载程序文件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
安装[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和UNOESP-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 SSID和 AP 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);
}
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库来解码。