Inhaltsverzeichnis:

IDC2018IOT Connected Pet Food, Wasser und Monitorsystem - Gunook
IDC2018IOT Connected Pet Food, Wasser und Monitorsystem - Gunook

Video: IDC2018IOT Connected Pet Food, Wasser und Monitorsystem - Gunook

Video: IDC2018IOT Connected Pet Food, Wasser und Monitorsystem - Gunook
Video: The Internet of Things by James Whittaker of Microsoft 2024, Juli
Anonim
Image
Image
IDC2018IOT Connected Pet Food, Wasser und Monitorsystem
IDC2018IOT Connected Pet Food, Wasser und Monitorsystem

Einführung

Egal, ob Sie ein Student unter Druck sind, ein hart arbeitender Mensch oder einfach nur für mehr als ein paar Stunden am Tag von zu Hause weg sind. Als fürsorgliche Tierbesitzer möchten wir sicherstellen, dass unsere Liebsten gesund bleiben, gefüttert und natürlich NICHT auf dem Sofa liegen (du Bastard!). Es ist an der Zeit, nicht mehr um Gefälligkeiten zu bitten oder sogar für solche Dienste zu bezahlen.

Mit diesem coolen Projekt möchten wir Ihnen die Möglichkeit geben, es selbst zu tun (ich habe gehört, dass es jetzt eine Sache ist). Wir werden eine Lösung entwickeln, um unsere Haustiere besser zu überwachen und sogar im Büro, in der Schule oder einfach nur mit unseren Freunden oder Lebensgefährten Maßnahmen zu ergreifen.

Dieses System ermöglicht es Ihnen, Ihr Haustier aus der Ferne zu füttern, während Sie die Futtermenge kontrollieren, die Sie aus dem Behälter gießen. Füllen Sie den Wassernapf, wenn er leer ist. Darüber hinaus können wir jetzt mit einem einfachen Kameramodul den Wasserstand des Napfes in Echtzeit überwachen, den Inhalt des Futterbehälters messen und vor allem das Tier live beobachten.

Über uns

Tomer Maimon, Gilad Ram und Alon Shprung. Drei leidenschaftliche Informatikstudenten des IDC Herzeliya. Dies ist unser erstes Instructables-Projekt im Rahmen eines IoT-Workshops - wir hoffen, dass Sie das Bauen interessant und unterhaltsam finden!

Schritt 1: Verständnis der Architektur:

Die Architektur verstehen
Die Architektur verstehen
Die Architektur verstehen
Die Architektur verstehen

Wir können dieses System in zwei Hauptteile unterteilen:

  1. Eingehende Datenkanäle:

    • Wassersensor - Abtasten des Wasserstands in der Haustierschüssel, Daten werden von der Node-MCU-Einheit an den Blynk-Server übertragen und schließlich über das Haustier-Dashboard angezeigt.
    • Sonarsensor - Abtastung des Inhalts des Futterbehälters, Daten werden von der Arduino-Einheit (mit Ethernet-Shield-Erweiterung) an den Blynk-Server übertragen und schließlich über das Pet Dashboard präsentiert.
    • Pi-Kameramodul - tastet ständig Frames des Haustierbereichs ab, der Pi hostet seinen eigenen Server, der den Live-Feed für das Haustier-Dashboard bereitstellt.
  2. Befehlsfluss:

    • Feed Button (Dashboard) - Aktualisierung eines virtuellen Pin-Wertes durch Blynk, die entsprechende Funktion wird auf dem Arduino-Board ausgelöst, der Servo bewegt sich dann, um das Essen durch den Deckel passieren zu lassen.
    • Wasser geben (Dashboard) - aktualisiert aktiv einen virtuellen Pin-Wert über Blynk, die entsprechende Funktion wird auf der Node-MCU-Platine ausgelöst, das Relais wird auf EIN geschaltet, die Wasserpumpe beginnt, Wasser in die Schüssel des Haustiers zu fließen.
    • Pet Live Feed (Dashboard) - eingebettet in das Dashboard und präsentiert Live-Daten über den Flaschenserver, der auf dem Pi-Gerät läuft.

Schritt 2: Liste der Teile

Liste der Teile
Liste der Teile
Liste der Teile
Liste der Teile
Liste der Teile
Liste der Teile

Um mit der Arbeit an diesem System zu beginnen, benötigen Sie die folgenden (oder ähnliche) Teile:

  1. Physisch:

    • Lebensmittelbehälter: Wir haben ein doppelseitiges Industrierohr von 45 cm verwendet, das wir in einem Kaufhaus zu Hause gekauft haben. Es ist wichtig, 2 Ausgänge zu haben. Einer zum Messen des Inhalts und ein zweiter Ausgang für den Öffnungs-/Schließmechanismus.
    • Klebeband: Um die Dinge zusammenzuhalten;)
    • Überbrückungsdrähte: Je mehr, desto besser, immer gut, wenn etwas schief geht.
    • Ethernet-Kabel: Zum Anschluss unseres Arduino (mit Ethernet-Shield) an das Internet.
    • Gartendose: Wird als Behälter für Wasser und die Wasserpumpe verwendet.
    • Kurzer Wasserschlauch: An die Pumpe angeschlossen und gießt Wasser in die Schüssel des Haustiers.
  2. Sensoren:

    • WINGONEER Wasserstandssensor: Messen Sie den Wasserstand in der Schüssel des Haustiers.
    • Sonarsensor - Messen Sie den Abstand des Lebensmittelniveaus vom oberen Deckel im Behälter.
    • TONGLING-Relais: Ermöglicht das Ein- und Ausschalten der Wasserpumpe, die Wasser strömt.
    • Pi-Kameramodul: Verbunden mit einem Raspberry Pi-Gerät und streamt Bilder des Haustierbereichs.
    • Generic Servo: Verriegelt und entriegelt den Lebensmittelbehälter.
  3. Elektronische Geräte / Platinen:

    • Arduino Uno: Steuert die Implementierung der Lebensmittelbehältereinheit.
    • Arduino Ethernet Shield: Bietet eine Internetverbindung zu unserem Board.
    • NodeMCU(ESP-8266): Steuert die Wassereinheit, sowohl zum Messen als auch zum Gießen von Wasser. Dieses Board hat die Möglichkeit, sich über WLAN zu verbinden.
    • Raspberry Pi 3 - Hostet den Kameraserver und stellt Live-Feeds für das Haustier-Dashboard bereit.
    • VicTsing 80 GPH Tauchwasserpumpe: Lässt Wasser aus der Gartendose zusammen mit dem Wasserschlauch in die Schüssel fließen.

Schritt 3: Dinge zusammen verdrahten und platzieren

Dinge zusammen verkabeln und platzieren
Dinge zusammen verkabeln und platzieren
Dinge zusammen verkabeln und platzieren
Dinge zusammen verkabeln und platzieren
Dinge zusammen verkabeln und platzieren
Dinge zusammen verkabeln und platzieren

Verdrahtung

Bevor wir beginnen, wird empfohlen, die Arduino / Node-MCU auf einem Steckbrett zu platzieren, um das Zusammenfügen aller Drähte und das Platzieren an einem beliebigen physischen Ort zu erleichtern. Darüber hinaus wird empfohlen, lange Drähte zu verwenden, um Fehler aufgrund von Kabelablösungen zu vermeiden. Wir haben Ihnen einen Schaltplan für die Node-MCU (Water Unit) und den Arduino (Food Unit) zur Verfügung gestellt.

  1. Nahrungsmitteleinheit (Arduino):

    • Sonarsensor:

      • GND (Schwarz) = GND
      • VCC (Rot) = 5V
      • Trig (Lila) = 3
      • Echo (Blau) = 4
    • Servo:

      • GND (Schwarz) = GND
      • VCC (Rot) = 5V
      • Signal (Gelb) = 9
  2. Wassereinheit (Knoten):

    • Wasserstandssensor:

      • S (Blau) = A0
      • + (Rot) = 3v3
      • - (Schwarz) = GND
    • Relais (elektrisch mit der Wasserpumpe verbunden):

      • IN (Gelb) = D1
      • VCC (Rot) = Vin
      • GND (Schwarz) = GND
  3. Kameraeinheit (Pi):

    • Kamerasensor:

      • An den einzelnen Kameraanschluss des Pi anschließen (Flusskabel)
      • Wenn Sie mehr über Pi mit Kameramodul erfahren möchten - Link

Teile zusammenbauen

In diesem Teil können Sie dieses Projekt gerne anpassen und ändern, um es zu "Ihrem" zu machen. Wir werden Ihnen jedoch Bilder und Beschreibungen zur Verfügung stellen, um unsere Version des Produkts zu rekonstruieren.

  1. Food Unit (Arduino): Der Behälter ist ziemlich einfach, wir werden uns auf die Herstellung der beiden Deckel konzentrieren.

    • Oberer Deckel: Schneiden Sie 2 Löcher in den Deckel, damit der Sonarsensor hineinpasst (siehe beigefügtes Bild).
    • Unterer Deckel + Mechanismus: Beginnen Sie mit einem der Plastikaufsätze (mit dem Servosensor geliefert) und konstruieren Sie eine "Vorschlaghammer" -Form mit Klebeband / Holzstäbchen (wir haben nur Klebeband verwendet). Als nächstes befestigen Sie das Servo. Jetzt brauchen wir 2 Löcher am Deckel selbst. Der erste sollte es dem Servo ermöglichen, in den von uns konstruierten Mechanismus auf der "Innenseite" des Deckels zu passen. Schneiden Sie ein weiteres Loch basierend auf der Seite des "Hammerkopfes", den Sie hergestellt haben. Auf diese Weise wird beim Öffnen des Servos der Schwanz des Hammers das Futter zum Ausgang streichen und verhindert, dass große Stücke zusammenkleben.
  2. Wassereinheit (Knoten-MCU): Schließen Sie einfach den Wasserschlauch an die Wasserpumpe an, legen Sie ihn jetzt in die Gartendose (stellen Sie sicher, dass Sie NICHT das falsche Teil mit dem Relais und den Stromkabeln im Wasser platzieren).
  3. Kameraeinheit: Alles, was Sie tun müssen, ist den Pi mit Kameramodul an einem Ort Ihrer Wahl zu platzieren.

Schritt 4: Blynk einrichten

Blynk einrichten
Blynk einrichten
Blynk einrichten
Blynk einrichten

Alle Remote-Funktionen in diesem Projekt basieren auf Blynk. Dieser Dienst stellt uns grundsätzlich einen kostenlosen Web-Server und eine RESTful-API zur Verfügung, um mit unseren Arduino/Node-MCU-Geräten über das Internet unter Verwendung des HTTP-Protokolls zu kommunizieren. Blynk ermöglicht es uns, virtuelle Pins zu definieren, die als Adresse verwendet werden, um bestimmte Funktionen in Bezug auf das Gießen von Wasser, das Zuführen und die Probenahme der verschiedenen Sensoren auszuführen (diesen Teil haben wir für Sie erledigt, Sie müssen lediglich Ihren eigenen Anwendungs-Token erhalten, was als nächstes erklärt wird).

So erhalten Sie mein Blynk-Authentifizierungstoken

  1. Laden Sie die Blynk-App über den AppStore / PlayStore für Ihr Mobilgerät herunter.
  2. Melden Sie sich für diesen Service an (die Nutzung ist kostenlos).
  3. Starten Sie ein neues Projekt, achten Sie darauf, das richtige Gerät auszuwählen (in unserem Fall ESP8266).
  4. Nach der Erstellung wird eine E-Mail mit dem AUTHENTICATION TOKEN gesendet - Speichern Sie den Token für die nächsten Schritte.

Hinweis: Blynk kann vollständig über die App verwendet werden, wir haben uns jedoch entschieden, ein eigenes angepasstes Dashboard zu implementieren.

Um mit dem nächsten Schritt fortzufahren, sollten Sie schließlich die Blynk-Bibliothek herunterladen und installieren - Link (weiter mit Teil 3)

Schritt 5: Lebensmittelbehälter, Wasserpumpe und Live-Kamera konfigurieren

Lebensmittelbehälter, Wasserpumpe und Live-Kamera konfigurieren
Lebensmittelbehälter, Wasserpumpe und Live-Kamera konfigurieren
Lebensmittelbehälter, Wasserpumpe und Live-Kamera konfigurieren
Lebensmittelbehälter, Wasserpumpe und Live-Kamera konfigurieren

An diesem Punkt haben wir alle Teile zusammengebaut und unser blynkAuthAppToken erhalten (siehe Schritt 3).

Wir haben Ihnen den gesamten Code zur Verfügung gestellt, den Sie zum Ausführen dieses Projekts benötigen. Sie müssen lediglich einige Variablen im Code ändern, wodurch es zu "Ihrem" privaten System wird.

Beginnen Sie zunächst mit dem Herunterladen der Arduino IDE (falls Sie dies noch nicht getan haben) - Link

Arduino Lebensmittelbehälter

  1. Richten Sie die IDE auf dem Arduino-Board ein: Tools -> Board -> Arduino/Genuino Uno
  2. Stellen Sie sicher, dass diese Bibliotheken installiert sind: Sketch -> Bibliothek einschließen -> Bibliotheken verwalten

    Staffel (von Rafael)

  3. Öffnen Sie die Skizzendatei PetFeeder.ino, konfigurieren Sie die folgenden Parameter (siehe angehängtes Bild für Hilfe):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Kompilieren Sie die Skizze und laden Sie sie auf Ihr Arduino-Gerät hoch.

Knoten-MCU-Wassereinheit

  1. Richten Sie die IDE auf der Node-MCU-Platine ein:

    Siehe den ersten Teil dieses instructable für detaillierte Erklärung

  2. Stellen Sie sicher, dass diese Bibliotheken installiert sind: Sketch -> Bibliothek einschließen -> Bibliotheken verwalten

    WLAN-Manager (von tzapu)

  3. Öffnen Sie die Skizzendatei PetFeeder.ino, konfigurieren Sie die folgenden Parameter (siehe angehängtes Bild für Hilfe):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "IHR_WIFI_SSID"; // Im Grunde ist es der Name Ihres WLAN-Netzwerks
    • pass = "IHR_WIFI_PASSWORT"; // Wenn Sie kein Passwort haben, verwenden Sie die leere Zeichenfolge ""
  4. Kompilieren Sie die Skizze und laden Sie sie auf Ihr Node-MCU-Gerät hoch.

Pi Live-Kameramodul

  1. Verbinden Sie das pi-Kameramodul
  2. Führen Sie "sudo raspi-config" aus und setzen Sie die Option "Kamera" aktivieren.
  3. Testen Sie die Kamera mit dem Befehl "raspistill", um ein Bild aufzunehmen

    r aspistill -o image.jpg

  4. Stellen Sie den Flask-Webkameraserver ein:

    • Installieren Sie alle Anforderungen mit pip install -r requirements.txt
    • Verwenden Sie Python, um camera_server.py auszuführen
    • Schaut es euch unter 127.0.0.1:5000/video_feed an
  5. Stellen Sie den Flask-Webserver so ein, dass er beim Booten ausgeführt wird:

    • Fügen Sie die folgende Zeile zu /etc/rc.local (vor der Exit-Zeile) hinzu:

      python /camera_server.py

Schritt 6: So verwenden Sie die Systemsteuerung

So verwenden Sie die Systemsteuerung
So verwenden Sie die Systemsteuerung

Aufstellen

Dieser Teil ist ziemlich einfach, Sie müssen lediglich das "blynk app token" wie folgt in die Datei "index.js" einfügen:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // Verwenden Sie dasselbe Token aus den vorherigen Schritten.

Verwendungszweck

  1. Öffnen Sie das Dashboard, indem Sie auf die Datei "index.html" doppelklicken.
  2. Das Dashboard testet das System automatisch alle 10 Minuten.
  3. Wasser- und Lebensmittelbehälter-Maßnahmen können manuell vorgenommen werden.
  4. Die Schaltflächen "Wasser geben" und "Füttern" dienen dazu, Ihr Haustier aktiv mit Futter und Wasser zu versorgen.
  5. Der untere Teil des Dashboards zeigt den Live-Feed des Kameramoduls, wenn Sie die Anweisungen des vorherigen Schritts sorgfältig befolgt haben.

Hinweis: Wenn Sie die Anzahl der Öffnungen des Futterbehälters beim Füttern anpassen möchten, öffnen Sie die Datei "index.js" und ändern Sie den "Wert" in der nächsten Zeile von "3" in eine beliebige Zahl Ihrer Wahl:

fetch(baseURL + '/update/V1?value=3');

Schritt 7: Herausforderungen, Grenzen und Zukunftspläne

Herausforderungen

Die Hauptherausforderungen für uns in diesem Projekt bestanden darin, den Öffnungs-/Schließmechanismus des Lebensmittelbehälters zu entwerfen und einen stabilen gleichzeitigen Code für die Steuerung und Messung der Lebensmitteleinheit zu erstellen. Ich glaube, wir haben mindestens 4 verschiedene Versionen ausprobiert, bis wir zufrieden waren. Die Hauptsorge war Essen, das den Ausgang blockierte. Um dies zu verhindern, haben wir uns für ein Sledge-Hammer-Design entschieden, so dass beim Öffnen des Behälters der Schwanz des "Hammers" das Essen in Richtung Ausgang fegt. Darüber hinaus hat uns die Verwendung eines zweiseitigen Rohrs das Leben beim Bauen des Lebensmittelbehälters erheblich erleichtert. Ein solches Objekt ist perfekt, um auf einer Seite den Ausstiegsmechanismus und auf der anderen Seite einen Abstandssensor zum Messen seines Inhalts zu platzieren.

Grenzen

In dieser Projektphase gibt es einige Einschränkungen für das System:

  1. Es ist nicht vollständig automatisiert, d. h. das Zuführen und Gießen von Wasser erfolgt manuell über das Monitoring-Dashboard ohne intelligente Planer (die in Zukunft hinzugefügt oder von Ihnen implementiert werden könnten!).
  2. Das Dashboard läuft lokal auf Ihrem eigenen Laptop, um es leichter zugänglich zu machen, kann es auf beliebten Plattformen wie "Heroku" gehostet werden.
  3. Wir haben ein sehr einfaches Kameramodul verwendet, das durch ein viel komplizierteres Modul ersetzt werden kann, um eine bessere Bildqualität zu ermöglichen und möglicherweise einen Kommunikationskanal mit Ihrem Haustier (mit einem Lautsprecher) hinzuzufügen.

Zukunftspläne

Wenn wir die Zeit und das Budget hätten, dieses System weiterzuentwickeln, hatten wir einige Ideen und einen möglichen Zeitplan im Kopf:

  1. Hinzufügen eines automatischen Planungssystems für die Haustierfütterung - 2 bis 3 Arbeitstage.
  2. Aufbau einer Website, die es Benutzern unseres Systems ermöglicht, ein benutzerdefiniertes Dashboard zu erstellen, das online gehostet und von jedem angeschlossenen Gerät aus zugänglich ist - 1-2 Monate Arbeit.
  3. Arbeiten Sie an einer industriellen Version für dieses System, die es mehr Haustierbesitzern ermöglicht, ihre Haustiere online besser zu kontrollieren und mit ihnen zu kommunizieren. Wir hatten großes Interesse von Freunden, die das Ergebnis dieses Instructable sahen. Wenn Sie also die Zeit und Leidenschaft haben, Projekte auf die nächste Stufe zu heben, haben Sie volle Unterstützung!

Wir hoffen, es hat Ihnen Spaß gemacht, dieses Projekt zu lesen (und hoffentlich zu bauen!):)

Empfohlen: