文章目录[隐藏]
基于Pyboard的温湿度检测
传感器模块 AHT10
AHT10是一款高精度,完全校准,贴片封装的温湿度传感器,MEMS的制作工艺,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高性能CMOS微处理器相连接。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
AHT10 通信方式采用标准I²C通信方式,超小的体积、极低的功耗,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。AHT10支持较宽的工作电源电压范围,该器件可为各类常见应用场景提供低成本和低功耗优势,温湿度传感器均在高精度的恒温恒湿腔室中进行出厂校准,直接输出经温度补偿后的湿度、温度等信息,用户无需要对湿度进行温度补偿,便可得到准确的温湿度信息。
传感器模块与pyboard开发板的连接(下图)
环境搭载
要正确在pyboard开发板上采用Micro Python进行开发,一共需要安装三个驱动,分别为CH340G驱动,DFU驱动和USB驱动。CH340G驱动用于串口通信,DFU驱动用于更新固件,USB驱动用于CDC通信。在安装每个驱动时需要注意连接不同的USB接口,并在安装成功后在设备管理器中查看相应的设备,以保证安装到位。(具体下载安装流程可前往官网自行下载)
另:若是安装DFU驱动时,电脑无法正确识别出STM Device in DFUMode,则可能需要额外安装另一个程序(dpinst_amd64.exe),才可在设备管理器中正常看到STM Device in DFUMode,才证明安装DFU驱动成功。
代码
main函数文件
import pyb
import time
from aht10 import AHT10
aht_10=AHT10(2)
aht_10.start()
while True:
b=aht_10.humidity()
print("humidity ",b)
time.sleep(2)
c=aht_10.temperature()
print("temperature ",c)
time.sleep(2)
AHT10文件
import pyb
import time
from pyb import Pin, I2C
CMD_INITIALIZE = bytearray([0xE1, 0x08, 0x00])
CMD_MEASURE = bytearray([0xAC, 0x33, 0x00])
READING=bytearray(8)
FARENHEIT_MULTIPLIER = 9/5
FARENHEIT_OFFSET = 32
result_parsed=[0,0]
class AHT10:
def __init__(self,id):
self.accel_addr = 0x38
self.i2c = pyb.I2C(id)
self.i2c.init(pyb.I2C.MASTER, baudrate=400000)
self.result_parsed=[0,0]
self.data=bytearray(8)
print(self.i2c.scan())
def start(self):
self.i2c.scan()
self.i2c.is_ready(self.accel_addr)
self.i2c.send(CMD_INITIALIZE,addr=0x38,timeout=5000)
def read(self):
self.i2c.send(CMD_MEASURE ,addr=0x38,timeout=5000)
time.sleep_ms(90)
self.data=self.i2c.recv(6,addr=0x38,timeout=5000)
self.result_parsed[0]=self.data[1]<<12 | self.data[2]<<4 | self.data[3] >> 4
self.result_parsed[1]=(self.data[3] &0x0f) << 16 | self.data[4] << 8 | self.data[5]
def humidity(self):
self.read()
return (self.result_parsed[0] / 1048576) * 200 - 50
#return READING
def temperature(self):
self.read()
#if self.mode is 0:
return (self.result_parsed[1] / 1048576) * 200 - 50
#else:
#return ((self.result_parsed[1] / 1048576) * 200 - 50) * FARENHEIT_MULTIPLIER
将ath10文件拷贝到开发板内存中,并将main文件的代码烧录进开发板即可
运行结果
总结
尽管代码量很少,但要使用好一块开发板,需要先做好对开发板的了解,搭配环境,学习模块的运用,这些对于我这样的初学者来说很繁琐也很头疼。总之就是多百度,一步步来。
版权声明:本文为CSDN博主「菜鸟胖虎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47902527/article/details/122623078
暂无评论