Il protocollo che vado a descrivere, non è un protocollo standard ma proprietario ed è utilizzato per dialogare con i sensori siglati DHT11 e DHT22.
Questi sensori permettono di misurare la temperatura e l'uminidità ambientale con più o meno precisione, in base al modello scelto.
Il protocollo è di tipo 1 wire, (1 filo).
Questo sistema "costringe" la comunicazione a trasmettere e ricevere i dati su un solo filo più GND.
La sua alimentazione può variare da 3 a 5,5Volt e necessita di una resistenza da 5Kohm tra l'alimentazione ed il piedino DATA.
Le informazioni inviate dal sensore sono di 40 bit in seriale divise per 5 byte così descritte:
1byte ---> RH data intero (Uminità)
2byte ---> RH data decimale (Uminità)
3byte ---> C data intero (Temperatura)
4byte ---> C data decimale (Temperatura)
5byte ---> Somma dei due valori precedenti (check-sum)
Per poter ricevere le informazioni, il microcontrollore (o altro dispositivo), deve portare a zero per 18ms il piedino data e poi portarlo a livello logico uno per 20us (il sensore accetta valori da 20 a 40 us), come si può vedere nella foto.
Il microcontrollore risponde ponendo l'usicta DATA a livello logico zero per 80us e poi a livello logico 1 per altro 80us
Ha inizio la trasmissione, il piedino DATA si pone a livello logico zero per 50us tra un bit ed un altro.
Per distinguere un valore zero da un valore alto, il sensore utilizza dei tempi nel seguente modo:
Valore zero ---> Tensione alta per 26-28 us
Valore uno ---> Tensione alta per 70 us
Calcolando il tempo in cui il piedino DATA rimane alto si può sapere se è un valore zero o uno.
Contanto e memorizzando i singoli byte si ottendono le misure di umidità e temperatura.
Il quinto byte (check-sum) è la somma dei due valori e di solito è usato come controllo per la ricezione dei dati.
Da notare che il modello DHT11 usa solo i byte 1 e 3 oltre al 5, mentre il modello DHT22 li usa tutti e 5, da quì si capisce perchè il modello DHT22 è più preciso.
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.