Inhaltsverzeichnis:

Automatisierter Blumentopf - Little Garden - Gunook
Automatisierter Blumentopf - Little Garden - Gunook

Video: Automatisierter Blumentopf - Little Garden - Gunook

Video: Automatisierter Blumentopf - Little Garden - Gunook
Video: 5 Best Indoor Smart Planters and Garden Systems 2022 2024, Juli
Anonim
Automatischer Blumentopf - Little Garden
Automatischer Blumentopf - Little Garden

Ich studiere Multimedia und Kommunikationstechnologie an der Howest Kortrijk. Für unseren abschließenden Auftrag mussten wir ein IoT-Projekt unserer Wahl entwickeln.

Als ich mich nach Ideen umschaute, beschloss ich, etwas Nützliches für meine Mutter zu machen, die gerne Pflanzen anbaut und begann, an einem automatisierten Pflanzentopf zu arbeiten.

Die Hauptaufgaben für diesen automatisierten Blumentopf Little Garden sind:

  • Messen Sie die

    • Temperatur
    • Lichtintensität
    • Feuchtigkeit
    • Bodenfeuchtigkeit

Speichern Sie die Messungen in einer Datenbank

Verbessern Sie die Bedingungen für das Pflanzenwachstum, wenn ein bestimmter Wert zu niedrig ist

Lassen Sie das Gerät über eine Website überwachen und verwalten

Nicht jeder Schritt muss bis ins Mark befolgt werden. Vieles, was passiert, kann Ihre persönliche Präferenz sein oder verbessert werden. Dieser Build wurde so erstellt, dass Teile später wiederhergestellt werden können. Vielleicht möchten Sie Ihre Iteration anders angehen, um sie dauerhafter zu machen

Schritt 1: Zubehör

Lieferungen
Lieferungen
Lieferungen
Lieferungen
Lieferungen
Lieferungen

Die meisten Materialien für dieses Projekt sind nicht sehr schwer zu beschaffen, obwohl ich in meinem Fall mit vielen recycelten Materialien gearbeitet habe. Ich musste auch sicherstellen, dass ich einige Materialien danach wiedergewinnen konnte.

Kernkomponenten:

  • Raspberry Pi 4 Modell B
  • Raspberry Pi Netzteil
  • Raspberry Pi T-Schuster
  • 16 GB Micro-SD-Karte
  • Steckbrett-Netzteil mit 3.3V und 5V
  • Steckbrett
  • 12V Netzteil

Sensoren:

  • DHT11: Feuchtigkeits- und Temperatursensor
  • BH1750: Lichtintensitätssensor
  • Bodenfeuchtesensor
  • MCP3008

Antriebskomponenten:

  • 220V Wasserpumpe
  • 12V LED-Streifen
  • Relaismodul Velleman
  • TIPP 50: NPN-Transistor
  • 16X2 LCD-Modul-Display
  • PCF8574a

Widerstände:

  • 3 x 330 Ohm Widerstände
  • 1 x 5k Ohm Widerstand
  • 2 x 10k Ohm Widerstände
  • 1 x 1k Ohm Widerstand
  • 1 x 10k Potentio-Widerstand

Materialien:

  • Fertiggewächshaus/Pflanzentopf
  • Anschlussdose
  • Wasserflasche aus Plastik
  • Wirbel
  • Überbrückungsdrähte + normales Kabel
  • Schrauben
  • Lötzinn + Schrumpfschlauch
  • Doppelseitiges Entenband
  • Farbe

Werkzeuge:

  • Klebepistole
  • Bohren
  • Sägeblatt
  • Lötkolben
  • Teppichmesser
  • Pinsel

Das Schöne an diesem Projekt ist, dass es erweitert oder vereinfacht werden kann, indem Komponenten hinzugefügt/entfernt und der Code leicht optimiert wird. Wenn Sie beispielsweise die 220-V-Pumpe durch eine 12-V-Pumpe ersetzen, können Sie ein Netzteil vom Gerät entfernen.

Schritt 2: Fritzing-Schema

Fritzing-Schema
Fritzing-Schema
Fritzing-Schema
Fritzing-Schema

Das Steckbrett und die elektrischen Schemata für das Gerät sind oben gezeigt. Hier sehen Sie, wie alle Komponenten miteinander verbunden sind.

Eine allgemeine Erklärung zur Funktionsweise der Komponenten:

  • Der DHT11 misst die Luftfeuchtigkeit in % und die Temperatur in °C. Die Kommunikation damit wird über einen I2C-Bus abgewickelt.
  • Der BH1750 misst die Lichtstärke in Lux. Die Kommunikation wird über einen I2C-Bus abgewickelt
  • Der Bodenfeuchtesensor erzeugt ein digitales Signal, das vom MCP3008 in ein lesbares digitales Signal für den Raspberry Pi umgewandelt wird
  • Das 16x2 LCD-Modul zeigt nacheinander die IP-Adressen vom Pi an. Es ist mit einem PCF8574a verbunden, der ein Signal vom Raspberry Pi empfängt, das es in eine Reihe von Signalen für die Bit-Pins des Displays umwandelt. Die E- und RS-Pins des LCD sind direkt mit dem Pi verbunden. Der Potenio-Widerstand bestimmt die Helligkeit des Bildschirms.
  • Die Wasserpumpe ist an ein Relais angeschlossen, das zwischen ihr und ihrer 220-V-Stromversorgung / Steckdose liegt. Der Raspberry Pi kann ein Signal an das Relais senden, um den Stromkreis zu schließen und die Pumpe einzuschalten.
  • Der LED-Streifen wird an die 12-V-Stromversorgung und den TIP 50 (NPN-Transistor) angeschlossen, der den elektrischen Strom umschaltet. Der 1k Ohm Widerstand dient dazu, die vom Raspberry Pi aufgenommene Leistung zu begrenzen, sonst würde er extra knusprig gebraten.

Schritt 3: Bereiten Sie den Raspberry Pi vor

Bereiten Sie den Raspberry Pi vor
Bereiten Sie den Raspberry Pi vor

Wenn Sie noch keines haben, müssen Sie eines der Raspberry Pi OS-Images auf die SD-Karte legen. Ich empfehle die Verwendung von Lite nicht, da mir dies am Anfang Probleme bereitet hat. Danach müssen Sie sicherstellen, dass Ihr Pi auf dem neuesten Stand ist, indem Sie die folgenden Befehle verwenden, während der Pi mit dem Internet verbunden ist:

  1. sudo apt-get update
  2. sudo apt-get upgrade

Danach können Sie die Pakete aktivieren oder installieren, damit das Projekt funktioniert, entweder über raspi-config oder Befehle.

  • SPI
  • I2C
  • MySQL: nächster Schritt
  • SocketIO: pip installflakon-socketio

Nach der Einrichtung können Sie die notwendigen Dateien hinzufügen, die in HTML, CSS, Javascript und Python geschrieben sind. Mein gesamter Code ist in meinem Github-Repository zu finden.

Schritt 4: Datenbankmodell - MySQL

Datenbankmodell - MySQL
Datenbankmodell - MySQL

Oben sehen Sie das ERD-Diagramm, das von MariaDB gehostet wird. Ich empfehle, dieser MariaDB-Installationsanleitung zu folgen, nicht nur um MariaDB zu installieren, sondern auch um sicherzustellen, dass Ihr Pi geschützt ist.

Für Leute, die es verstehen möchten, funktioniert die Datenbank wie folgt:

Die Messwerte und Betätiger-Toggles werden als Zeilen in der Metingen-Tabelle gespeichert.

  • metingId = ID der Mess-/Umschaltzeile
  • deviceId = ID des Geräts, das für diese Zeile in der Tabelle verantwortlich ist
  • waarde = Wert der Sensormessung oder Aktorumschaltung

    • Sensor: Wert der Messung in den entsprechenden Einheiten
    • Aktoren: 0 = AUS und 1 = EIN
  • commentaar = Kommentare, die verwendet werden, um zusätzliche Informationen hinzuzufügen, wie z. B. Fehler
  • datum = Datum und Uhrzeit der Messung/Umschaltung

Die Einstellungen für das Gerät werden in den Einstellungen gespeichert.

  • SettingId = ID dieser Zeile und der Einstellungswert
  • deviceID = ID des entsprechenden Geräts/Sensors
  • waarde = Wert der Einstellung
  • type = Typ der Einstellung, ist das Maximum oder Minimum?

Zu guter Letzt enthält die Tabelle Geräte Informationen zu den Sensoren und Aktoren.

  • deviceId = ID des Geräts in dieser Tabelle
  • naam = Name des Geräts/der Komponente
  • merk = Marke
  • prijs = Preis der Komponente
  • beschrijving = Zusammenfassung der Komponente
  • eenheid = Einheit der Messwerte
  • typeDevice = gibt an, ob die Komponente ein Sensor oder Aktor ist

Schritt 5: Frontend: Einrichten des Webservers

Frontend: Einrichten des Webservers
Frontend: Einrichten des Webservers

Der Pi erfordert, dass Sie den Apache-Webserver installieren, um den Webserver für dieses Gerät auszuführen. Dies kann mit dem folgenden Befehl erfolgen:

sudo apt-get installiere apache2.

Sobald dies erledigt ist, können Sie zum Ordner navigieren: /var/www/html. Hier müssen Sie den gesamten Code des Frontends platzieren. Anschließend können Sie auf die Website zugreifen, indem Sie zur IP-Adresse navigieren.

Schritt 6: Backend

Um das Backend auszuführen, müssen Sie die Datei app.py entweder manuell ausführen oder einen Dienst dafür auf dem Pi erstellen, damit es automatisch startet.

Wie Sie vielleicht bemerken, gibt es einige Dateien. Ich habe den Code so weit wie möglich getrennt, um eine klare Übersicht und Organisation des Codes zu haben.

Eine kurze Erklärung:

app.py: Die Hauptdatei, in der die Datenbank, der Hardwarecode und der Backend-Code zusammengeführt werden

config.py: Die Konfigurationsdatei für die databaseRepositories

Repositories: Für den Zugriff auf das Datenrepository

  • Helfer

    • devices_id: Klassen zur Identifizierung der Geräteinformationen in der Datenbank
    • lcd: zum Ausführen von PCF und LCD
    • Aktoren: Klassen für den Betrieb der Aktoren
    • Sensoren: Klassen zum Ausführen der Sensoren

Schritt 7: Platzieren des LED-Streifens

Platzieren des LED-Streifens
Platzieren des LED-Streifens

Ich schneide ein Stück des LED-Streifens und klebte es auf die Oberseite der Gewächshausbox. Der von mir verwendete Streifen konnte an mehreren Stellen geschnitten und wieder verbunden werden, sodass Sie mehrere Streifen platzieren und anschließend wieder durch Drähte verbinden können, um mehr Platz zu beleuchten.

Schritt 8: Platzieren der Rohre

Platzieren der Rohre
Platzieren der Rohre

Die Röhren könnten auf verschiedene Weise platziert werden, aber in meinem Fall habe ich sie seitlich am Boden befestigt, um sie so weit wie möglich von der anderen Elektronik entfernt zu halten und das Wasser einfach in den Schmutz fließen zu lassen.

Schritt 9: Platzieren des LCD

Aufstellen des LCD
Aufstellen des LCD

Ich habe mit einem Sägeblatt ein Loch in den Deckel der Anschlussdose geschnitten und eine Öffnung geschaffen, die groß genug ist, damit das Display durchkommt, aber klein genug, damit die Platine dahinter bleibt. Anschließend wurde es mit Hilfe von Schrägen am Deckel befestigt.

Das LCD zeigt die IP-Adressen des Raspberry Pi an, sodass Sie wissen, mit welcher Adresse Sie auf der Website surfen können.

Schritt 10: Platzieren der Sensoren und Anschließen des LED-Streifens

Platzieren der Sensoren und Anschließen des LED-Streifens
Platzieren der Sensoren und Anschließen des LED-Streifens
Platzieren der Sensoren und Anschließen des LED-Streifens
Platzieren der Sensoren und Anschließen des LED-Streifens

Unter Verwendung der Fritzing-Schemata lötete ich Verbindungen zwischen den Drähten und platzierte die Widerstände in den Drähten, wobei ich Schrumpfschläuche verwendete, um sie zu isolieren.

Löcher wurden in die Seiten des Gewächshausdeckels und -bodens geschnitten, um die Drehgelenke zu befestigen, durch die ich die Drähte für die Sensoren und den LED-Streifen zog.

Ich habe die Drähte nach Funktion gruppiert. Die Spannung der Drähte und Schrumpfschläuche selbst hielt die Sensoren hoch. Ich musste nur Kleber an den Drähten für den DHT11 verwenden, da sich dieser weiter verlängerte.

Schritt 11: Verdrahten des Pi

Verdrahten des Pi
Verdrahten des Pi
Verdrahten des Pi
Verdrahten des Pi
Verdrahten des Pi
Verdrahten des Pi

Ich schneide Löcher in die Seite der Anschlussdose, damit die Drähte später durchkommen.

Danach platzierte ich das Steckbrett (mit dem T-Schuster, PCF8574a, MCP3008, einstellbarem Widerstand und TIP50), Relais und Raspberry Pi auf der Unterseite der Anschlussdose, die mit doppelseitigem Klebeband bedeckt war. Das Netzteil passte nicht auf das Steckbrett, also musste ich es auf die Seite legen und mit Überbrückungsdrähten an das Steckbrett anschließen.

Schließlich zog ich die Adapter-, Sensor- und Aktordrähte durch die Löcher, die die Drähte mit dem Steckbrett, dem Raspberry Pi und anderen Komponenten verbanden. Der Draht der Pumpe wurde aufgeschnitten, damit ich die Enden in das Relais legen konnte, damit es als Schalter verwendet werden konnte.

Schritt 12: Einen Behälter für Wasser herstellen

Einen Behälter für Wasser herstellen
Einen Behälter für Wasser herstellen

Ich habe einen Wasserbehälter aus einer 1-l-Kunststoff-Wasserflasche hergestellt, indem ich die Oberseite mit einem Cuttermesser abgeschnitten und für ein besseres Aussehen bemalt habe. Die Wasserpumpe wurde dann innen platziert. Aufgrund der Regel der kommunizierenden Gefäße könnte das Wasser möglicherweise von selbst durch die Rohre fließen, aber das Hochhalten des Rohrs behebt das Problem.

Schritt 13: Endergebnis

Endergebnis
Endergebnis
Endergebnis
Endergebnis

Der Moment, auf den Sie gewartet haben. Jetzt können Sie den Schmutz und die Samen in die Gewächshausbox geben und das Gerät übernehmen lassen. Sie können den Status des Geräts von der Website aus überwachen und die optimalen Werte für die Licht- und Bodenbedingungen einstellen.

Ich empfehle, die Erde zuerst manuell zu gießen, da etwas Schmutz anfangs ziemlich trocken sein kann. Einige Pumpen scheinen auch ziemlich langsam zu gießen, aber Sie müssen sehr vorsichtig sein, da sie sich schneller füllen als erwartet. Eine Sättigung von über 80 % kann den Boden sehr matschig machen. Und stellen Sie sicher, dass der Bodenfeuchtigkeitssensor tief genug ist.

Empfohlen: