Inhaltsverzeichnis:

Arduino Temperatur- und Feuchtigkeitssensor - Gunook
Arduino Temperatur- und Feuchtigkeitssensor - Gunook

Video: Arduino Temperatur- und Feuchtigkeitssensor - Gunook

Video: Arduino Temperatur- und Feuchtigkeitssensor - Gunook
Video: Der einfache Einstieg in Arduino & Co. 21: Temperatur und Luftfeuchtigkeit 2024, Juli
Anonim

Von ThundertronicsFolgen Sie mehr vom Autor:

PIC16F877A Analog-Digital-Wandler (ADC)
PIC16F877A Analog-Digital-Wandler (ADC)
PIC16F877A Analog-Digital-Wandler (ADC)
PIC16F877A Analog-Digital-Wandler (ADC)
LCD-Schnittstelle mit Mikrocontroller PIC16F877A
LCD-Schnittstelle mit Mikrocontroller PIC16F877A
LCD-Schnittstelle mit Mikrocontroller PIC16F877A
LCD-Schnittstelle mit Mikrocontroller PIC16F877A
DIY modulares Tischnetzteil
DIY modulares Tischnetzteil
DIY modulares Tischnetzteil
DIY modulares Tischnetzteil

In diesem Tutorial werde ich die Herstellung eines Temperatur- und Feuchtigkeitssensors mit einem Arduino Pro Mini Board mit DHT11 (oder DHT22) Sensor erklären.

Schritt 1: Sehen Sie sich das Video an

Es ist wichtig, zuerst das Video zu sehen, bevor Sie mit dem nächsten Schritt fortfahren. Das Video erklärt alles und zeigt, wie es gemacht wird. In diesem Beitrag werde ich jedoch weitere technische Daten und Details schreiben.

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

Schritt 2: Benötigte Teile

Die für dieses Projekt benötigten Teile sind:

1- Arduino Pro Mini-Board (oder ein beliebiges Arduino).

2- DHT11 Temperatur- und Feuchtigkeitssensor (oder DHT22).

3- 16x2 LCD-Anzeige.

4- Ein Gehäuse Ihrer Wahl, vorzugsweise das gleiche wie im Video.

5- 10K Potentiometer.

6- Schraubklemmen.

7- Widerstände mit unterschiedlichen Werten.

8- 9V Batterie.

während die benötigten Werkzeuge sind:

1-Handbohrer wie ein Dremil.

2 verschiedene Bits für den Bohrer, da wir Glättbits und Schneidbits verwenden.

3- helfende Hände.

plus die üblichen elektronischen Werkzeuge wie Multimeter und so weiter.

Schritt 3: Schematischer Entwurf

Schematisches Design
Schematisches Design

In diesem Projekt habe ich mich dafür entschieden, eine Platine dafür zu machen, anstatt sie selbst zu verdrahten. Also habe ich EasyEDA Online-Tool für den Job verwendet, was eine schöne Erfahrung war.

Dies ist die Projektseite auf der easyEDA-Website:

Die Erklärung des Schaltplans ist wie folgt:

1- Ich habe einen 6-poligen ICSP-Adapter verwendet, um den Arduino pro mini zu programmieren, da er nicht mit an Bord ist. es ist J2 im Schaltplan.

2- R2 ist 100 Ohm und stellt die Helligkeit des LCD ein. Grundsätzlich können Sie einen höheren Widerstand als 100R verwenden, wenn die LCD-Hintergrundbeleuchtung dunkler sein soll. Oder noch besser, besorgen Sie sich ein Potentiometer, das als variabler Serienwiderstand fungiert.

3- JP1 ist nur ein Steckverbinder mit einem schönen PCB-Footprint. Ich habe nie ein tatsächliches Terminal gesetzt, sondern stattdessen die Drähte gelötet. Mach, wie es dir gefällt.

4- U2 sind die Batterieanschlussklemmen. Hier bevorzuge ich eine schöne Schraubklemme um eine feste Verbindung zu bekommen. Sie könnten die Drähte löten, aber stellen Sie sicher, dass Sie genug Lötmittel aufbringen, um die Verbindung fest genug zu machen, um Erschütterungen zu widerstehen.

5- LCD1 ist die LCD-Komponente in easyEDA. Es hat die grundlegende Verbindung zu Arduino pro mini. Stellen Sie sicher, dass die Pins hier mit denen in der Software identisch sind.

6- RV1 ist ein 10K-Potentiometer zum Einstellen des LCD-Kontrasts. Es sollte nur einmal verwendet werden, und zwar beim ersten Einschalten des LCD.

Schritt 4: PCB-Design

PCB-Design
PCB-Design
PCB-Design
PCB-Design

Nachdem Sie das Schaltplandesign abgeschlossen und verstanden haben, was alles bedeutet, ist es jetzt an der Zeit, eine Leiterplatte dafür zu erstellen.

Sie sollten in EasyEDA auf "In PCB konvertieren" klicken, um die PCB im PCB-Editor zu erstellen. Beginnen Sie dann mit dem Platzieren von Teilen und dem Routing wie gewohnt. Ich schlage jedoch vor, niemals den Auto-Router zu verwenden.

Ich habe viele Vias verwendet, um von der oberen zur unteren Ebene zu gelangen, da der Platz so klein ist.

Schritt 5: Herstellen der Leiterplatte

Nun ist das PCB-Design fertig. Wir haben alles überprüft und kein Problem gefunden. Wir müssen die Designdateien (die Gerber) an das PCB-Fertigungsunternehmen unserer Wahl senden, damit es dies für uns erledigen kann.

Mein bevorzugtes Unternehmen ist JLCPCB. Sie sind die besten für solche Projekte und das Prototyping und bieten nur 2 $ Preis für ganze 10 Stück Ihres Designs!

Jetzt klicken wir also auf (….) und wählen JLCPCB. Wir werden zur JLCPCB-Website weitergeleitet, da sie Partner von EasyEDA sind. Jetzt alles ausfüllen und bestellen. Jetzt warten Sie einfach, bis die Leiterplatten ankommen.

Es ist erwähnenswert, dass mit JLCPCB nicht nur EasyEDA verbunden ist, sondern auch ein großes Komponentenlager! Der Vorteil hierbei ist, dass sowohl die Leiterplattenbestellung als auch die Komponentenbestellung zusammen versendet werden! Ja, Sie müssen nicht warten, bis 2 Pakete separat ankommen, sondern sie werden in einem Paket kombiniert. Ich empfehle dringend, dies zu verwenden.

Schritt 6: Montage

Wir haben jetzt die Leiterplatten mit allem allein. Es ist Zeit, alles zusammenzubauen.

Zuerst müssen wir die Elektronik nach Schaltplan verlöten. Es ist eine leichte Aufgabe für dieses Projekt.

Nach dem Löten schneiden Sie nun die notwendigen Löcher in das Kunststoffgehäuse und fixieren dann die Platine mit anderen Komponenten mit einer Heißklebepistole gut innen.

Sie sollten nun mit dem Potentiometer den Kontrast des LCD einstellen, während Sie das erforderliche Widerstandsventil für die Helligkeit auswählen, ich habe 100R gewählt.

Schritt 7: Code

Code für dieses Projekt ist diesem Schritt beigefügt und die Erklärung lautet wie folgt:

// füge den Bibliothekscode ein: #include #include "DHT.h" // setze den DHT-Pin #define DHTPIN 2

Fügen Sie die erforderlichen Bibliotheken hinzu und definieren Sie Pin 2 von Arduino pro mini als Datenpin für den Sensor. Stellen Sie sicher, dass Sie diese Bibliotheken installieren, wenn Sie sie nicht haben.

// die Bibliothek mit den Nummern der Schnittstellenpins initialisieren LiquidCrystal lcd(9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);

Initialisieren Sie nun die LCD-Bibliothek mit diesen Pins gemäß dem Schaltplan selbst. Verwenden Sie auch die DHT-Bibliothek und wählen Sie DHT11 als zu verwendenden Sensor. Wenn Sie also DHT22 haben, sollten Sie es ändern.

Die letzte Zeile besagt, dass wir einen DHT11-Sensor haben und sein Daten-Pin an Pin "DHTPIN" liegt, der Pin 2 ist, wie wir ihn zuvor definiert haben.

Void setup () {// die Anzahl der Spalten und Zeilen des LCD einrichten: lcd.begin (16, 2); dht.begin(); lcd.setCursor(0, 0); lcd.print("Temperatur und"); lcd.setCursor(0, 1); lcd.print ("Feuchtigkeitssensor"); Verzögerung (3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("THUNDERTRONICS"); lcd.setCursor(0, 1); lcd.print("Hossam Moghrabi"); Verzögerung (3000); }

Jetzt ist Aufbauzeit! und hier ist was los:

LCD ist 16 mal 2 Typ.

Starten Sie den DHT-Befehl, um Werte abzurufen.

Drucken Sie "Temperatur- und Feuchtigkeitssensor" auf die 2 Zeilen.

3 Sekunden verzögern.

Übersichtliches Display

Drucken Sie "THUNDERTRONICS" in der ersten Zeile und dann "Hossam Moghrabi" in der zweiten Zeile.

3 Sekunden verzögern.

^Ich habe dies als Begrüßungsbildschirm getan, der ungefähr 6 Sekunden dauert, bevor Werte angezeigt werden.

Void Schleife () {// Luftfeuchtigkeit lesen Int h = dht.readHumidity (); // Temperatur in c lesen int t = dht.readTemperature (); if (isnan(h) || isnan(t)) { lcd.print("ERROR"); Rückkehr; }

Jetzt befinden wir uns in unserer ewigen Schleife, die sich ständig wiederholen wird.

Speichern Sie die Feuchtigkeitsmesswerte in der Variablen „h“und die Temperaturmesswerte in der Variablen „t“.

Als nächstes haben wir eine if-Anweisung. Dies gibt im Grunde eine Fehlermeldung zurück, wenn ein Fehler auftritt. Lassen Sie es, ohne es zu ändern.

Jetzt haben wir alle Werte, die wir brauchen.

lcd.setCursor(0, 0); lcd.print("Temp. = "); lcd.print (t); lcd.print(" "); lcd.print ((Zeichen)223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Luftfeuchtigkeit = "); lcd.print (h); lcd.print (" %"); // lcd.print("Hossam Moghrabi"); Verzögerung (2000);

Schließlich zeigen wir diese Werte auf dem LCD-Display an. Sie können es nach Belieben ändern, da es einfach Werte in den Variablen "h" und "t" ausgibt. Das Setzen einer Verzögerung von 2 Sekunden ist irgendwie optional, aber Sie werden nicht viel davon profitieren, es schneller zu machen, da der Sensor selbst nicht so schnell ist und selbst wenn dies der Fall ist, ändern sich die physikalischen Werte nie so schnell. 2 Sekunden sind also sehr sehr schnell für den Job!

Das ist es!

Empfohlen: