admin管理员组

文章数量:1540709

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驱动
    • 2.下载MicroPython
    • 3.刷入micropython
    • 4.进入ESP32
  • 二、连接WiFi,修改时间
    • 1.写好代码
    • 2.拷贝到环境里面
    • 3.执行
  • 总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、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日

本文标签: MicroPythonwifi