MicroPython入坑记(二)刷固件(ESP8266 ESP32)
先来个刷写过程:
其实各种刷ESP8266/ESP32的软件都可以搞(比如刷NodeMCU的软件),不过我这还是出问题了:刷完后无限输出乱码。然后参照Micropython官方的教程,用esptool先清除所有的FLASH,然后重新刷入,正常运行:
import esp
import machine
dir(esp)
[’__class__’, ‘__name__’, ‘SLEEP_LIGHT’, ‘SLEEP_MODEM’, ‘SLEEP_NONE’, ‘apa102_write’, ‘check_fw’, ‘deepsleep’, ‘dht_readinto’, ’esf_free_bufs’, ‘flash_erase’, ‘flash_id’, ‘flash_read’, ‘flash_size’, ‘flash_user_start’, ‘flash_write’, ‘free’, ‘freemem’, ‘info’, ‘malloc’, ‘meminfo’, ’neopixel_write’, ‘osdebug’, ‘set_native_code_location’, ‘sleep_type’]
dir(machine)
[’__class__’, ‘__name__’, ‘ADC’, ‘DEEPSLEEP’, ‘DEEPSLEEP_RESET’, ‘HARD_RESET’, ‘I2C’, ‘PWM’, ‘PWRON_RESET’, ‘Pin’, ‘RTC’, ‘SOFT_RESET’, ‘SPI’, ‘Signal’, ‘Timer’, ‘UART’, ‘WDT’, ‘WDT_RESET’, ‘deepsleep’, ‘disable_irq’, ’enable_irq’, ‘freq’, ‘idle’, ‘mem16’, ‘mem32’, ‘mem8’, ‘reset’, ‘reset_cause’, ‘sleep’, ’time_pulse_us’, ‘unique_id’]
从上边的输出可以看到,esp主要是显示一些基础的指令,比如深度休眠,申请内存之类,machine主要是操作IO之类
先试着点一下LED灯(我这个板子自带了一个LED在GPIO2)
from machine import Pin
led=Pin(2,Pin.OUT)
led.on()
led.off()
是不是很神奇?哈哈
然后连接网络:
import network # 导入network包
wlan=network.WLAN() #生成wlan对象
wlan.active(1) #开启wlan
mode : sta(5c:cf:7f:0e:25:19) + softAP(5e:cf:7f:0e:25:19)
#5 ets_task(4020ed90, 28, 3fff9fa0, 10)
add if0
wlan.scan() #扫描wlan信号
wlan.connect(‘OpenWrt’,‘xde12345’) #连接wlan
lascandone
state: 0 -> 2 (b0) state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 2
cnt
connected with OpenWrt, channel 11
dhcp client start…
ip:192.168.43.203,mask:255.255.255.0,gw:192.168.43.1
可以看到,已经连接成功了,这里有个很酷的功能,就是esp8266的MicroPython固件是可以自动保存网络配置(esp32的暂时还不行)的,重新上电就能连接上次连接的无线网络(酷)
能联网了,干点啥事呢^^,发现内置个ntptime模块,玩玩先:
import time
time.localtime()
(2000, 1, 1, 0, 0, 18, 5, 1)
现在时间是2000年1月1号
import ntptime
ntptime.time()
575780696
获取了个时间戳
ntptime.settime()
(2018, 3, 31, 3, 5, 7, 5, 90)
设置时间
time.localtime()
(2018, 3, 31, 3, 5, 12, 5, 90)
等等,这世间不对吧,估计是UTC时间,暂时还没设置时区的地……先这样吧
