esp8266 DHT11时序及配合oled屏幕使用

DHT11温湿度采集
摘要由CSDN通过智能技术生成

 功能: ①:初始化LED、软件定时器                    
                                                     
            ②:3秒重复定时                                
                                                       
            ③:每3秒读取一次DHT11温湿度                
                                                       
            ④:温度超过30℃,LED亮                        
                                                       
            ⑤:串口、OLED显示温湿度                    
                               

DHT11原理图

 这里用oled来显示dht11温湿度

 oled是用8266的iic驱动的

	// OLED显示初始化
	OLED_Init();							// OLED初始化
	OLED_ShowString(0,0,"Humidity:");		// 湿度
	OLED_ShowString(0,4,"Temperature:");	// 温度

 在dht11.c文件中我们首先定义了一个dht11数据数组

DH111_Data _Array[0] == 湿度_整数_部分
DH111_Data _Array[1] == 湿度_小数_部分
DH111_Data _Array[2] == 温度_整数_部分
DH111_Data _Array[3] == 温度_小数_部分
DH111_ Data_ArrayL4] == 校验字节               //用来判断读到的温度湿度有无差错
DH111_Data _Array[5] == 【1:温度>=0℃】 【0:温度<=0℃】 //表示当前温度是否剖大于0℃的标志位

 将GPIO_5(DHT11信号线)设为输出模式,并输出参数对应的电平

void ICACHE_FLASH_ATTR DHT11_Signal_Output(u8 Value_Vol)
{
	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U,	FUNC_GPIO5);	// GPIO5设为IO口
	GPIO_OUTPUT_SET(GPIO_ID_PIN(5),Value_Vol);				// IO5设为输出=X
}

 将GPIO_5(DHT11信号线)设为输入模式

void ICACHE_FLASH_ATTR DHT11_Signal_Input(void)
{
	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U,	FUNC_GPIO5);	// GPIO5设为IO口
	GPIO_DIS_OUTPUT(GPIO_ID_PIN(5));		// GPIO5失能输出(输入)
}

 GPIO5输出起始信号并等待接收dht11的响应信号

 DHT11:输出起始信号->接收响应信号
//-----------------------------------------------------
 返回值:        0        成功
                       1        失败:规定时间内未接收到响应信号
                       2        失败:响应信号的低电平时长超时

u8 ICACHE_FLASH_ATTR DHT11_Start_Signal_JX(void)
{
	u8 C_delay_time = 0;	// 延时计时

	// IO5抬高
	//--------------------------------------------------------
	DHT11_Signal_Output(1);	// DHT
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paradise_Violet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值