Vochtigheid en temperatuur zijn algemene parameters om omgevingsomstandigheden te meten. In dit op Arduino gebaseerde project gaan we de omgevingstemperatuur en vochtigheid meten en deze weergeven op een 16x2 LCD-scherm. Een gecombineerde temperatuur- en vochtigheidssensor DHT11 wordt gebruikt met Arduino uno om dit Celsius schaal thermometer en percentage schaal vochtigheid meetproject te ontwikkelen. In een van mijn vorige projecten heb ik ook een digitale thermometer ontwikkeld met temperatuursensor LM35.
Dit project bestaat uit drie secties - één meet de vochtigheid en temperatuur met behulp van vochtigheids- en temperatuursensor DHT11. De tweede sectie leest de output van de DHT-sensormodule en extraheert temperatuur- en vochtigheidswaarden in een geschikt getal in procenten en Celsius-schaal. En het derde deel van het systeem geeft vochtigheid en temperatuur weer op het LCD-scherm.
De werking van dit project is gebaseerd op enkeldraads seriële communicatie. Eerst stuurt arduino een startsignaal naar de DHT-module en vervolgens geeft DHT een reactiesignaal met temperatuur- en vochtigheidsgegevens. Arduino verzamelt en extraheert in twee delen, een is de vochtigheid en de tweede is de temperatuur en stuurt ze vervolgens naar 16x2 LCD.
Hier in dit project hebben we een sensormodule gebruikt namelijk DHT11. Deze module is voorzien van een vochtigheids- en temperatuurcomplex met een gekalibreerde digitale signaaluitgang, wat betekent dat de DHT11-sensormodule een gecombineerde module is voor het meten van vochtigheid en temperatuur die een gekalibreerd digitaal uitgangssignaal geeft. DHT11 geeft ons een zeer nauwkeurige waarde van vochtigheid en temperatuur en zorgt voor een hoge betrouwbaarheid en stabiliteit op lange termijn. Deze sensor heeft een weerstandscomponent voor vochtigheidsmeting en een component voor temperatuurmeting van het NTC-type met een ingebouwde 8-bit microcontroller die snel reageert en kosteneffectief is en beschikbaar is in een 4-pins pakket met een enkele rij.
De DHT11-module werkt op seriële communicatie, dwz communicatie via één draad. Deze module verzendt gegevens in de vorm van een pulstrein van een specifieke tijdsperiode. Voordat gegevens naar arduino worden verzonden, heeft het een initialiseringsopdracht nodig met een vertraging. En de hele procestijd is ongeveer 4 ms. Een volledige gegevensoverdracht is van 40-bits en het gegevensformaat van dit proces wordt hieronder gegeven:
8-bits integrale RH-gegevens + 8-bits decimale RH-gegevens + 8-bits integrale T-gegevens + 8-bits decimale T-gegevens + 8-bits controlesom.
Voltooi het proces
Allereerst stuurt arduino een hoog naar laag startsignaal naar DHT11 met een vertraging van 18 µs om de detectie van DHT te garanderen. En dan trekt Arduino de datalijn tevoorschijn en wacht 20-40 µs op de reactie van DHT. Zodra DHT het startsignaal detecteert, stuurt het een reactiesignaal op laag spanningsniveau naar Arduino met een vertraging van ongeveer 80 µs. En dan trekt de DHT-controller de datalijn op en bewaart deze 80 µs voor het regelen van het verzenden van gegevens door DHT.
Wanneer de databus zich op een laag spanningsniveau bevindt, betekent dit dat de DHT11 een reactiesignaal verzendt. Als het klaar is, voert DHT opnieuw een datalijn uit gedurende 80 µs om de datatransmissie voor te bereiden.
Het gegevensformaat dat door DHT naar Arduino wordt verzonden voor elke bit, begint met een laagspanningsniveau van 50 µs en de lengte van het hoogspanningsniveausignaal bepaalt of het databit "0" of "1" is.
Een belangrijk ding is om ervoor te zorgen dat de weerstandswaarde wordt verhoogd, want als we de DHT-sensor op <20 meter afstand plaatsen, wordt 5k pull-upweerstand aanbevolen. Als u DHT op een langere afstand van 20 meter plaatst, gebruik dan een trekweerstand met de juiste waarde.
Schakelschema en uitleg
Een liquid crystal display wordt gebruikt voor het weergeven van temperatuur en vochtigheid, die rechtstreeks is aangesloten op arduino in 4-bit-modus. Pinnen van LCD, namelijk RS, EN, D4, D5, D6 en D7 zijn verbonden met Arduino digitale pin nummer 2, 3, 4, 5, 6 en 7. En een DHT11 sensormodule is ook verbonden met digitale pin 12 van Arduino met een 5k pull-up weerstand.
Programmering Beschrijving
Bij het programmeren gaan we vooraf gebouwde bibliotheken gebruiken voor de DHT11-sensor en LCD-displaymodule.
Vervolgens hebben we pinnen gedefinieerd voor de LCD- en DHT-sensor en alle dingen in de installatie geïnitialiseerd. Vervolgens in een lus met behulp van de dht-functie leest de DHT-sensor en vervolgens met behulp van enkele dht-functies extraheren we vochtigheid en temperatuur en geven deze weer op het LCD-scherm.
Hier wordt het graden-symbool gemaakt met behulp van de aangepaste tekenmethode.