【基于Pyboard的温湿度检测】

基于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

生成海报
点赞 0

菜鸟胖虎

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

0.96寸OLED屏硬件驱动电路

0.96寸OLED屏硬件驱动电路 该电路适合把OLED驱动电路集成到自己的板子上,最终的原理图和PCB已经上传CSDN,可直接点击链接下载: https://download.csdn.net/dow

风速传感器

OSA-15 三杯式风速传感器是我公司自主研发、生产的一款风速测量仪器,传感器壳体采用铝制材料,尺寸公差甚小,具用高耐候性、高强度、防腐蚀和防水性。内部集成光电转换机构、工业微电脑处理器、标准电流发生器

STM32中断

中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得单片机暂停当前正在运行的的程序,转而去处理中断程序,处理完成后又返回