Inhoudsopgave:

Arduino temperatuur- en vochtigheidssensor - Ajarnpa
Arduino temperatuur- en vochtigheidssensor - Ajarnpa

Video: Arduino temperatuur- en vochtigheidssensor - Ajarnpa

Video: Arduino temperatuur- en vochtigheidssensor - Ajarnpa
Video: LM35 with Arduino | Temperature Sensor | SdevElectronics 2024, November
Anonim

Door ThundertronicsVolg meer door de auteur:

PIC16F877A Analoog naar digitaal converter (ADC)
PIC16F877A Analoog naar digitaal converter (ADC)
PIC16F877A Analoog naar digitaal converter (ADC)
PIC16F877A Analoog naar digitaal converter (ADC)
LCD-interface met PIC16F877A-microcontroller
LCD-interface met PIC16F877A-microcontroller
LCD-interface met PIC16F877A-microcontroller
LCD-interface met PIC16F877A-microcontroller
DIY modulaire bankvoeding
DIY modulaire bankvoeding
DIY modulaire bankvoeding
DIY modulaire bankvoeding

In deze tutorial ga ik het maken van een temperatuur- en vochtigheidssensor uitleggen met behulp van Arduino pro mini-bord met DHT11 (of DHT22) sensor.

Stap 1: Bekijk de video

Het is belangrijk om eerst de video te zien voordat u naar de volgende stap gaat. De video legt alles uit en laat zien hoe het werkt. In dit bericht zal ik echter meer technische gegevens en details schrijven.

www.youtube.com/watch?v=56LKl7Xd770

Stap 2: Benodigde onderdelen

De onderdelen die nodig zijn voor dit project zijn:

1- Arduino pro mini-bord (of een Arduino).

2- DHT11 temperatuur- en vochtigheidssensor (of DHT22).

3-16x2 LCD-scherm.

4- Een behuizing naar keuze, bij voorkeur dezelfde als in de video.

5-10K potentiometer.

6- Schroefklemmen.

7- Weerstanden met verschillende waarden.

8- 9v batterij.

terwijl de benodigde hulpmiddelen zijn:

1-handboor als een Dremil.

2- verschillende bits voor de boor, omdat we gladmakende bits en snijbits zullen gebruiken.

3- helpende handen.

plus, de gebruikelijke elektronische hulpmiddelen zoals multimeter enzovoort.

Stap 3: Schematisch ontwerp

Schematisch ontwerp
Schematisch ontwerp

In dit project heb ik ervoor gekozen om er een PCB voor te maken in plaats van deze zelf te bedraden. Dus ik heb de EasyEDA online tool voor de klus gebruikt, wat een leuke ervaring was.

Dit is de projectpagina op de easyEDA-website:

De uitleg van het schema is als volgt:

1- Ik heb een 6-pins ICSP-adapter gebruikt om de Arduino pro mini te programmeren, omdat er geen aan boord is. het is J2 bij schema.

2- R2 is 100 Ohm en stelt de helderheid van het LCD-scherm in. Kortom, u kunt meer weerstand dan 100R gebruiken als u wilt dat de LCD-achtergrondverlichting zwakker is. Of beter nog, zorg dat een potentiometer fungeert als een variabele serieweerstand.

3- JP1 is slechts een connector met een mooie PCB-voetafdruk. Ik heb nooit een echte terminal geplaatst, maar in plaats daarvan de draden gesoldeerd. Doe wat je wilt.

4- U2 zijn de aansluitklemmen van de batterij. Hier geef ik de voorkeur aan mooie schroefklemmen om een stevige verbinding te krijgen. Je zou de draden kunnen solderen, maar zorg ervoor dat je genoeg soldeer aanbrengt om de verbinding stevig genoeg te maken om schokken te weerstaan.

5- LCD1 is de LCD-component in easyEDA. Het heeft de basisverbinding met Arduino pro mini. Zorg ervoor dat de pinnen hier identiek zijn aan die in de software.

6- RV1 is een 10K-potentiometer om het LCD-contrast in te stellen. Het mag slechts één keer worden gebruikt en wel wanneer u het LCD-scherm voor het eerst van stroom voorziet.

Stap 4: PCB-ontwerp

PCB-ontwerp
PCB-ontwerp
PCB-ontwerp
PCB-ontwerp

Na het afronden van het schematische ontwerp en begrijpen wat alles betekent, is het nu tijd om er een PCB voor te maken.

U moet in EasyEDA op "Convert to PCB" drukken om de PCB in de PCB-editor te maken. Begin vervolgens met het plaatsen van onderdelen en het uitvoeren van routering zoals gewoonlijk. Ik raad echter aan om nooit de auto-router te gebruiken.

Ik heb veel via's gebruikt om van de bovenste naar de onderste laag te gaan, omdat de ruimte zo klein is.

Stap 5: Fabriceer de PCB

Nu is het PCB-ontwerp klaar. We hebben alles gecontroleerd en geen probleem gevonden. We moeten de ontwerpbestanden (de gerbers) naar het PCB-fabricagebedrijf van onze keuze sturen, zodat het het voor ons kan doen.

Mijn favoriete bedrijf is JLCPCB. Ze zijn het beste voor dergelijke projecten en prototyping en ze bieden slechts $ 2 aan prijs voor een volledige 10 stuks van je ontwerp!

Dus nu klikken we op (….) en kiezen voor JLCPCB. We worden doorverwezen naar de JLCPCB-website omdat ze partners zijn van EasyEDA. Vul nu alles in en plaats de bestelling. Nu maar wachten tot de PCB's arriveren.

Het is vermeldenswaard dat JLCPCB niet alleen EasyEDA heeft, maar ook een grote componentenwinkel heeft! Het voordeel hier is dat zowel de PCB-bestelling als de componentenbestelling samen worden verzonden! Ja, u hoeft niet te wachten tot 2 pakketten afzonderlijk aankomen, maar in plaats daarvan worden ze gecombineerd in één pakket. Ik raad het ten zeerste aan om dit te gebruiken.

Stap 6: Montage

We hebben nu alleen de PCB's met alles. Het is tijd om alles in elkaar te zetten.

Eerst moeten we de elektronica volgens schema solderen. Het is een gemakkelijke taak voor dit project.

Na het afronden van het solderen, snijdt u nu de nodige gaten in de plastic behuizing en bevestigt u vervolgens de PCB met andere componenten goed naar binnen met behulp van een heet lijmpistool.

Je moet nu de potentiometer gebruiken om het contrast van het LCD-scherm aan te passen, terwijl je de vereiste weerstandsklep kiest voor de helderheid, ik heb 100R gekozen.

Stap 7: Coderen

Code voor dit project is bij deze stap gevoegd en de uitleg is als volgt:

// voeg de bibliotheekcode toe:#include #include "DHT.h" // stel de DHT-pin in #define DHTPIN 2

Voeg de benodigde bibliotheken toe en definieer pin 2 van Arduino pro mini als de datapin voor de sensor. Zorg ervoor dat u deze bibliotheken installeert als u ze niet hebt.

// initialiseer de bibliotheek met de nummers van de interface-pinnen LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);

Initialiseer nu de LCD-bibliotheek met deze pinnen volgens het schema zelf. Gebruik ook de DHT-bibliotheek en kies DHT11 als de sensor die u wilt gebruiken, dus als u DHT22 heeft, moet u deze wijzigen.

De laatste regel zegt dat we een DHT11-sensor hebben en de datapin bevindt zich op pin "DHTPIN", pin 2 zoals we die eerder hebben gedefinieerd.

void setup() { // stel het aantal kolommen en rijen van het LCD-scherm in: lcd.begin (16, 2); dht.begin(); lcd.setCursor(0, 0); lcd.print("Temperatuur en"); lcd.setCursor(0, 1); lcd.print("vochtigheidssensor"); vertraging (3000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("THUNDERTRONICS"); lcd.setCursor(0, 1); lcd.print("Hossam Moghrabi"); vertraging (3000); }

Nu is het insteltijd! en dit is wat er aan de hand is:

LCD is 16 bij 2 type.

Start de DHT-opdracht om waarden op te halen.

Print "Temperatuur- en vochtigheidssensor" op de 2 regels.

Vertraging 3 seconden.

Duidelijke weergave

Print "THUNDERTRONICS" op de eerste regel en druk vervolgens "Hossam Moghrabi" op de 2e regel.

Vertraging 3 seconden.

^Ik heb dit gedaan als welkomstscherm dat ongeveer 6 seconden duurt voordat de waarden worden weergegeven.

void loop () {// read vochtigheid int h = dht.readHumidity (); // lees temperatuur in c int t = dht.readTemperature (); if (isnan(h) || isnan(t)) { lcd.print("FOUT"); opbrengst; }

Nu bevinden we ons in onze eeuwige lus die zich zal blijven herhalen.

Bewaar vochtigheidsmetingen in de variabele "h" en temperatuurmetingen in de variabele "t".

Vervolgens hebben we een if-statement. Dit is in feite een foutmelding als er een fout is. Laat het staan zonder het te veranderen.

Nu hebben we alle waarden die we nodig hebben.

lcd.setCursor(0, 0); lcd.print("Temp. = "); lcd.print(t); lcd.print(" "); lcd.print((char)223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Vochtigheid = "); lcd.print(h); lcd.print ("%"); // lcd.print ("Hossam Moghrabi"); vertraging (2000);

Ten slotte geven we deze waarden weer op het LCD-scherm. U kunt het veranderen zoals u wilt, omdat het eenvoudigweg waarden afdrukt binnen de variabelen "h" en "t". Een vertraging van 2 seconden instellen is een beetje optioneel, maar je hebt er niet veel baat bij om het sneller te doen, omdat de sensor zelf niet zo snel is en zelfs als dat zo is, veranderen de fysieke waarden nooit zo snel. Dus 2 seconden zijn heel erg snel voor de klus!

Dat is het!

Aanbevolen: