Inhoudsopgave:

Arduino DHT22-sensor en bodemvochtproject met menu - Ajarnpa
Arduino DHT22-sensor en bodemvochtproject met menu - Ajarnpa

Video: Arduino DHT22-sensor en bodemvochtproject met menu - Ajarnpa

Video: Arduino DHT22-sensor en bodemvochtproject met menu - Ajarnpa
Video: DHT11 & DHT22 Sensors Temperature and Humidity Tutorial using Arduino 2024, November
Anonim
Arduino DHT22-sensor en bodemvochtproject met menu
Arduino DHT22-sensor en bodemvochtproject met menu

Hallo jongens Vandaag presenteer ik jullie mijn tweede project op instructables. Dit project presenteert het mengsel van mijn eerste project waarin ik de bodemvochtsensor en de DHT22-sensor gebruikte die wordt gebruikt voor het meten van temperatuur en vochtigheid. Dit project is gemakkelijk te maken en mensen die Arduino gebruiken, zullen het heel interessant vinden om te maken. Het verschil tussen dit project en het eerste is dat de gebruiker in dit project een menu heeft waarin hij kan kiezen wat hij op dat moment wil zien. Er zullen vier opties zijn. Dus pak je kit en begin met het maken van dit project dat in elk huis kan worden gebruikt.

Stap 1: Het verkrijgen van alle onderdelen

Verkrijgen van alle onderdelen
Verkrijgen van alle onderdelen
Verkrijgen van alle onderdelen
Verkrijgen van alle onderdelen
Verkrijgen van alle onderdelen
Verkrijgen van alle onderdelen

Dit project gebruikt weinig onderdelen. Deze onderdelen zijn erg goedkoop te krijgen, dus maak je geen zorgen over de prijs. Sommige onderdelen die in dit project worden gebruikt, kunnen worden gewijzigd, zodat het project goedkoper kan worden gemaakt. Het is aan jou welke delen van aanbevolen ga je gebruiken en dit project nog beter maken. Onderdelen gebruikt in dit project:

  1. Arduino uno rev3 (Je kunt ook andere Arduino gebruiken)
  2. Breadboard
  3. LCD 1602 groen display met I2C (u kunt het display ook zonder I2C gebruiken, maar u hebt meer pinnen nodig om het aan te sluiten)
  4. 16-knops toetsenbord (veranderbaar)
  5. FC-28-d Bodemhygrometer detectiemodule + bodemvochtsensor
  6. DHT22 temperatuur- en vochtigheidssensor (u kunt DHT11 gebruiken die goedkoper is om te krijgen)
  7. Rode LED-diode
  8. Blauwe LED-diode
  9. 2 weerstanden 220 ohm (gebruikt voor diodes)
  10. 4k7-weerstand gebruikt voor DHT22 op schema
  11. Arduino batterij connector
  12. Weinig startkabels om alle onderdelen aan te sluiten

Een ding dat ik je moet vertellen voordat je begint met het bouwen van dit project, is dat een toetsenbord niet nodig is. Ik heb deze keer het toetsenbord gebruikt omdat mijn roterende encoder kapot was. Ik denk dat dit project perfect zou zijn als het een roterende encoder heeft, omdat het minder pinnen zou gebruiken, of het kan 3 knoppen gebruiken.

Stap 2: Alle onderdelen met elkaar verbinden

Alle onderdelen met elkaar verbinden
Alle onderdelen met elkaar verbinden

In deze stap zie je het schema dat ik heb gemaakt met fritzing. Ik zal het opschrijven om elk belangrijk onderdeel van dit project met elkaar te verbinden.

Zoals je kunt zien, gebruiken we 5V en GND van Arduino om het breadboard van stroom te voorzien.

LCD:

  • VCC naar 5v (+ deel op breadboard)
  • GND naar gnd (- deel op breadboard)
  • SDA naar analoge pin A4
  • SCL naar analoge pin A5

Toetsenbord met 16 knoppen:

We gebruiken pinnen 9, 8, 7, 6, 5, 4, 3, 2 om het toetsenbord aan te sluiten (dit is de reden waarom ik een roterende encoder zou gebruiken, omdat er maar 3 pinnen op het bord nodig waren)

Bodemvochtsensor:

  • VCC naar 5v (+ deel op breadboard)
  • GND naar gnd (-gedeelte op breadboard)
  • D0 naar digitale pin 0
  • A0 naar analoge pin A0

DHT22:

  • VCC naar 5v (+ deel op breadboard)
  • GND naar gnd (-gedeelte op breadboard)
  • Uit pin is verbonden met pin 12

Diode aansluiten:

  • een deel van de diode gaat in - een deel van het breadboard
  • tweede deel gaat door een weerstand van 220 ohm en wordt daarna aangesloten op pin 10 (blauwe diode) of 11 (rode diode)

Stap 3: Code schrijven

Ik zal proberen de code in enkele delen uit te leggen. Er zal ook volledige code worden geschreven, zodat u deze kunt kopiëren en ook kunt wijzigen als u dat nodig acht. Ook in deze code zijn er weinig methoden voor sensorwerk geschreven, maar deze keer lag de nadruk op het maken van een menu dat gemakkelijk te begrijpen is voor mensen die nieuw zijn met Arduino. Deze keer gebruik ik geen interrupts, maar in mijn volgende projecten zal ik dat doen, dus houd er rekening mee dat deze code veel beter kan worden met interrupts.

  1. Het eerste deel van de code omvat alle gebruikte bibliotheken voor dit project. Houd er rekening mee dat voor alle onderdelen die ik heb verteld dat ik ze gebruik, je de volgende bibliotheken nodig hebt: Wire, LiquidCrystal_I2C, Keypad en DHT. Alle bibliotheken zijn te vinden op Arduino IDE als je naar het schetsgedeelte gaat en vervolgens bibliotheken opneemt. Houd er ook rekening mee dat als je iets als een roterende encoder gebruikt, je waarschijnlijk nieuwe bibliotheken moet krijgen in plaats van een toetsenbord, wat waarschijnlijk rotary.h en een knop zou zijn. Als u de DHT11-sensor gebruikt, is de bibliotheek nog steeds DHT.
  2. In het tweede deel van de code zullen alle gebruikte delen worden gedefinieerd. Allereerst is er LCD. Daarna is er een DHT-sensor die een soort object is met een dht-type sensor, en ook een pin die is aangesloten. Bodemvochtsensor en diodes zijn derde.
  3. Ik zal het toetsenbord een beetje meer beschrijven. Zoals ik al zei, was mijn roterende encoder kapot, dus besloot ik hem te gebruiken. Voor dit project is het voldoende om slechts vier knoppen te hebben, zelfs drie is er goed voor. Dus ik gebruik vier knoppen op het toetsenbord voor slechts één optie. Je kunt een aantal knoppen gebruiken als je iets anders wilt als je een idee hebt. In dit deel moet u rijen en kolommen definiëren. Daarna zullen hexaKeys de opties vertegenwoordigen die voor dit project worden gebruikt. In mijn project zijn er B (terug), U (omhoog), D (omlaag) en A (accepteren). Je kunt van elke knop iets anders maken. Eén knop kan de achtergrondverlichting inschakelen, één kan deze uitschakelen. Dus speel er gerust nog wat mee
  4. In dit deel worden globale variabelen gebruikt in code. Bool-variabelen worden gebruikt voor het wijzigen van het scherm. De welkomstvariabele is slechts een paar seconden waar wanneer de arduino die ik heb ingeschakeld, daarna de rest van de tijd niet waar is. De belangrijkste focus ligt op mainScreen variabele. Deze variabele wordt gebruikt om u van het menu naar elke andere optie in de code te leiden. Als deze variabele onwaar is, betekent dit dat de gebruiker heeft besloten een van de vier opties van dit project te gebruiken.
  5. Hier zijn alle methoden geschreven die in deze code worden gebruikt. Ik zal proberen alle geschreven methoden in dit deel uit te leggen
  • void startScreen(); // methode voor het starten van project en arduino
  • int keuzenummer (int keuze); // dit verandert uw keuze van opties van het project. Nummer gaat van 1 tot 4
  • ongeldig mainScreenP(int keuze); // er zullen vier opties worden geschreven voor het apparaat dat is gemaakt
  • bool mainScreenCS(bool mainScreen); //dit verandert mainScreen in false
  • bool mainScreenBack(bool mainScreen); //dit verandert mainScreen in true
  • ongeldige tempCelsius(); // aflezen temperatuur in C DHT sensor optie
  • ongeldige tempFarenheit(); // temperatuur aflezen in F DHT-sensoroptie
  • ongeldig printVochtigheid(); // lezen vochtigheid DHT sensor optie
  • ongeldig leesSensorData(); // gegevens lezen over aangesloten sensoren
  • Tekenreeks getTemperatureC();
  • Tekenreeks getTemperatureF();
  • Tekenreeks getHumidity();
  • ongeldig bodemvocht(); // dit is voor een andere sensor en diodes
  • ongeldig printSensorSoilMoisture(); // bodemvochtgedeelte afdrukken op lcd
  • ongeldige diodeLights (int waarde); // diodes in- en uitschakelen
  • ongeldig printValue (int-waarde);

6. Setup voor Arduino is een onderdeel waar je de LCD- en DHT-sensor en ook diodes instelt

7. Hoofdgedeelte is het gedeelte waarin alle bovenstaande schriftelijke methoden worden gebruikt.

De volledige code van dit project vindt u als bijlage bij deze stap. Houd er rekening mee dat er een mogelijkheid is dat de pinnen misschien niet zijn aangesloten zoals op het schema, ik denk dat de diodes zijn veranderd.

Stap 4: Uw Arduino gebruiken

Uw Arduino gebruiken
Uw Arduino gebruiken
Uw Arduino gebruiken
Uw Arduino gebruiken
Uw Arduino gebruiken
Uw Arduino gebruiken
Uw Arduino gebruiken
Uw Arduino gebruiken

Dit is waarschijnlijk het grappigste deel. Het is in ieder geval grappiger na al het coderen. In dit deel kunt u foto's zien van hoe het project werkt. Er zijn 4 opties.

  1. Temperatuur aflezen in Celsius
  2. Temperatuur aflezen in Fahrenheit
  3. Vochtigheid aflezen
  4. Diodes aanzetten en waarden van bodemvochtsensor aflezen.

Je kunt elk van de mogelijke opties kiezen, je kunt ook teruggaan en opnieuw kiezen als je iets anders wilt zien. Eenvoudig en gemakkelijk te gebruiken.

Als er nog andere vragen zijn, kun je me die stellen. Bedankt voor het kijken naar mijn project. Met alle groeten. Sebastiaan

Aanbevolen: