Arduino IDE 安裝如下庫文件
DHT sensor library by Adafruit DHT11 溫濕度傳感器 Data 引腳與 Arduino Nano 開發板的 D2 引腳連接
代碼- #include <DHT.h>
- #define Temperature_COMMAND 0x10 //采集命令字
- #define Humidity_COMMAND 0x11 //采集命令字
-
- #define DHTPIN 2 // DHT sensor data GPIO
- #define DHTTYPE DHT11 // select one kind of sensors from DHT11, DHT22 and DHT21
- DHT dht(DHTPIN, DHTTYPE);
- byte comdata[3]={0}; //定義數組數據,存放串口接收數據
- void receive_data(void); //接受串口數據
- void test_do_data(void); //測試串口數據是否正確,并更新數據
- void setup()
- {
- Serial.begin(115200);
- dht.begin();
- }
- void loop()
- {
- while (Serial.available() > 0) //不斷檢測串口是否有數據
- {
- receive_data(); //接受串口數據
- test_do_data(); //測試數據是否正確并更新標志位
- }
- }
- void receive_data(void)
- {
- int i ;
- for(i=0;i<3;i++)
- {
- comdata[i] =Serial.read();
- //延時一會,讓串口緩存準備好下一個字節,不延時可能會導致數據丟失,
- delay(2);
- }
- }
- void test_do_data(void)
- {
- if(comdata[0] == 0x55) //0x55和0xAA均為判斷是否為有效命令
- {
- if(comdata[1] == 0xAA)
- {
- switch (comdata[2])
- {
- case Temperature_COMMAND:
- Serial.println((float)dht.readTemperature());
- break;
- case Humidity_COMMAND:
- Serial.println((float)dht.readHumidity());
- break;
- }
- }
- }
- }
復制代碼
將代碼下載進開發板,通過串口助手軟件分別發送 HEX 格式數據 55AA10 和 55AA11 獲取反饋的溫濕度數據,測試通過后關閉串口并運行 LabVIEW 程序,即可獲得溫濕度變化曲線。
LabVIEW 界面
標簽 1 記錄了溫濕度的變化曲線 標簽 2 記錄溫濕度隨時間的演化過程 效果展示工程文件見附件。
|