程序员开发实例大全宝库

网站首页 > 编程文章 正文

MicroPython在ESP8266模块上的初体验

zazugpt 2024-08-31 05:15:15 编程文章 20 ℃ 0 评论

本文主要介绍了如何在ESP8266模块上运行MicroPython。

根据官方的快速参考的描述,MicroPython已经实现了ESP8266基本硬件资源接口,包括GPIO、PWM、ADC、软SPI和硬SPI、IIC、睡眠模式(Deep-sleep mode)、OneWire等。

准备工作

  • 固件 从官网下载最新的固件 esp8266-20210418-v1.15.bin
  • 串口工具 SecureCRT
  • 下载工具 esptool
  • ESP8266开发板

烧写固件

将ESP8266设置成烧录模式后,两条命令即可:

//擦除FLASH
esptool.py --port COM13 erase_flash

//下载固件
esptool.py --port COM13 --baud 460800 write_flash --flash_size=detect 0 esp8266-20210418-v1.15.bin

上电打印

固件烧写完成后,上电重启,用secureCRT工具来查看串口打印信息。有打印如下字符信息说明固件烧写成功。

MicroPython v1.15 on 2021-04-18; ESP module with ESP8266
Type "help()" for more information.
>>>

简单测试

  • 输入help(),打印的信息会告诉你怎么样连接WIFI
>>> 
>>> help()
Welcome to MicroPython!

For online docs please visit http://docs.micropython.org/en/latest/esp8266/ .
For diagnostic information to include in bug reports execute 'import port_diag'.

Basic WiFi configuration:

import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan()                             # Scan for available access points
sta_if.connect("<AP_name>", "<password>") # Connect to an AP
sta_if.isconnected()                      # Check for successful connection
# Change name/password of ESP8266's AP:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="<AP_NAME>", authmode=network.AUTH_WPA_WPA2_PSK, password="<password>")

Control commands:
  CTRL-A        -- on a blank line, enter raw REPL mode
  CTRL-B        -- on a blank line, enter normal REPL mode
  CTRL-C        -- interrupt a running program
  CTRL-D        -- on a blank line, do a soft reset of the board
  CTRL-E        -- on a blank line, enter paste mode

For further help on a specific object, type help(obj)
>>> 
  • 检查固件,当返回True,说明固件是OK的
>>> 
>>> import esp
>>> esp.check_fw()
size: 632616
md5: 4dc294d98d5869f6f5bdc8689270a7d6
True
>>> 

上传文件

MicroPython官方提供的文件管理工具webREPL有点麻烦。在这里我们采用uPyLoader这个工具来进行文件的上传和下载。

设置上电自动连接WiFi

MicroPython初始化后都会自动执行main.py文件,所以我们只需要设置该文件即可上电自动连接WiFi。

# main.py
import network
import webrepl

SSID = "SSID"
PASSWORD = "password"

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()

之后通过uPyLoader客户端上传该文件,完成之后,尝试给ESP8266重启一下,看看ESP8266的会话窗口是不是打印了user init!,如果成功打印,说明上电后确实执行上面的代码了。

总结

基于ESP8266的MicroPython初体验就到这里了,本文简单介绍了固件的下载和烧写,以及使用的方法,最后还介绍了如何上传代码到ESP8266,并且配置上电自动连接WiFi。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表