低成本物联网解决方案esp01模块新手入门教程 | ChangChun Master Li 本人擅长朴素贝叶斯科学算命, 大家没事可以多看我的书吃我的药听我的讲座http://blog.74ls74/2022/06/18/20220618_esp8266_esp01_basic_tutorial/

0. introduction

esp8266 是上海乐鑫出的低功耗WiFi芯片。搭载esp8266芯片的esp01是一个UART-WiFi无线模块,价格不到5块钱,深圳安信可出品,物美价廉,一个树莓派4的钱可以买50个!官方支持非常走心,一直在更新sdk,官方提供RTOS SDK和给低端芯片用的NONOS SDK。

esp01串口下载刷写flash非常简单,同时公司对社区的支持非常好,所以开发者做了很多移植工作,有很多开源固件,包括Lua(NodeMCU),Python(MicroPython),esp8266 Arduino,JavaScript(Espruino)等,玩法很丰富。

esp8266 pinout

1. esp8266+arduino

在Arduino IDE安装esp8266

File>Preferences>Additional Boards Manager URLs 填入 https://arduino.esp8266/stable/package_esp8266com_index.json

Tools>Board menu 搜索并安装 esp8266platform

配置

esp01模块有一些变种,基本可以按照图中进行配置,默认板载蓝色的led是GPIO1,但和串口复用同一个引脚。只有 8Mbits (1MB) flash,但实际上只有1004KB可以给arduino程序使用,OTA需要双倍的空间,所以如果fs为0,OTA最多可用502KB。

esp01没有板载reset电路,因此需要手动GPIO0接地进入可编程模式。

RX    → TX        VCC   → 3.3v
GPIO0 → ground    RST   → *
GPIO2 → *         CH_PD → 3.3v
GND   → ground    TX    → RX

可以跑一下blink示例测试是否正常工作。

ArduinoOTA

和avr芯片arduino不同的是,esp8266原生支持OTA下载,将BasicOTA示例下载到esp01中,可以在同一内网下给esp01远程下载,省去了串口和GPIO0的接线,非常方便。

一旦安装arduino,相关的SDK、下载工具、编译器等等都会一次安装到位,无需另外安装。具体可参考platform.txt

~/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/platform.txt

2. firmware

体验arduino之后,我们想恢复成出厂的AT固件也很方便

1.1 AT firmware

https://github/espressif/ESP8266_NONOS_SDK

我这个1MB的esp01只能用老的512+512固件,用arduino带的esptool.py可以烧写,记得GPIO0接地进入flash模式。

cd ~/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/
PYTHONPATH=./esptool:./pyserial ../../../../tools/python3/3.7.2-post1/python3 ./esptool/esptool.py -p /dev/tty.usbserial-1410 --baud 115200 write_flash \
        --flash_size=detect \
        0xFC000 ~/Downloads/ESP8266_NONOS_SDK-3.0.5/bin/esp_init_data_default_v08.bin \
        0x7E000 ~/Downloads/ESP8266_NONOS_SDK-3.0.5/bin/blank.bin \
        0xFE000 ~/Downloads/ESP8266_NONOS_SDK-3.0.5/bin/blank.bin \
        0x00000 ~/Downloads/ESP8266_NONOS_SDK-3.0.5/bin/boot_v1.2.bin \
        0x01000 ~/Downloads/ESP8266_NONOS_SDK-3.0.5/bin/at/512+512/user1.1024.new.2.bin

reset下就恢复到出厂状态了。AT命令的使用和gsm300模块相似,有点类似海斯命令集。

很多人发现esp01/esp8266启动时会在串口打印一堆乱码,我后来找到了答案,硬件波特率取决于晶震,最初的波特率为74880,后来为了方便才改成115200的

Why does ESP8266 show 'Garbage' characters?

可以用AT指令改成74880

AT+UART_DEF=74880,8,1,0,0

然后miniterm也同样改成74880(screen和minicom好像不支持)

PYTHONPATH=./esptool:./pyserial ../../../../tools/python3/3.7.2-post1/python3 -m serial.tools.miniterm /dev/cu.usbserial-1410 74880

乱码即可消失。

我这里做过一个AT指令的warpper,方便python用户使用,https://github/996refuse/esp8266.py

1.2 micropython

ESP01 MicroPython install

1.3 NodeMCU

NodeMCU 非常贴心, 可以在线编译firmware

https://nodemcu-build/

3. summary

ok,这些只是esp8266的冰山一角,还有更多好玩的方式值得探索。

低成本物联网解决方案esp01模块新手入门教程 | ChangChun Master Li​blog.74ls74/2022/06/18/20220618_esp8266_esp01_basic_tutorial/正在上传…重新上传取消

低成本物联网解决方案esp01模块新手入门教程 | ChangChun Master Li http://blog.74ls74/2022/06/18/20220618_esp8266_esp01_basic_tutorial/

更多推荐

低成本物联网解决方案esp01模块新手入门教程