Temperatursensor.

DHT11/DHT22



 

Innehåll.

Tillbaka till Raspbery Pi
Inledning.
Installation.
C-program DHT11.
C-program DHT22.
Lagra i databas.
Crontab.
Support/Hjälp.
Referens.




 
 

Inledning.

DHT11 är en fukt- och temperatursensor som använder i2c för kommunikation med omvärlden.
DHT11s mätområde är 0 - 50 grader C. Är fuktkänslig, klarar inte regn.
DHT22s mätområde är -40 - 80 grader C.



 


Till början.



 

Installation.

Koppla in DHT11 enligt nedanstående bild visar.


Raspberry Pi _____________ DHT11 Module
3.3v P1 ————————— VCC (V)
GND P6 ————————-- GND (G)
GPIO4 P7 ———————–--DATA (S)

Koppla in DHT22 enligt nedanstående bild visar.


Raspberry Pi _____________ DHT22 Module
3.3v P1 ————————— VCC (1)
GND P6 ————————-- GND (4)
GPIO4 P7 ———————–--DATA (2)
Används ej _______________NC (3)


 


Till början.



 

C-program DHT11.

Kompilera programmet: gcc -o dht11 dht11.c -lwiringPi -lwiringPiDev
Exekvera programmet: sudo ./dht11
Avbryt programmet med: ctrl-c

dht11.c


Resultat.


Modifierat program.

dht11_3v4.c
Programmet läser av värdena en gång per timme. Ifall data icke är OK läser programmet av data flera gånger tills data är OK. Programmet startas via crontab en gång per timme.



Resultat.



 


Till början.



 

C-program DHT22.

Kompilera programmet: gcc -o dht22 dht22.c -lwiringPi -lwiringPiDev
Exekvera programmet: sudo ./dht22
Avbryt programmet med: ctrl-c

dht22.c


OBS! Data skickas till /home/pi/Documents/Data/temp_dht22.txt. Ändra så det passar dig.



Till början.



 

Lagra data i en databas.

Avlästa data kan lagras i en MySQL-databas. Här beskrivs hur man skapar en MySQL-databas. Exemplet nedan använder databasen temperatur. Databasen har en tabell, temp med kolummerna datum, tid, fukt och temp.

Program för att läsa in data i databasen.

insert_v4.c


 


 

Crontab.

Exempel på hur crontab kan se ut. Här körs programmet en gång per timme, 5 minuter över heltimme.



Support/Hjälp.

Vi har noterat att exemplet dht11.c ibland förlorar data. Detta beror på att Raspberry Pi inte är ett realtidssystem, tidshanteringen i programmet är inte tillräckligt noggrant, och detta leder i bland till ett fel i i överföringen. På grund av att C är ett lågnivåspråk, kontrollerar det GPIO pinnarna på ett mer direkt sätt, så examplet i C har en mindre chans att falera.
Som ett sätt att gå runt problemet kan vi köra programmet flera gånger för att fånga upp det rätta resultatet. Detta kan även lösas programmässigt.
I programmet dht11_3v4 har vi ordnat så att ogiltiga data spolas.

 


Till början.



 

Referens.

Kjell & Co.
UUGear.



Till början.