今天翻出了很久没有使用的ESP8266开发板,还记得是当时同学做IOT开发的时候推荐给我的,可以基于micropython进行开发,就顺便入手了几块。然后试了网上很多先用esptool擦除固件,再用esp flasher download tool完成烧写的教程,但是一直出现Error。后来使用nodemcu-flasher完成烧写,而且过程简单。
环境:Windows 10
下载CH340驱动:http://www.pc6.com/softview/SoftView_198175.html
下载micropython固件:https://micropython.org/download/#esp8266
下载烧写工具:https://github.com/nodemcu/nodemcu-flasher
下载putty:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
下载webrepl客户端:http://www.wbudowane.pl/download/
1.打开nodemcu-flasher,在Config选项中添加指定路径的micropython固件(.bin文件)。
2.在Advanced选项中修改如下参数。
3. 在Operation选项中选择COM端口后点击FLASH即可完成固件的烧写。
1.打开PuTTY,设置端口和波特率(115200)后打开端口。
2.在对话框中依次输入下面的命令,即可连接WIFI。
import network
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.scan() # Scan for available access points
sta_if.connect("", "") # Connect to an AP
sta_if.isconnected() # Check for successful connection
结果如下:
断开PuTTY中打开的端口后,打开webrepl软件,选择对应的端口,点击open。在对话框中输入import webrepl_setup以进行配置webrepl:
import webrepl_setup
接下来选择Enable it running on boot,然后连续输入两次密码完成配置。
在此之后,按下ESP8266开发板上的复位键后重新在webrepl客户端中打开端口,输入下面的命令启动webrepl并查看ESP8266的IP地址。
import webrepl
webrepl.start()
import network
sta_if = network.WLAN(network.STA_IF)
sta_if.ifconfig()
sta_if.ifconfig返回的元祖的第一个参数就是分配给ESP8266的IP地址。
打开webrepl的在线客户端,将IP地址修改为在上一步获得的IP地址“ws://192.168.0.46:8266/”后点击连接,出现[welcome to micropython]后在password中输入密码后,出现[WebREPL connected],表示成功连上开发板,接下来就可以摆脱那个特别容易闪退的本地客户端,通过这个在线客户端上传文件了。
micropython初始化后会自动执行main,py文件,因此我们只需要在其中设置上电自启动时连接WIFI即可,main.py参考程序如下,具体的语法规则可以参考micropython官网的参考手册。下面的两个程序均可以使用,上传程序,复位ESP8266开发板后生效。
程序1
# main.py
import network
import utime
SSID = "VM6118544"
PASSWORD = "Dw3tnnjmmYdr"
def do_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
wlan.connect(SSID, PASSWORD)
start_time = utime.time()
end_time = start_time + 5
while utime.time()
程序2
# main.py
import network
import utime
SSID = "VM6118544"
PASSWORD = "Dw3tnnjmmYdr"
def do_connect():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect(SSID, PASSWORD)
start = utime.time()
while not wlan.isconnected():
utime.sleep(1)
if utime.time()-start > 5:
print("connect timeout!")
break
if wlan.isconnected():
print('network config:', wlan.ifconfig())
do_connect()
开发板引脚在ESP8266的使用中还是比较普遍的,在实际测试中发现开发板引脚在micropython中不能直接定义,因此找出了开发板引脚与GPIO引脚间的对应关系。其中GPIO16只能做DIO,不支持PWM和中断。GPIO[9, 10]是ESP - 12E以后才提供的,但是GPIO9不能做通用IO,GPIO10和GPIO16类似。
开发板引脚 | GPIO引脚 | 开发板引脚 | GPIO引脚 |
---|---|---|---|
D0 | GPIO16 | D1 | GPIO5 |
D2 | GPIO4 | D3 | GPIO0 |
D4 | GPIO2 | D5 | GPIO14 |
D6 | GPIO12 | D7 | GPIO13 |
D8 | GPIO15 | D9/RX | GPIO3 |
D10/TX | GPIO1 | D11/SD2 | GPIO9 |
D12/SD3 | GPIO10 |
https://blog.csdn.net/yannanxiu/article/details/53966374
https://blog.csdn.net/qq_28266137/article/details/78214756
https://blog.csdn.net/makeryzx/article/details/79872567
https://blog.csdn.net/solar_Lan/article/details/79248440
http://blog.sina.com.cn/s/blog_537da9e40102x7vl.html