DTH111 溫度感測器 獲取溫度 驅動 樹莓派

2021-08-21 04:33:22 字數 1589 閱讀 9185

前言

由於我給我弟弟(小學生)買了乙個樹莓派,so,需要乙個例子激發他的興趣(

正文開始--------

dth111.h

/*

2018-02-13 1.0

*/#ifndef __dth111_h__

#define __dth111_h__

#include #include #include typedef struct dth111 dth111;

int getdth111data(int gpio, dth111 *udth111);

#endif //__dth111_h__

dth111.c

#include "dth111.h"

int getdth111data(int gpio, dth111 * udth111)

usleep(80);//延時80微秒

musleep = 300000;

while(digitalread(gpio) == high && musleep--)

//開始接收資料

for (i = 31; i > -1; i--)

musleep = 300000;

gettimeofday(&tv_start, null);//開始計時

while (digitalread(gpio) == high && musleep--)

gettimeofday(&tv_stop, null);//結束計時

if ((tv_stop.tv_sec - tv_start.tv_sec) * 1000000 + (tv_stop.tv_usec - tv_start.tv_usec) > 30) }

//獲取效驗值

for (i = 7; i > -1; i--)

musleep = 300000;

gettimeofday(&tv_start, null);//開始計時

while (digitalread(gpio) == high && musleep--)

gettimeofday(&tv_stop, null);//結束計時

if ((tv_stop.tv_sec - tv_start.tv_sec) * 1000000 + (tv_stop.tv_usec - tv_start.tv_usec) > 30)

} //資料效驗

if (*(((char*)(&data)) + 3) + *(((char*)(&data)) + 2) + *(((char*)(&data)) + 1) + *(((char*)(&data)) + 0) != effective )

//填充資料

udth111->humidity = 1 + *((char *)(&data) + 3);

if (*((char *)(&data)) + 1 >= 10 )else

udth111->temperature = 1 + ((*((char *)(&data) + 1)) * 1.0) + udth111->temperature;

return 0;

}

器件選型 溫度感測器

溫度感測器是當今眾多產品應用中最常用的技術之一,比如應用在汽車 白電和工業類產品等中。為了進行可靠的溫度測量,選擇合適的溫度感測器十分重要。了解不同型別溫度感測器的優缺點有助於在測量前做出正確的選擇。熱電偶 熱敏電阻 ntc ptc 電阻溫度檢測器 rtd 和晶元型溫度感測器是測量中最常見的型別,它...

Arduino使用模擬溫度感測器

這也是37款感測器套件中的一款,感測器的樣式如下圖所示 測試 如下 用的就是商家資料中提供的 includedouble thermister int rawadc void setup void loop 本身比較簡單,應該沒有什麼問題,但是實際串列埠監視器中輸出的資料卻沒有變化,一直都是如下的資...

溫度感測器 熱電偶

什麼叫熱電偶?這就要從熱電偶測溫原理說起,熱電偶是一種感溫元件,是一次儀表,它直接測量溫度,並把溫度訊號轉換成熱電動勢訊號,通過電氣儀表 二次儀表 轉換成被測介質的溫度。熱電偶測溫的基本原理是兩種不同成份的材質導體 稱為熱電偶絲材或熱電極 組成閉合迴路,當接合點兩端的溫度不同,存在溫度梯度時,迴路中...