Inhaltsverzeichnis:

IoT-Leckereispender für Haustiere - Gunook
IoT-Leckereispender für Haustiere - Gunook

Video: IoT-Leckereispender für Haustiere - Gunook

Video: IoT-Leckereispender für Haustiere - Gunook
Video: Как спрятать данные в ячейках Excel? 2024, November
Anonim
Image
Image
IoT-Leckereispender für Haustiere
IoT-Leckereispender für Haustiere

Ich habe zwei Katzen und es war ziemlich lästig, ihnen dreimal täglich Leckerlis geben zu müssen. Sie sahen mit ihren süßen Gesichtern und intensiven Blicken zu mir auf und rannten dann zu einer Kiste voller Katzengrün, miauten und bettelten um sie. Ich hatte entschieden, dass genug genug ist. Kein Aufstehen mehr, nur um einer Katze ein paar Leckerlis zu geben. Jetzt war die Zeit für einen Leckerbissen-Automaten, denn wie heißt es so schön: "Programmierer existieren, um komplizierte Dinge zu machen, um einfache Dinge weniger zu erledigen."

DFRobot hat dieses Projekt gesponsert.

Liste der Einzelteile:

  • DFRobot Raspberry Pi 3
  • DFRobot Raspberry Pi Kameramodul
  • DFRobot Schrittmotor mit Planetengetriebe
  • I2C-LCD 16x2
  • Fassbuchse zum Terminal
  • DRV8825 Schrittmotortreiber
  • Kondensator 100 µF
  • Arduino UNO & Genuino UNO
  • Überbrückungsdrähte (allgemein)

Schritt 1: Erstellen eines Designs

Erstellen eines Designs
Erstellen eines Designs

Zuerst war die Wahl, wie ich meine neu gedachte Maschine steuern sollte. Bluetooth hätte eine zu geringe Reichweite gehabt, bei nur 9 Metern ohne Hindernisse. Mit diesen Informationen habe ich mich für WLAN entschieden. Aber wie steuere ich die Maschine jetzt über WLAN? Ein Raspberry Pi 3 verfügt über integrierte WiFi-Funktionen, sodass ich Flask verwenden kann, um eine Webseite zu hosten. Als nächstes ging es um das Thema Gehege und wie man Leckereien ausgibt. Ich entschied mich für ein rotierendes Raddesign, bei dem die Leckereien in kleine Abschnitte fallen, herumgedreht werden und dann auf eine Rampe fallen und zur Vorderseite der Maschine wandern.

Schritt 2: Erstellen des Fusion 360-Modells

Erstellen des Fusion 360-Modells
Erstellen des Fusion 360-Modells
Erstellen des Fusion 360-Modells
Erstellen des Fusion 360-Modells
Erstellen des Fusion 360-Modells
Erstellen des Fusion 360-Modells

Ich begann mit der Erstellung eines Basismodells für den Leckerlibehälter. Leckereien fallen in einen Mini-Trichter, wo sie dann in ein rotierendes Rad aufgenommen werden.

Als nächstes fügte ich dem Fusion-Design den Raspberry Pi 3 hinzu, zusammen mit der anderen Elektronik, einschließlich eines LCD- und Raspberry Pi-Kameramoduls. Ich habe auch einen Trichter gemacht, der zusätzliche Leckereien aufbewahren könnte.

Die Wände für den Leckerlispender sollen auf einer CNC-Fräse aus 1/4 Zoll Sperrholz geschnitten werden. Es besteht aus 7 Teilen, 4 Wänden, einem Boden und einem Ober- und Deckelteil, das sich öffnen und schließen lässt, um die Leckereien freizulegen.

Schließlich habe ich einen "ausgefallenen" Griff geschaffen, um den Deckel zu öffnen.

Schritt 3: Einrichten des Pi

DFRobot hat sich bei mir gemeldet und ihr Raspberry Pi 3 und ihr Raspberry Pi Kameramodul geschickt. Nachdem ich die Boxen geöffnet hatte, machte ich mich gleich an die Arbeit, indem ich die SD-Karte einrichtete. Zuerst ging ich auf die Raspberry Pi Downloads Seite und lud die neueste Version von Raspbian herunter. Ich habe dann die Datei entpackt und in ein geeignetes Verzeichnis gelegt. Sie können eine.img-Datei nicht einfach auf eine SD-Karte kopieren / einfügen, Sie müssen sie auf die Karte "brennen". Sie können ein Brennprogramm wie Etcher.io herunterladen, um das Betriebssystem-Image einfach zu übertragen. Nachdem die.img-Datei auf meiner SD-Karte war, steckte ich sie in den Raspberry Pi und gab ihm Strom. Nach etwa 50 Sekunden habe ich das Kabel abgezogen und die SD-Karte entfernt. Als nächstes legte ich die SD-Karte wieder in meinen PC und ging in das "Boot"-Verzeichnis. Ich habe Notepad geöffnet und als leere Datei namens "ssh" ohne Erweiterung gespeichert. Es gab auch eine Datei namens "wpa_supplicant.conf" und fügte diesen Text hinzu: network={ ssid= psk=} Dann habe ich die Karte gespeichert und ausgeworfen und wieder in den Raspberry Pi 3 gesteckt. Dies sollte jetzt ermöglichen die Verwendung von SSH und die Verbindung zum WLAN.

Schritt 4: Software installieren

Es gibt mehrere verschiedene Softwares, die Videos streamen können, wie VLC und Motion, aber ich habe mich aufgrund seiner geringen Latenz und einfachen Installation für den mjpeg-streamer entschieden. Führen Sie gemäß den Anweisungen auf der Site a:git clone https://github.com/jacksonliam/mjpg-streamer.git in einen Ordner aus und geben Sie dann Folgendes ein: sudo apt-get install cmake libjpeg8-dev Um die benötigten Bibliotheken zu installieren. Wechseln Sie Ihr Verzeichnis in den heruntergeladenen Ordner und geben Sie dann ein: make Gefolgt von: sudo make install Um die Software zu kompilieren. Geben Sie abschließend ein: export LD_LIBRARY_PATH=. Und um es auszuführen, geben Sie Folgendes ein:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Sie können auf den Stream zugreifen, indem Sie auf https:// Die lokale IP des Pi: 8080/stream gehen. html Um den Stream anzuzeigen.

Schritt 5: Einrichten eines Webservers

Um die Maschine extern per WiFi steuern zu können, brauchte ich einen Webserver. Ein Webserver stellt grundsätzlich Webseiten bereit, wenn dies in der Regel von einem Browser angefordert wird. Ich wollte etwas, das schnell und einfach einzurichten und zu verwenden ist und Apache vom Tisch nimmt. Ich wollte auch den Webserver mit Python verbinden, damit ich das Arduino Uno mit PySerial steuern kann. Diese Suche führte mich schließlich zu Flask, einer netten Python-Bibliothek, mit der Benutzer schnell einen Webserver erstellen können. Der vollständige Code ist dieser Projektseite beigefügt. Das Python-Skript richtet im Grunde 2 Webseiten ein, eine, die im Stammverzeichnis „/“gehostet wird, und eine andere, die unter „/dispense“gehostet wird. Die Indexseite hat ein HTML-Formular, das beim Senden eine Post-Anfrage an die Ausgabeseite sendet. Die Ausgabeseite prüft dann, ob der Postwert korrekt ist, und wenn dies der Fall ist, wird die Nachricht 'D\n' seriell an das Arduino Uno gesendet.

Schritt 6: Steuerung von IO

E/A steuern
E/A steuern
E/A steuern
E/A steuern
E/A steuern
E/A steuern
E/A steuern
E/A steuern

Ich habe mich für den DRV8825 entschieden, um meinen Schrittmotor anzutreiben, hauptsächlich weil er nur 2 IO-Pins benötigt und eine einstellbare Strombegrenzung hat. Ich habe versucht, einen L293D zu verwenden, aber er konnte die Last des Schrittmotors nicht bewältigen. Der DRV8825 wird gesteuert, indem der STEP-Pin über PWM gepulst wird, und die Richtung wird gesteuert, indem der DIR-Pin hoch oder niedrig gezogen wird. Der Schrittmotor, den ich verwende, hat einen Strom von 1,2 Ampere, daher habe ich die VREF-Spannung auf 0,6 V eingestellt. Als nächstes war das LCD. Ich wollte I2C verwenden, um die benötigte IO-Menge zu reduzieren und den Code zu vereinfachen. Um die Bibliothek zu installieren, suchen Sie einfach nach "LiquidCrystal_I2C" und installieren Sie es. Schließlich prüft das Arduino Uno, ob neue Informationen im seriellen Puffer vorhanden sind und ob es mit 'D' übereinstimmt. Wenn dies der Fall ist, bewegt der Uno den Schrittmotor um 180 Grad und dann um -72 Grad, um zu verhindern, dass sich Leckerlis festsetzen.

Empfohlen: