之前有接触过通过adriuno来进行ESP32和ESP8266的开发。 但是因为日常工作当中没有太多的机会使用CPP,所以进展一直不大。知道后面开始使用MicroPython进行ESP32的开发,感觉路一下都亮了。
今天尝试回顾一个初学者的使用过程。点亮一个RGB LED 。
使用的硬件
ESP32 开发板一个
RGB LED一个
如图,RGB LED 一共4个引脚。分别是
GND - 接地
R - Red
Y - Yellow
G - Green
简单进行一个接入 :
分别对应了
GND — GND
R - GPIO13
Y - GPIO12
G - GPIO14
将开发板上电。 注:这里没有接入电阻,最好给LED接入一个电阻。 红色LED1.5-1.7V, 绿色1.8-2.0V。
下面进行代码的编写。
from machine import Pin r_led = Pin(12, Pin.OUT) y_led = Pin(13, Pin.OUT) g_led = Pin(14, Pin.OUT) r_led.on() y_led.on() g_led.on()
完成后,烧录到开发板。效果如下
接下来尝试一下LED交替闪烁,代码如下:
def flash_led(self): r_led = Pin(12, Pin.OUT) y_led = Pin(13, Pin.OUT) g_led = Pin(14, Pin.OUT) while True: r_led.on() utime.sleep_ms(100) r_led.off() y_led.on() utime.sleep_ms(100) y_led.off() g_led.on() utime.sleep_ms(100) g_led.off()
以上为使用原生的Microptython进行的一个点亮测试。 目前HAAS也提供了ESP32的固件,也可以使用HAAS的固件进行LED操作。
HAAS ESP 32 固件烧录,可以在阿里云HAAS官网当中下载。并根据引导使用VS CODE安装好HAAS Studio后进行烧录,或下载Thonny进行。 如果是对于PYTHON来说都是新手的话,建议使用Thonny来进行开发。
在HAAS里面,我们可以使用board.json 来配置我们各个引脚。 配置如下:
因为我们使用的是GPIO,所以这里,就只看关于IO-GPIO的配置项。
对应到我们项目当中的board.json,配置如下:
{ "name": "haasedu", "version": "1.0.0", "io": { "r_led":{ "type": "GPIO", "port": 12, "dir": "output", "pull": "pulldown" }, "y_led":{ "type": "GPIO", "port": 13, "dir": "output", "pull": "pulldown" }, "g_led":{ "type": "GPIO", "port": 14, "dir": "output", "pull": "pulldown" } }, "debugLevel": "ERROR", "repl": "disable" }
配置完成后,实现代码如下:
from driver import GPIO import utime class HAASLed: def light_led(self): r_led_gpio = GPIO() y_led_gpio = GPIO() g_led_gpio = GPIO() r_led_gpio.open("r_led") y_led_gpio.open("y_led") g_led_gpio.open("g_led") r_led_gpio.write(1) # 打开LED y_led_gpio.write(1) g_led_gpio.write(1) def flash_led(self): r_led_gpio = GPIO() y_led_gpio = GPIO() g_led_gpio = GPIO() r_led_gpio.open("r_led") y_led_gpio.open("y_led") g_led_gpio.open("g_led") while True: r_led_gpio.write(1) utime.sleep_ms(100) r_led_gpio.write(0) y_led_gpio.write(1) utime.sleep_ms(100) y_led_gpio.write(0) g_led_gpio.write(1) utime.sleep_ms(100) g_led_gpio.write(0)
将代码烧录到开发板后,3个LED依次交替闪烁。