esp32 採集dht11溫濕度資料

2021-10-12 21:01:25 字數 1449 閱讀 8051

dht11感測器可用來進行採集周圍的溫濕度資料,之前使用stm32 m0以及m3的板子都有對其進行驅動,使用esp8266 sdk開發也驅動過

現在使用的是esp32,對dht11進行資料採集

dht11有三個引腳,分別是gnd,vcc,data

data接esp32的io4引腳

程式**如下

#include #include "esp_system.h"

#include "esp_spi_flash.h"

#include "esp_wifi.h"

#include "esp_event_loop.h"

#include "esp_log.h"

#include "esp_err.h"

#include "nvs_flash.h"

#include "freertos/freertos.h"

#include "freertos/task.h"

#include "driver/ledc.h"

#include #include "driver/uart.h"

#include "driver/gpio.h"

#include "string.h"

#define dht11_pin 4//定義dht11的引腳

#define uchar unsigned char

#define uint8 unsigned char

#define uint16 unsigned short

//溫濕度定義

uchar ucharflag,uchartemp;

uchar humi,humi_small,temp,temp_small;

uchar uchart_data_h,uchart_data_l,ucharrh_data_h,ucharrh_data_l,ucharcheckdata;

uchar uchart_data_h_temp,uchart_data_l_temp,ucharrh_data_h_temp,ucharrh_data_l_temp,ucharcheckdata_temp;

uchar ucharcomdata;

static void inputinitial(void)//設定埠為輸入

static void outputhigh(void)//輸出1

static void outputlow(void)//輸出0

static uint8 getdata()//讀取狀態

//讀取乙個位元組資料

static void com(void) // 溫濕寫入

}void delay_ms(uint16 ms)

else

}else //沒用成功讀取,返回0

outputhigh(); //輸出};

while(1)

}

DHT11溫濕度感測器

原理圖 資料傳輸 使用序列介面 單線雙向 data 用於微處理器與 dht11之間的通訊和同步,採用單匯流排資料格式,一次 通訊時間4ms左右,資料分小數部分和整數部分,具體格式在下面說明,當前小數 部分用於以後擴充套件,現讀出為零.操作流程如下 一次完整的資料傳輸為40bit,高位先出。資料格式 ...

DHT11溫濕度感測器

dht11數字溫濕度感測器是一款含有已校準數碼訊號輸出的溫濕度復合感測器。它應用專用的數字模組採集技術和溫濕度感測技術,確保產品具有極高的可靠性與長期的穩定性。感測器包括乙個電阻式感溼元件和乙個ntc測溫元件,並與乙個8位微控制器相連線。因此該產品具有抗干擾能力強 價效比高等優點。dht11使用1 ...

DHT11溫濕度感測器

硬體連線 mcu通過一條資料線與dh11連線,mcu通過這條線發命令給dh11,dh11再通過這條線把資料傳送給mcu。溫濕度模組的核心就是 mcu發給dh11的命令格式和dh11返回的資料格式。首先mcu傳送乙個開始訊號s,這個開始訊號是乙個低脈衝,然後再拉高。等待dht11應答。然後,dh11拉...