如何在 MicroPython 中检测硬件类型(ESP32 或 ESP8266)?

How to detect hardware type (ESP32 or ESP8266) in MicroPython?

如何检测我的 MicroPython 脚本是在 ESP32 还是 ESP8266 上 运行? 我想让它在两个平台上都能工作,但是深度睡眠需要根据硬件的不同实现。

您可以使用uos.uname().sysname检测硬件平台。

这是一个示例脚本:

import uos

print(uos.uname())

sysname = uos.uname().sysname
if sysname == 'esp32':
    print('detected ESP32')
elif sysname == 'esp8266':
    print('detected ESP8266')
else:
    print('something else')

ESP8266 上的演示脚本输出:

$ ampy run detect.py
(sysname='esp8266', nodename='esp8266', release='2.2.0-dev(9422289)', version='v1.11-8-g48dcbbe60 on 2019-05-29', machine='ESP module with ESP8266')
detected ESP8266

ESP32 上的演示脚本输出:

$ ampy run detect.py
(sysname='esp32', nodename='esp32', release='1.11.0', version='v1.11 on 2019-05-29', machine='ESP32 module with ESP32')
detected ESP32