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)等,玩法很丰富。
1. esp8266+arduino
在Arduino IDE安装esp8266
File>Preferences>Additional Boards Manager URLs 填入 https://arduino.esp8266.com/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接地进入可编程模式。
1 | RX → TX VCC → 3.3v |
可以跑一下blink示例测试是否正常工作。
ArduinoOTA
和avr芯片arduino不同的是,esp8266原生支持OTA下载,将BasicOTA示例下载到esp01中,可以在同一内网下给esp01远程下载,省去了串口和GPIO0的接线,非常方便。
一旦安装arduino,相关的SDK、下载工具、编译器等等都会一次安装到位,无需另外安装。可参考~/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/platform.txt
2. firmware
体验arduino之后,我们想恢复成出厂的AT固件也很方便
1.1 AT firmware
https://github.com/espressif/ESP8266_NONOS_SDK
我这个1MB的esp01只能用老的512+512固件,用arduino带的esptool.py可以烧写,记得GPIO0接地进入flash模式。
1 | cd ~/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/ |
reset下就回到出厂状态了。AT命令的使用和gsm300模块相似,有点类似海斯命令集。
很多人发现esp01/esp8266启动时会在串口打印一堆乱码,后来我找到了答案,硬件波特率取决于晶振,最初的波特率为74880,后来为了方便才改成115200的
Why does ESP8266 show ‘Garbage’ characters?
可以用AT指令改成74880
1 | AT+UART_DEF=74880,8,1,0,0 |
然后miniterm也同样改成74880(screen和minicom好像不支持)
1 | PYTHONPATH=./esptool:./pyserial ../../../../tools/python3/3.7.2-post1/python3 -m serial.tools.miniterm /dev/cu.usbserial-1410 74880 |
乱码即可消失。
我这里做过一个AT指令的warpper,方便python用户使用,esp8266.py
1.2 micropython
ESP01 MicroPython install
1.3 NodeMCU
NodeMCU 非常贴心, 可以在线编译firmware
3. summary
ok,简单记录一下使用esp01的过程,这些只是esp8266的冰山一角,还有更多好玩的方式值得探索。
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章