Met een Arduino, DHT22-sensor en LCD kun je een gadget maken om temperatuur en relatieve vochtigheid te meten en weer te geven.
Het maken van je eigen gadget voor het meten van temperatuur/luchtvochtigheid kan een leuke en lonende ervaring zijn. Met behulp van een Arduino-microcontroller kan dit doe-het-zelf-project worden gebruikt om uw kamertemperatuur en vochtigheid te bewaken, vooral in hete zomers.
Bovendien kan het u ook helpen de prestaties van uw airconditioner te evalueren. Voor temperatuur- en vochtigheidsdetectie zullen we een elektronische sensor gebruiken, die wordt aangesloten op een microcontroller die gegevens van de sensor ophaalt en op een display presenteert.
Wat je nodig hebt
Voor dit doe-het-zelf-project hebben we de volgende componenten nodig:
- Arduino Mega-microcontroller
- Draden aansluiten
- USB Type-A naar USB Type-B kabel
- DHT22-sensor
- LCD-scherm van 16x2
- Laptop of computer mee Arduino-software geïnstalleerd
- Breadboard (zie onze gids voor een breadboard gebruiken)
- Weerstanden of een potentiometer
Stap 1: Sluit Arduino Mega Microcontroller aan
Sluit het Arduino-bord aan op je pc of laptop met behulp van de USB-kabel. Deze kabel voedt niet alleen de Arduino-module en fungeert als voeding, maar laat de computer ook communiceren met het Arduino-bord voor code-uitvoering en commando's. Wanneer de Arduino via een USB-kabel op de computer is aangesloten, laat hij zien dat hij in werkende staat is door zijn LED-lampje in te schakelen.
Ga vanuit de menubalk van Arduino IDE naar Hulpmiddelen tabblad en selecteer Arduino mega van de Bord opties. Selecteer op dezelfde manier de COM-poort onder hetzelfde Hulpmiddelen tabblad.
Stap 2: Bereid de sensor en het LCD-scherm voor
Het project maakt gebruik van een DHT22 temperatuur-/vochtigheidssensor en een 16x2 LCD-scherm, waarvoor je de relevante Arduino IDE-bibliotheken nodig hebt.
DHT22-sensor
De DHT11 en DHT22 zijn elektronische sensoren die de temperatuur en vochtigheidsgraad van de omgeving meten. Ze werken volgens vergelijkbare principes, maar verschillen in hun specificatiebereik. Voor dit doe-het-zelf-project gebruiken we een DHT 22-sensor (met name de bekabelde AM2302-versie). De DHT22 is een betere optie in termen van breed bereik en nauwkeurigheid voor zowel temperatuur- als vochtigheidsdetectie.
De DHT22 / AM2302-module heeft drie pinnen met de volgende configuratie:
Pin |
Naam |
Functie |
---|---|---|
1 |
Vcc |
+5V vermogen |
2 |
Gegevens |
Gegevens voor vochtigheid en temperatuur |
3 |
Gnd |
Gemeenschappelijke grond voor het signaalpad |
De eenvoudigste manier om DHT-sensoren met Arduino-microcontrollers te gebruiken, is door de DHT.h bibliotheek, die kan worden gebruikt voor zowel DHT11- als DHT22-sensoren. Deze bibliotheek is meestal vooraf geïnstalleerd in Arduino IDE. Als het niet beschikbaar is, kunt u het installeren vanaf Bibliotheek beheerder onder de Hulpmiddelen tabblad.
LCD-scherm van 16x2
Om de sensormetingen weer te geven, gebruiken we een 16x2 LCD weergave voor de Arduino. Dit display heeft 16 hardwarepinnen en heeft een microcontroller-interface nodig om de functionaliteit te regelen. De volgende tabel toont de hardwarepennen van het LCD-scherm en hun functionaliteit.
Pincode |
Naam |
Functie |
---|---|---|
1 |
Gnd |
Gemeenschappelijke grond |
2 |
Vdd |
+5VDC (Voeding van LCD) |
3 |
Vee |
Helderheidsregeling |
4 |
RS |
Registreren Selecteer |
5 |
R/W |
Lezen schrijven |
6 |
NL |
Inschakelen/Uitschakelen |
7 |
DB0 |
Databus pin 0 |
8 |
DB1 |
Databuspen 1 |
9 |
DB2 |
Databuspen 2 |
10 |
DB3 |
Databuspen 3 |
11 |
DB4 |
Databuspen 4 |
12 |
DB5 |
Databuspen 5 |
13 |
DB6 |
Databuspen 6 |
14 |
DB7 |
Databuspen 7 |
15 |
LED+ |
Achtergrond-LED (+5V) |
16 |
LED- |
Achtergrond-LED (gemeenschappelijke aarde) |
Het 16x2 LCD-scherm kan worden weergegeven met behulp van vier databussen of acht databussen. Hier gebruiken we vier databussen van de microcontroller naar de LCD. Slechts vier data (DB4 tot DB7) pinnen van de 16x2 LCD zijn verbonden met de Arduino, samen met de RS (Register Select) en EN (Enable) pinnen.
In de 4-bits modus worden gegevens/commando's verzonden in een 4-bits nibble-formaat. Eerst verzendt het een hogere 4-bit en vervolgens een lagere 4-bit van de gegevens/opdracht. Dankzij dergelijke verbindingen kunnen we vier GPIO-pinnen op onze Arduino besparen die voor een andere toepassing kunnen worden gebruikt. Merk op dat het doel van pin 15 en 16 (achtergrond-LED) is om het display te verlichten, alleen voor een betere zichtbaarheid.
U kunt de LiquidCrystal.h Arduino-bibliotheek om het 16x2 LCD-scherm te bedienen. Deze bibliotheek is meestal vooraf geïnstalleerd. Als het niet beschikbaar is, kunt u het installeren vanaf Bibliotheek beheerder onder de Hulpmiddelen tabblad in Arduino IDE.
Stap 3: Bouw het circuit om de sensor en het LCD-scherm aan te sluiten
Voor deze schakeling wordt het volgende aansluitschema gebruikt.
Arduino Megapin |
LCD / DHT22-pen |
---|---|
2 |
D4 van LCD |
3 |
D5 van LCD |
4 |
D6 van LCD |
5 |
D7 van LCD |
8 |
RS van LCD |
9 |
NL van LCD |
52 (SCK) |
Gegevens uit pin van DHT22 |
Het Arduino Mega-bord biedt stroomaansluitingen voor zowel het LCD-scherm als de sensor, aangezien het low-power modules zijn en eenvoudig via dit bord kunnen worden beheerd. Voor de regeling van de LCD-helderheid gebruiken we een weerstandsspanningsdeler, die zo is geplaatst dat ongeveer 0,1 V tot 0,5 V wordt geleverd aan pin 3 (VEE) van de LCD voor optimale helderheid. Als alternatief kan in plaats van deze spanningsdeler een potentiometer worden gebruikt. Pin 5 (R/W) van het LCD-scherm is ingesteld op aarde voor de alleen-schrijven-functie.
Stap 4: upload uw code naar de Arduino
Dit is het moment om uw code naar het Arduino Mega-bord te uploaden om de vereiste taak uit te voeren, waaronder het ophalen van sensorgegevens van de DHT22 en deze weergeven op het LCD-scherm.
De code voor dit project is hier verkrijgbaar GitHub repo.
De code is ontworpen volgens de bedradingsaansluitingen van het circuit dat wordt getoond in stap 3. Nu kunt u het testen voor prestatie-evaluatie.
Testen van de module
Om ervoor te zorgen dat de sensor goed werkt en temperatuur en vochtigheid detecteert, houden we de sensor een paar centimeter boven een kop heet water (hete dampen uitstotend). Dompel de DHT 22-sensor niet in water, dit kan kortsluiting veroorzaken en permanente schade aan de sensor veroorzaken! Na enkele seconden is een stijging van de temperatuur en het luchtvochtigheidspercentage waar te nemen, wat aangeeft dat de module goed werkt.
Je hebt je eigen thermometer en vochtigheidsmeter gebouwd
Nu je je eigen thermometer en vochtigheidsmeter hebt gebouwd, kun je dit idee verder uitbreiden door een afstandsbediening op te nemen bewaking van temperatuur en vochtigheid door deze informatie via Wi-Fi of Bluetooth naar een ander apparaat te verzenden adapter. U kunt de sensorgegevens van deze module ook gebruiken om uw kamerairconditioner of afzuigsysteem in te schakelen automatisch in- en uitschakelen volgens de gewenste instellingen, om de temperatuur/vochtigheid in uw kamer te behouden of werkplaats.