MicroPython ESP32 开发
1.ESP32刷入MicroPython以及连接WiFi(本文)
2.ESP32 GPIO
3.ESP32 GPIO 的高低电平与PWM
4.ESP32 控制继电器与读取DHT22温湿度数据
5.socket 通信
更新中……
ESP32刷入MicroPython以及连接WiFi
提示:以下是本篇文章正文内容,下面案例可供参考
一、ESP32刷入MicroPython
1.ESP32驱动
ESP32开发板使用了CP2104作为板载的USB转串口,因此需要安装串口驱动才能使用。
CP210x_Windows_Drivers
CP210x_VCP_Windows
这里包括了win2000/winxp/win7/win10、Linux、MacOS全系列的驱动,只要是主流的操作系统都有对应的驱动。
2.下载MicroPython
MicroPython Download
打开网址后往下扒拉扒拉右边那个就是ESP32了
打开后再往下扒拉扒拉我下载的是下图第一个
esp32-idf3-20210202-v1.14.bin
3.刷入micropython
我的是python3.8需要安装一下两个包
#使用cmd
#esp工具包,用这个刷入micropython
pip3 install esptool
#用这个进入micropython
pip3 install rshell
将芯片通过usb线连接到电脑上,右键我的电脑
-管理
-设备管理器
里面找到CP210x的COM口 我的是COM3
万事具备接下来清空一下ESP32就可以刷入micropython了
以下片段在cmd/powershell中执行
#需要用命令查看esptool.py的位置
pip show -f esptool
#获取的一大堆命令中找到 `Location: (安装路径)` 然后cd到这个目录
*清空和刷入的时候是需要摁住板子上的boot按钮的,直到写入完毕*
#清空ESP32(更改com口)
esptool.py --chip esp32 --port COM3 erase_flash
#刷入micropython(更改com口 与 文件的相对路径或者绝对路径)
esptool.py --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 esp32-idf3-20210202-v1.14.bin
4.进入ESP32
将以下代码块中的代码(不带注释)保存到 .bat
文件中,这样就可以在esp32连接电脑的情况下一键进入了
#新建一个工作目录 然后cd进去
cd (工作目录)
#替换com口
rshell --buffer-size 1024 --editor C:\Windows\system32\notepad.exe -p COM3
二、连接WiFi,修改时间
1.写好代码
所有导入到esp32的py文件应该为无签名的utf8
写入micropython后esp剩余储存大概在100k
在工作目录新建wifiConnect.py
main.py
文件
# wifiConnect.py
from network import WLAN
from network import STA_IF
from time import time
from time import sleep_ms
from gc import mem_free
def wifi_connect():
print("\nAvailable memory: %s Byte" % str(mem_free()))
wlan = WLAN(STA_IF)
wlan.active(True)
start_time = time()
if not wlan.isconnected():
print("\nThe current device is not networked and is connecting ....")
wlan.connect("332211", "lihanshuo2009")
while not wlan.isconnected():
sleep_ms(500)
if time() - start_time > 10:
print("\nFail !!!")
break
if wlan.isconnected():
IP_info = wlan.ifconfig()
print("Wifi is connected with the following information:")
print(" IP address : " + IP_info[0])
print("Subnet mask : " + IP_info[1])
print(" Gateway : " + IP_info[2])
print(" DNS : " + IP_info[3])
# datetime.py
from ntptime import settime
from utime import localtime
from utime import time
from machine import RTC
def set_time():
print("\nTime being calibrated...")
settime()
rtc=RTC()
tampon1=time()
tampon2=tampon1+28800
rtc.datetime (localtime(tampon2)[0:3]+(0,)+localtime(tampon2)[3:6] + (0,))
print("OK!\n")
def date_now():
a = localtime()
print(str(a[0])+'-'+str(a[1])+'-'+str(a[2]))
def time_now():
a = localtime()
print(str(a[3])+':'+str(a[4])+':'+str(a[5])+'\n')
# main.py
from wifiConnect import wifi_connect
from datetime import set_time
from datetime import date_now
from datetime import time_now
if __name__ == '__main__':
wifi_connect()
set_time()
date_now();time_now()
2.拷贝到环境里面
将wifiConnect.py
main.py
复制到micropython里面:
cp main.py wifiConnect.py datetime.py /pyboard/
3.执行
repl
命令进入到micropython环境:
摁下esp32板子上的 重启
键(出现错误再次重启):
总结
感谢大家的耐心浏览,以上内容全部由个人摸索与编写,仅供参考,欢迎大家指出不足之处。
纠正于2021年3月18日