做什么大创立项答辩 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