Stap 3: Gegevens golfvorm
De timing van de golfvorm gegevens is Ga naar boven. In tegenstelling tot de IR-detector waar alles wat we deden was monitor voor binnenkomende gegevens pulsen, vereist de DHT sensoren een trigger puls van de PIC voordat ze gegevens stuurt. Dat is vergelijkbaar met de ultrasone sensor die we in aflevering 3, gebruikt behalve dat de DHT slechts één pin voor zowel de trigger en het antwoord gebruikt. Want het is een 1-wire interface die de software PIC veranderen van de definitie van de externe Interrupt pin op de vlieg moet, zodat het kan als beide input functioneren en tijdens de communicatie output. Telkens wanneer een update is gewenst de foto zal de pin definiëren als een I/O output en verander het terug naar de ingang van externe onderbreken om de gegevens van de DHT ontvangen. Dat alles wordt weerspiegeld in de golfvorm. In eerste instantie stuurt de PIC een lage puls ten minste 18 ms in lengte. Na dat het schakelt de pin terug naar een input en de 4.7 k pull-up weerstand gedetailleerd beschreven in de sectie hardware zorgt ervoor dat de DHT ziet nu het niveau van de vereiste hoge logica voordat het zal reageren. Vergelijkbaar met de IR-sensor in aflevering 2, de DHT stuurt een start voor bericht pulse (80 VS lage gevolgd door 80 VS hoog). De gegevens van de latere pulsen beginnen altijd met een 50 VS lage gevolgd door ofwel een 26 ons hoge pols (data-bit = 0) of door een 70 ons hoge pulse (data-bit = 1).
De complete gegevensstroom van de DHT bestaat uit 40 bits. De eerste 16 bits zijn vochtigheid gegevens, de tweede 16 bits zijn temperatuur gegevens en de laatste 8 bits zijn de controlesom van een bericht. In de DHT-11, de eerste 8 bits zijn een integer-waarde voor de vochtigheid en de tweede 8 bits nullen. De derde 8 bits zijn een integer-waarde voor de temperatuur en de vierde 8 bits nul. Dat maakt het leven vrij gemakkelijk in de software. Want de DHT22/AM2302 nauwkeuriger is en een bredere waaier voor de temperatuur en de vochtigheid heeft, is de gegevensindeling anders gedefinieerd. Voor de luchtvochtigheid vertegenwoordigen de 16 databits zowel een fractionele waarde als een geheel getal (tot op één decimaal). Bijvoorbeeld vertegenwoordigt een ontvangen de decimale waarde van 652 een vochtigheid van 65.2%. De 16-bits voor de temperatuur zijn opgemaakt dezelfde manier, behalve dat de meest significante bit het teken van de gegevens is. De gegevens zijn niet in 2's vullen formaat dus een positieve temperatuur dezelfde numerieke waarde als de gelijkwaardige negatieve temperatuur hebben zal.