Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino DTH22 vochtigheidstemperatuur met LCD I2C 16x2 display

Componenten en benodigdheden

Arduino UNO
× 1
DHT22-temperatuursensor
× 1
Wit op blauwe 16×2 LCD-module met I2C-rugzakmodule – 5V
× 1
Soldeerloze breadboard op ware grootte
× 1
9V-batterij (algemeen)
× 1
Adafruit 9V batterijclip met 5,5 mm/2,1 mm stekker
× 1
USB-A naar mini-USB-kabel
× 1
Mannelijke/Vrouwelijke doorverbindingsdraden
× 1
Mannelijke/Mannelijke doorverbindingsdraden
× 1

Over dit project

Twee jaar lang had mijn zoon (7) de wens om een ​​slang als huisdier te hebben. Uiteindelijk kocht hij een paar slangen met een terrarium. Om de slangen in een voor hen comfortabele omgeving te houden, moeten we de temperatuur en de luchtvochtigheid in de gaten houden.

Dus kochten we een analoge vochtigheid/temperatuursensor en ontdekten dat het niet zo eenvoudig was om beide op peil te houden. Omdat ik dolgraag een project wilde starten met mijn nieuw gekochte Arduino Uno, leek het een goed idee om een ​​vochtigheids- / temperatuursensor te gebruiken en de Arduino de automatisering van temperatuur en vochtigheid in het terrarium te laten doen. Daarom kocht ik een DTH22 vochtigheids- / temperatuursensor en een LCD I2C 16x2 display en probeerde het.

Deze tutorial is de basis van dit project. Er is geen enkele automatisering in deze tutorial. Alleen het gebruik van de DTH22 en een LCD I2C-display.

Ik heb een andere tutorial voor dit doel gezien, maar dit was het gebruik van een LCD zonder de I2C. Als je de I2C niet op je LCD hebt aangesloten, bekijk dan deze tutorial van ThothLoki

Hardware vereist

  • Elke 5V Arduino (in dit geval Arduino Uno R3)
  • DTH22 Vochtigheids-/temperatuursensor
  • LCD 16x2 display met I2C erop gemonteerd
  • Broodplank
  • 6 mannelijke/mannelijke jumperdraden
  • 4 mannelijke/vrouwelijke jumperdraden

Benodigde bibliotheken

  • Adafruit_Sensor
  • DHT
  • NewliquidCrystal

Voordat we beginnen

Ik hou van de LCD 16x2 met een I2C gemonteerd, omdat het je de moeite bespaart van alle pinnen die wel of niet op de Arduino moeten worden aangesloten. Je hebt maar 4 jumperdraden nodig en dat is alles.

Het display heeft een I2C-adres om commando's te accepteren of berichten te verzenden. Het nadeel is dat je moet uitzoeken welk adres het gebruikt voordat je verder kunt gaan. Ik zal hier niet in details treden, maar op het Arduino-forum kun je er alles over lezen.

In mijn geval gebruikt ons apparaat het 0x3F-adres , als je apparaat dit adres ook gebruikt, heb je geluk, dan kun je gewoon onze code kopiëren.

Sluit het breadboard aan op de Arduino

Zowel de DHT22-sensor als de LCD 1602 I2C gebruiken een 5V-voeding. Daarom heb ik de 5V-pin op mijn Arduino aangesloten op de rode + rij op het breadboard en de aarde van mijn Arduino op de blauwe - op het breadboard. Omdat ik de kleuren synchroon wil houden, gebruik ik in mijn schema rode kabels voor 5V en blauwe kabels voor aarde. In het echte leven gebruikte ik geen blauw als grond, maar wit... heb teveel met auto-elektronica gespeeld denk ik.

Ik gebruik een gele kabel voor Data, een oranje kabel voor SDA en een grijze kabel voor SCL. De letter twee staat op de I2C.

De DHT22-sensor toevoegen

Laten we eens kijken naar de pinout. De DHT22-sensor (zoals de DHT11) heeft vier pinnen. Ik plaats de DHT22-sensor op het breadboard met de voorkant naar buiten gericht. Zo zit de eerste pin (5V voeding) aan de rechterkant (zie de schema's).

Ik gebruik een kleine rode startkabel om de 5V VCC aan te sluiten op de 5V (+) rij op het breadboard. En een kleine blauwe startkabel om de grond met de grond (-) rij op het breadboard te verbinden. Ik nam een ​​lange gele kabel om de tweede pin, de datapin, op de Arduino aan te sluiten. Omdat het digitale gegevens zijn, heb ik deze aangesloten op datapoort 4 op de Arduino. In andere voorbeelden zul je waarschijnlijk mensen zien die poort 7 gebruiken, beide zullen werken. Ik gebruikte poort 4 omdat ik verwachtte dat ik meer datapoorten zou gebruiken en poort 7 wilde bewaren voor het geval dat. Dit zie je ook terug in de schema's.

De LCD 16x2 I2C toevoegen

De LCD 16x2 I2C heeft ook 4 pinnen. Kijkend naar de afbeelding hieronder, van links naar rechts:

  • Grond
  • VCC (5V)
  • SDA
  • SCL

Verbind de eerste (linker) pin met de grond (-) rij op het breadboard. Sluit de tweede pin aan op de rode 5V (+) rij van het breadboard. Ik gebruik een Arduino Uno dus die heeft de I2C aansluitingen op A4 (SDA) en A5 (SCL). Dus ik verbond de derde pin met de A4 en de vierde pin met de A5-connector op de Arduino.

De code

Onthoud voor het scherm dat u een ander adres kunt hebben om verbinding mee te maken. Mijn I2C gebruikt adres 0x3F (zie deel 'Voordat we beginnen') dus pas op dat mijn code is ingesteld voor dit adres.

Onthoud de benodigde bibliotheken (Adafruit_Sensor, DHT, NewliquidCrystal). Download deze bibliotheken, pak ze uit en plaats ze in de bibliothekendirectroy van uw project.

Upload vervolgens de code naar je Arduino en controleer de vochtigheid en temperatuur van je terrarium (of serverkast, of koelkast of gewoon je woonkamer).

Code

  • hygroThermo.ino
hygroThermo.inoC/C++
/* Hoe de DHT-22-sensor te gebruiken met Arduino uno Temperatuur- en vochtigheidssensor Meer info:http://www.ardumotive.com/how-to-use-dht-22-sensor-en.html Dev:Michalis Vasilakis // Datum:1/7/2015 // www.ardumotive.com *///Libraries#include #include  #include #include //Constanten#define DHTPIN 4 // met welke pin we zijn verbonden#define DHTTYPE DHT22 // DHT 22 (AM2302)DHT dht(DHTPIN, DHTTYPE); //// Initialiseer DHT-sensor voor normale 16mhz Arduino// GEBRUIK DIT ALTIJD MET LCD I2C en Addres 0x3F#define I2C_ADDR 0x3F#define BACKLIGHT_PIN 3#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin #define D6_pin 6#define D7_pin 7LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);//Variablesint chk;float brom; // Slaat vochtigheidswaarde op; // Slaat temperatuurwaarde leeg setup () {Serial.begin (9600) op; dht.begin(); lcd.begin(16,2); lcd.setBacklightPin (BACKLIGHT_PIN,POSITIEF); lcd.setBacklight(HIGH);}void loop(){ delay(2000); // Lees gegevens en sla deze op in variabelen hum en temp hum =dht.readHumidity (); temp =dht.readTemperature(); // Print temperatuur- en vochtigheidswaarden naar seriële monitor Serial.print ("Vochtigheid:"); Serial.print(brom); Serial.print(" %, Temp:"); Serial.print(temp); Serial.println ("Celsius"); lcd.wissen(); lcd.setCursor(0,0); lcd.print("Temp:"); lcd.afdruk(temp); lcd.print(" "); lcd.print((char)223); lcd.print("C"); lcd.setCursor(0,1); lcd.print("Zoem:"); lcd.print(brom); lcd.print(" %"); vertraging (2000); //Vertraging 2 sec.}

Schema's

Schema Fritzing schema_UcHE1qRu2t.fzz

Productieproces

  1. Arduino I2C-communicatie met Raspi 2 WIOT
  2. LCD-paneel met Arduino voor Flight Simulator
  3. De waterdruppels vastleggen met Arduino
  4. Temperatuur- en vochtigheidsdatalogger
  5. Spelen met Nextion Display
  6. Een afbeelding weergeven op een LCD TFT-scherm met Arduino UNO!
  7. BME280 temperatuur, vochtigheid en druk op Nextion-display
  8. DIY 10Hz-50kHz Oscilloscoop op 128x64 LCD-scherm
  9. u-blox LEA-6H 02 GPS-module met Arduino en Python
  10. De temperatuur en vochtigheid op Blynk aflezen met DHT11
  11. Eenvoudige wekker met DS1302 RTC