做什么大创立项答辩 PPT 啊,当然是找点东西玩咯。然后看到了防静电袋里的 ESP8266 同学。想了想当时买来是为了玩 MicroPython 的,那就开始摸鱼吧。

先找引脚图,然后连到 USB 转 TTL 模块上。

我  —-  RXD      @@  VCC

是  —-  GPIO0  @@  RST

天  —-  GPIO2  @@  CH_PD

线  —-  GND     @@  TXD

芯片面朝上时引脚如上  嗯,又省了张图 

与 USB-TTL 模块连接方式为:

USB-TTL            ESP8266

RXD———————-TXD

TXD———————-RXD

VCC(3.3V)————–VCC

               \——-CH_PD

GND——————–GND

             \———GPIO0

                \———-RST (或者烧写时迅速短接)

烧写工具为 esptool ,Archlinux 直接可以 sudo pacman -S esptool 安装,或者也可以从 PYPI 安装 pip install esptool

然后就可以试一试 esptool 啦,pip 安装的好像是用 esptool.py 命令

$ esptool chip_id

等到终端里显示 Connecting…. 时立即拔除 RST 的接线

> esptool chip_id
esptool.py v2.3.1
Connecting........
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Chip ID: 0x00a41338
Hard resetting via RTS pin...

看起来不错😊也可以看看 flash_id,同样拔 RST 线

> esptool flash_id
esptool.py v2.3.1
Connecting........
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Manufacturer: 85
Device: 6014
Detected flash size: 1MB
Hard resetting via RTS pin...

那么就开始烧写 MicroPython 吧😊

首先把 flash 抹干净

> esptool --port /dev/ttyUSB0 erase_flash
esptool.py v2.3.1
Connecting........
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 0.0s
Hard resetting via RTS pin...

然后开始正式烧写,到 MicroPython 下载页面下载对应文件,然后执行:

> esptool --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-xxxxxxxx-vx.x.x.bin
esptool.py v2.3.1
Connecting........
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 1MB
Flash params set to 0x0020
Compressed 600888 bytes to 392073...
Wrote 600888 bytes (392073 compressed) at 0x00000000 in 42.5 seconds (effective 113.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

如上输出就是完成啦,然后拔除 GND–GPIO0 的连线,GND–RST 的连线也保持拔除状态 (也许还要再 reset 一下?),然后用 screen 或者 picocom 等工具联系解释器。

$ screen /dev/ttyUSB0 115200 #115200是波特率

或者

$ picocom /dev/ttyUSB0 -b115200

然后就看到熟悉的三个大于号啦😂

OSError: [Errno 2] ENOENT 

MicroPython v1.9.3-8-g63826ac5c on 2017-11-01; ESP module with ESP8266
Type "help()" for more information.
>>>

哎?OSError?这可不是什么好字眼,赶紧搜索一下,看到一条issues说好像没什么问题,那继续咯<(≧▽≦)>

看官方文档,连 Wi-Fi

>>> import network
>>> sta_if = network.WLAN(network.STA_IF)
>>> ap_if = network.WLAN(network.AP_IF)

然后激活咯

>>> sta_if.active(True)

就可以连 Wi-Fi 啦

>>> sta_if.connect('<your ESSID>', '<your password>')

最后确认连接

>>> sta_if.isconnected()

当然很有必要输出一下相关信息啦

>>> sta_if.ifconfig()

关闭网络可以通过执行

>>> ap_if.active(False)

更多可以看看 MicroPython 的一些库,感觉可以有许许多多的玩法啊,好棒啊<(≧▽≦)>

初版于 2018年4月12日


初版不久后买了一个 USB-ESP8266 的转接器,其实就是接好引脚排母的 USB-TTL 模块啦。看了一下,某宝上卖家卖的大致一个样子,没有跳线帽。买到后还不能直接进行烧写操作,需引出 GPIO0 和 GND 两脚,烧写前短接 (所以用跳线帽会很方便啊),开机通电时芯片会检查 GPIO0,低电平会进入烧写模式。然后具体操作时很可能还需要 RESET 一下,即 RST 脚和 GND 用导线碰一下。

以上。 2018.5.15