- Erforderliche Komponenten für das Arduino Plant Watering System Project
- Schaltungserklärung:
- Arbeitserklärung:
- Programmiererklärung:
Wenn wir für ein paar Tage aus der Stadt gingen, machten wir uns immer Sorgen um unsere Pflanzen, da sie regelmäßig Wasser benötigen. Hier stellen wir ein automatisches Pflanzenbewässerungssystem mit Arduino her, das Ihre Pflanzen automatisch mit Wasser versorgt und Sie auf dem Laufenden hält, indem Sie eine Nachricht an Ihr Handy senden.
In dieser Anlage Bewässerungssystem, Bodenfeuchtesensor überprüft der Feuchtigkeitsgehalt im Boden, und wenn Feuchtigkeit niedrig ist, dann schaltet Arduino auf einer Wasserpumpe Wasser in die Anlage zur Verfügung zu stellen. Die Wasserpumpe schaltet sich automatisch aus, wenn das System genügend Feuchtigkeit im Boden findet. Immer wenn das System die Pumpe ein- oder ausschaltet, wird über das GSM-Modul eine Nachricht an den Benutzer gesendet, in der der Status der Wasserpumpe und die Bodenfeuchtigkeit aktualisiert werden. Dieses System ist sehr nützlich in Farmen, Gärten, Privathaushalten usw. Dieses System ist vollständig automatisiert und es sind keine menschlichen Eingriffe erforderlich.
Erforderliche Komponenten für das Arduino Plant Watering System Project
- Arduino Uno
- GSM-Modul
- Transistor BC547 (2)
- Kabel anschließen
- 16x2 LCD (optional)
- Stromversorgung 12V 1A
- Relais 12v
- Wasserkühlerpumpe
- Bodenfeuchtesensor
- Widerstände (1k, 10k)
- Variabler Widerstand (10k, 100k)
- Anschlussklemme
- Spannungsregler IC LM317
GSM-Modul:
Hier haben wir das TTL SIM800 GSM-Modul verwendet. Das SIM800 ist ein komplettes Quad-Band-GSM / GPRS-Modul, das vom Kunden oder Bastler problemlos eingebettet werden kann. Das SIM900 GSM-Modul bietet eine Schnittstelle nach Industriestandard. Der SIM800 bietet GSM / GPRS 850/900/1800 / 1900MHz Leistung für Sprache, SMS, Daten mit geringem Stromverbrauch. Das Design dieses SIM800 GSM-Moduls ist schlank und kompakt. Es ist leicht auf dem Markt oder online bei eBay erhältlich.
- Quadband GSM / GPRS-Modul in kleiner Größe.
- GPRS aktiviert
- TTL-Ausgabe
Erfahren Sie hier mehr über GSM-Module und AT-Befehle. Überprüfen Sie auch unsere verschiedenen Projekte mit GSM und Arduino, um deren Schnittstelle richtig zu verstehen.
Schaltungserklärung:
In diesem Pflanzenbewässerungssystem haben wir eine hausgemachte Bodenfeuchtesensor-Sonde verwendet, um den Bodenfeuchtigkeitsgehalt zu erfassen. Zur Herstellung der Sonde haben wir eine kupferkaschierte Platte gemäß dem unten gezeigten Bild geschnitten und geätzt. Eine Seite der Sonde ist direkt mit Vcc verbunden und der andere Sondenanschluss geht zur Basis des BC547-Transistors. Ein Potentiometer ist an die Basis des Transistors angeschlossen, um die Empfindlichkeit des Sensors einzustellen.
Arduino wird zur Steuerung des gesamten Prozesses dieses automatischen Pflanzenbewässerungssystems verwendet. Der Ausgang der Bodensensorschaltung ist direkt mit dem digitalen Pin D7 von Arduino verbunden. Am Sensorstromkreis wird eine LED verwendet. Der EIN-Zustand dieser LED zeigt das Vorhandensein von Feuchtigkeit im Boden an und der AUS-Zustand zeigt das Fehlen von Feuchtigkeit im Boden an.
Das GSM-Modul wird zum Senden von SMS an den Benutzer verwendet. Hier haben wir das TTL SIM800 GSM-Modul verwendet, das die TTL-Logik direkt gibt und nimmt (der Benutzer kann jedes GSM-Modul verwenden). Ein Spannungsregler LM317 versorgt das SIM800 GSM-Modul mit Strom. Der LM317 reagiert sehr empfindlich auf die Nennspannung und es wird empfohlen, das Datenblatt vor der Verwendung zu lesen. Die Betriebsspannung beträgt 3,8 V bis 4,2 V (bitte bevorzugen Sie 3,8 V für den Betrieb). Nachfolgend finden Sie das Schaltbild der Stromversorgung des TTL sim800 GSM-Moduls:
Wenn der Benutzer das SIM900 TTL-Modul verwenden möchte, sollte er 5 V verwenden. Wenn der Benutzer das SIM900-Modul verwenden möchte, legen Sie 12 V im DC-Buchsensteckplatz der Karte an.
Ein 12-V-Relais dient zur Steuerung der kleinen 220-VAC-Wasserpumpe. Das Relais wird von einem BC547-Transistor angesteuert, der weiter mit dem digitalen Pin 11 von Arduino verbunden ist.
Ein optionales LCD wird auch zur Anzeige von Status und Meldungen verwendet. Die Steuerpins von LCD, RS und EN sind mit Pin 14 und 15 von Arduino verbunden, und die Datenpins von LCD D4-D7 sind direkt mit Pin 16, 17, 18 und 19 von Arduino verbunden. LCD wird im 4-Bit-Modus verwendet und von der in Arduino integrierten LCD-Bibliothek gesteuert.
Unten sehen Sie den Schaltplan dieses Bewässerungssystems mit Arduino- und Bodenfeuchtesensor:
Arbeitserklärung:
Die Arbeit mit diesem automatischen Pflanzenbewässerungssystem ist recht einfach. Erstens handelt es sich um ein vollständig automatisiertes System, für dessen Steuerung kein Personal erforderlich ist. Arduino wird zur Steuerung des gesamten Prozesses verwendet und das GSM-Modul wird zum Senden von Warnmeldungen an den Benutzer auf seinem Mobiltelefon verwendet.
Wenn im Boden Feuchtigkeit vorhanden ist, besteht eine Leitung zwischen den beiden Sonden des Bodenfeuchtesensors. Aufgrund dieser Leitung bleibt der Transistor Q2 im ausgelösten / eingeschalteten Zustand und der Arduino-Pin D7 bleibt niedrig. Wenn Arduino bei D7 das LOW-Signal liest, sendet es eine SMS an den Benutzer über „Bodenfeuchtigkeit ist normal. Motor ausgeschaltet “und die Wasserpumpe bleibt ausgeschaltet.
Befindet sich nun keine Feuchtigkeit im Boden, wird der Transistor Q2 ausgeschaltet und Pin D7 wird hoch. Dann liest Arduino den Pin D7 und schaltet den Wassermotor ein und sendet dem Benutzer eine Nachricht über „Niedrige Bodenfeuchtigkeit erkannt. Motor eingeschaltet “. Der Motor schaltet sich automatisch aus, wenn sich ausreichend Feuchtigkeit im Boden befindet. Überprüfen Sie das Demonstrationsvideo und den Code (am Ende angegeben), um den Projektarbeitsprozess besser zu verstehen.
Programmiererklärung:
Der Code für dieses Programm ist leicht verständlich. Zunächst haben wir die SoftwareSerial- Bibliothek hinzugefügt , um Pin 2 und 3 als Rx & Tx zu erstellen, sowie LiquidCrystal für LCD. Dann haben wir einige Variablen für Motor, Bodenfeuchtesensor, LED usw. definiert.
#einschließen
In der Funktion void setup () wird dann die serielle Kommunikation mit 9600 Bit / s initialisiert und den verschiedenen Pins Anweisungen gegeben. Die Funktion gsmInit wird aufgerufen, um das GSM-Modul zu initialisieren.
Serial1.begin (9600); Serial.begin (9600); PinMode (LED, OUTPUT); PinMode (Motor, OUTPUT); pinMode (Sensor, INPUT_PULLUP); lcd.print ("Wasserbewässerung"); lcd.setCursor (4,1); Verzögerung (2000); lcd.clear (); lcd.print ("Circuit Digest"); lcd.setCursor (0,1); lcd.print ("Begrüßt Sie"); Verzögerung (2000); gsmInit ();
Anschließend wird der Sensor in der Funktion void loop () gelesen, und der Motor wird je nach Sensorstatus ein- oder ausgeschaltet. Außerdem wird mit der Funktion sendSMS eine SMS an den Benutzer gesendet . Überprüfen Sie die verschiedenen Funktionen im vollständigen Code am Ende.
void loop () {lcd.setCursor (0,0); lcd.print ("Automatischer Modus"); if (digitalRead (Sensor) == 1 && flag == 0) {delay (1000); if (digitalRead (Sensor) == 1) {digitalWrite (LED, HIGH); sendSMS ("Niedrige Bodenfeuchtigkeit erkannt. Motor eingeschaltet"); lcd.begin (16,2); lcd.setCursor (0,1);…………………
Hier ist die Funktion gsmInit () wichtig, und Benutzer finden es meistens schwierig, sie richtig einzustellen. Es wird verwendet, um das GSM-Modul zu initialisieren, wobei zuerst das GSM-Modul überprüft wird, ob es verbunden ist oder nicht, indem der Befehl 'AT' an das GSM-Modul gesendet wird. Wenn die Antwort OK empfangen wird, bedeutet dies, dass sie bereit ist. Das System sucht so lange nach dem Modul, bis es bereit ist oder bis 'OK' empfangen wird. Dann wird ECHO durch Senden des ATE0-Befehls ausgeschaltet, andernfalls gibt das GSM-Modul alle Befehle wieder. Anschließend wird die Netzwerkverfügbarkeit über die 'AT + CPIN?' Befehl: Wenn die eingelegte Karte eine SIM-Karte ist und eine PIN vorhanden ist, wird die Antwort BEREIT angezeigt. Dies wird auch wiederholt überprüft, bis das Netzwerk gefunden wurde. Dies kann durch das folgende Video klar verstanden werden.
void gsmInit () {lcd.clear (); lcd.print ("Finding Module.."); boolean at_flag = 1; while (at_flag) {Serial1.println ("AT"); while (Serial1.available ()> 0) {if (Serial1.find ("OK")) at_flag = 0; } delay (1000); }……………….
Mit diesem automatischen Bewässerungssystem müssen Sie sich also keine Sorgen um Ihre Pflanzen machen, wenn Sie nicht zu Hause sind. Es kann weiter verbessert werden, um über das Internet betrieben und überwacht zu werden.