【得捷电子Follow me第3期】任务5:使用外部传感器
任务5:使用外部传感器(必做任务)
连接环境光传感器或温湿度传感器,获取传感器的数值,并转换成真实的物理量
搭配器件: Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO、 Grove - AHT20 I2C Industrial Grade Temperature and Humidity Sensor、Grove - Light Sensor v1.2
操作过程:
1.下载驱动文件。
通过help(‘modules’)命令查看,可以知道ESP32C3的标准microPython固件里面没有包含aht20的驱动文件,大家可以自行选择喜欢的aht20驱动文件,我是在github上搜索并下载了一个文件,地址如下:
https://github.com/targetblank/micropython_ahtx0
2.尝试获取温湿度。
同时,在这个GitHub界面也给出了一个例程,让我们复制并测试一下。
import utime
from machine import Pin, I2C
import ahtx0
i2c = I2C(scl=Pin(7), sda=Pin(6))
sensor = ahtx0.AHT10(i2c)
while True:
print("\nTemperature: %0.2f C" % sensor.temperature)
print("Humidity: %0.2f %%" % sensor.relative_humidity)
utime.sleep(5)
注意IIC引脚要和SSD1306一样替换成我们的XIAO C3的引脚。
将SEEED的aht20模块连接到扩展版上,点击运行程序,如果有类似下面的输出内容,则说明aht20模块驱动成功。
3.使用SSD1306显示温湿度。
下面我们对历程进行扩展,使用SSD1306来显示温湿度。
程序如下:
import machine
import ssd1306
import utime
import ahtx0
from machine import SoftI2C,Pin,
i2c = SoftI2C(scl=Pin(7),sda=Pin(6),freq=100000)
Pin(4).value(0)
Pin(5).value(1)
# 初始化SSD1306显示屏
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
sensor = ahtx0.AHT10(i2c)
# 清除屏幕
while True:
oled.fill(0)
oled.text("Temperature:", 0, 10)
oled.text("{:.2f} C".format(sensor.temperature), 40, 20)
print("\nTemperature: %0.2f C" % sensor.temperature)
oled.text("Humidity: ", 0, 40)
oled.text("{:.2f} %".format(sensor.relative_humidity), 40, 50)
print("Humidity: %0.2f %%" % sensor.relative_humidity)
oled.show()
utime.sleep(2)
# 在屏幕上显示文本
点击运行,就可以同步在SSD1306屏幕显示温湿度了。
micropython就是好,两条语句就能获取温度数据。
引用: wangerxian 发表于 2023-11-29 17:14 micropython就是好,两条语句就能获取温度数据。
就是,而且不用编译,弄点对性能要求不高,不是很复杂的程序的时候特别舒服
引用: 白菜虫虫 发表于 2023-11-29 17:42 就是,而且不用编译,弄点对性能要求不高,不是很复杂的程序的时候特别舒服
有机会我也玩玩,看大家玩的手痒痒。