Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Füttern Sie Ihre Fische von überall auf der Welt. Kompatibel mit Flocken! Es gibt viele Fischfutterautomaten im Internet, aber nicht viele, die Fischflocken füttern. Die Hauptnahrung meiner Goldfische. Ich genieße es, meine Fische zu füttern, und wenn ich reise, möchte ich das gleiche Vergnügen haben. Dies ist auch toll, wenn Sie vergessen, Ihre Fische zu füttern. Kein Umdrehen mehr auf dem Weg zur Arbeit! Die Anwendung verfügt auch über ein Display, das die Uhrzeit der letzten Fütterung anzeigt. Dies wird Ihnen helfen, Ihre Fische nicht zu über- oder unterfüttern und für weniger als 20 $ ist es billiger als viele kommerzielle Lösungen.
Mein erstes Projekt mit Arduino war ein automatischer Fischfutterautomat. Mit meinem Mangel an Wissen über Arduino und 3D-Druck war dieses Projekt nicht großartig. Das Ziel dieses Projekts war es, eine bessere Version zu erstellen. Ich mochte es, mein Wachstum zu beobachten und zu sehen, wie viel besser diese Version ist. Dieser Feeder basiert auf der NodeMCU und der Blynk-Anwendung.
Update: In feuchten Klimazonen wie Tropen oder Küsten neigt das Essen dazu, Feuchtigkeit aufzunehmen und zu verklumpen und ziemlich eklig zu werden. Für Menschen, die in diesen Klimazonen leben, würde ich ein Design empfehlen, das das Essen versiegelt hält, wenn es nicht verwendet wird.
Schritt 1: Teile und Werkzeuge
Teile
KnotenMCU
$8
Micro SG90 Servo
$1.70
Steckbrett
$4
Überbrückungsdrähte
21¢
Micro-USB-Kabel
$2
3D-gedruckte Teile
Smartphone – Sie müssen die Blynk-App herunterladen. Verfügbar auf iPhone und Android.
Heißkleber - Zum Anbringen des Servos und zum Befestigen des Servohorns am Shakerstück.
Fischflockenbehälter - Ich habe den Fischfutterautomat so entworfen, dass er zu dieser Flasche passt. Sie können auch eine passende Flasche in 3D drucken. Ich habe meine im Geschäft bei PetSmart gekauft.
Werkzeuge
3D Drucker
Heißklebepistole
Schleifpapier - Ich habe 100er Körnung verwendet. Dies kann erforderlich sein, um das Servo in seinen Steckplatz zu passen.
Programme und Bibliotheken
Arduino-IDE
Blynk-App
Blynk-Bibliothek
Schritt 2: 3D-Druck
Ich habe den Fischfutterautomat auf Tinkercad entworfen. Ich lerne Fusion360, bin aber derzeit mit Tinkercad sicherer. Der Feeder druckt in zwei Teilen mit einer optionalen Flasche dazu. Das größere Teil beherbergt die Flasche, das Servo und die NodeMCU. Das zweite Stück wird am Servohorn befestigt. Das Futter wird von diesem Stück ins Wasser geschüttelt. Beide Teile können ohne Stützen gedruckt werden. Ich habe eine 25 % Füllung verwendet. Die Flasche wird empfohlen, aber die Fischfutterflasche von der Teileseite kann stattdessen verwendet werden. Das größere Stück brauchte ungefähr fünf Stunden zum Drucken und der Servo-Aufsatz dauerte ungefähr anderthalb Stunden. Sie finden die Dateien hier: Druckerdateien auf Thingiverse
Ich drucke gerade auf einem MOD-t. Der günstige Preis und die einfach zu bedienende Software machten ihn zu einem großartigen ersten Drucker für mich. Ich würde mich jedoch über einen neuen Drucker freuen, da ich als CAD-Designer und Erfinder wachse.
Schritt 3: Schaltplan
Die NodeMCU ist ein Arduino ähnlicher Mikrocontroller. Der Unterschied besteht darin, dass es einen eingebauten ESP-Chip hat. Dies bedeutet, dass es ohne externe Komponenten eine Verbindung zum WLAN herstellen kann.
Es werden nur Verbindungen zwischen dem Servo und der NodeMCU hergestellt. Verbinden Sie Masse mit Masse. Die 5V des Servos, die an Vin der NodeMCU angeschlossen sind. Das Signalkabel des Servos wird dann an D1 der NodeMCU angeschlossen. Die NodeMCU hat eine andere Pinbelegung als Ihr typisches Arduino. D1 der NodeMCU entspricht Pin D5 des Arduino. Schauen Sie sich auch die Pinbelegung an. In dem Code, in dem wir unseren Pin definieren, haben wir zwei Möglichkeiten. Nennen Sie den Pin entweder als "D1" oder nennen Sie ihn "5". Beide Optionen funktionieren.
Schritt 4: App erstellen - Blynk
Blynk ist eine IOS- und Android-Anwendung, die eine Verbindung zu Mikrocontrollern über WLAN, Bluetooth, Ethernet usw. ermöglicht. In diesem Projekt verbinden wir uns über WLAN mit der Anwendung. Blynk ist eine Drag-and-Drop-Anwendung, die einfache, benutzerdefinierte Bildschirme zur Steuerung von Projekten ermöglicht.
So richten Sie die Blynk-Anwendung ein:
Laden Sie die Blynk-App herunter.
Richten Sie ein Konto ein. Verwenden Sie eine echte E-Mail-Adresse. Ihre Authentifizierungscodes werden an diese E-Mail gesendet.
Klicken Sie auf "Neues Projekt erstellen".
Benennen Sie Ihr Projekt.
Gerät „NodeMCU“auswählen.
Stellen Sie sicher, dass der Verbindungstyp "Wifi" ist.
Klicken Sie auf "Projekt erstellen".
Klicken Sie auf den Bildschirm und eine Seitenleiste wird angezeigt.
Wählen Sie eine Schaltfläche aus.
Benennen Sie die Schaltfläche.
Wählen Sie den Ausgang als "Virtuell 1" aus.
Stellen Sie sicher, dass es sich im "Push"-Modus befindet.
Name Ein "Einziehen" und Aus "Einziehen".
Klicken Sie auf "OK". Klicken Sie erneut auf den Bildschirm.
Wählen Sie eine "Beschriftete Wertanzeige M".
Nennen Sie es "Letzte Fütterung".
Wählen Sie den Eingang als V5.
OK klicken.
Klicken Sie erneut auf den Bildschirm.
Scrollen Sie in der Seitenleiste nach unten zu "Echtzeituhr".
Wählen Sie es aus.
Stellen Sie die Zeitzone auf Ihre eigene ein und klicken Sie auf "OK".
Ihre App ist einsatzbereit
Schritt 5: Code
Um den Code zu verwenden, müssen Sie die Blynk-Bibliothek herunterladen.
Sie müssen auch einige Schritte ausführen, um eine NodeMCU mit Arduino IDE programmieren zu können. Folgen Sie den Schritten von hier aus: Programm NodeMCU
Der Code funktioniert, indem er ein hohes Signal vom virtuellen Pin 5 erkennt. Dies wird durch eine Schaltfläche in der Blynk-App ausgelöst. Wenn das hohe Signal erfasst wird, führt der Code eine Funktion aus. Diese Funktion ruft das Servo auf, sich um 30 Grad in Schritten von 1 Grad zu bewegen. Die Verwendung der Stufen sorgt für eine saubere Bewegung.
Außerdem sendet das Telefon Echtzeituhrdaten, auch bekannt als die Uhrzeit, an den NodeMcu. Das Telefon sendet jede Sekunde die Uhrzeit. Wenn die Taste gedrückt wird, um das Servo zu bewegen, wird eine Variable i auf 1 gesetzt. Dies führt dazu, dass die if (i == 1)-Anweisung wahr ist und die Zeit in der App angezeigt wird. Die Uhrzeit wird jedes Mal gesendet, wenn die Schaltfläche gedrückt wird. Das heißt, die angezeigte Zeit ist die Zeit der letzten Fütterung.
Sie müssen Ihre ssid und Ihr Passwort angeben. Wenn Ihre WLAN-Verbindung kein Passwort erfordert, lassen Sie dieses Feld als "". Sie müssen auch Ihr Authentifizierungstoken einschließen, das bei der Erstellung Ihrer App an gesendet wird. Möglicherweise müssen Sie den Grad des Servos ändern, um die Futtermenge anzupassen, die Sie füttern möchten.
/* Wireless Fish Feeder * Aaron Price * V1.2 * * Diese Skizze ermöglicht es, Fische von überall auf der Welt zu füttern * sofern WLAN verfügbar ist. Die Skizze basiert auf der NodeMCU *, die ein Servo an Pin D1 (GPIO5) steuert. Die Blynk-App* steuert die NodeMCU von einem Smartphone aus. * Die App sendet RTC-Daten vom Smartphone an die NodeMCU. * Verbinden Sie eine Schaltfläche in der App mit dem virtuellen Pin 1. * Verbinden Sie ein Label mit dem virtuellen Pin 5. */
#define BLYNK_PRINT-Seriennummer
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
// Sie sollten das Auth-Token in der Blynk-App abrufen. // Gehe zu den Projekteinstellungen (Nuss-Symbol). char auth = "AuthToken";
// Ihre WLAN-Zugangsdaten. // Passwort für offene Netzwerke auf "" setzen. char ssid = "ssid"; char pass = "Passwort"; int-Position; int ich; Servo-Myservo;
BlynkTimer-Timer;
WidgetRTC rtc;
void clockDisplay() { // Sie können hour(), minute(), … jederzeit aufrufen // Details finden Sie in den Beispielen der Time-Bibliothek
String currentTime = String(hour()) + ":" + minute() + ":" + second(); String currentDate = String(day()) + " " + month() + " " + year(); // Serial.print ("Aktuelle Zeit: "); // Serial.print (aktuelle Zeit); // Serial.print (" "); // Serial.print (aktuelles Datum); // Serial.println ();
if (i == 1) { // Zeit an die App senden Blynk.virtualWrite (V5, currentTime); ich = 0; Serial.print (i); }
}
Void setup () {// Debug-Konsole Serial.begin (9600);
myservo.attach(5); myservo.write(75); Blynk.begin(auth, ssid, pass); rtc.begin();
timer.setInterval(1000L, clockDisplay); Serial.print (i); }
Void Schleife () { Blynk.run (); Timer.run(); }
BLYNK_WRITE(V1) { if(param.asInt()==1) {
i++; Serial.print (i); Serial.print ("Gedrückt"); // Servo zur Vorschubposition bewegen
for(pos = 50; pos =140; pos-=1) // geht von 180 Grad auf 0 Grad // { // myservo.write(pos); // dem Servo sagen, dass es in der Variablen 'pos' in die Position gehen soll // Verzögerung (15); // wartet 15ms, bis das Servo die Position erreicht //}} else {Serial.print("Depressed"); //Zurück nach Hause myservo.write(75);} }
Schritt 6: Alles zusammenfügen
Befestigen Sie das Servo wie oben gezeigt am 3D-gedruckten Stück. Das Shakerstück sollte auf dem Horn so ausgerichtet werden, dass es den Schlitz bedeckt, in dem das Essen sitzt und dann auf das Horn geklebt wird. Die Flasche gleitet mit etwas Kraft in ihr Loch. Kleben Sie das Steckbrett auf den flachen Teil und kleben Sie den Boden des flachen Teils auf den Tank. Ich entwarf das Stück, um im rechtwinkligen Stück zu sitzen. Schalten Sie die NodeMCU ein und klicken Sie auf die Wiedergabeschaltfläche in der oberen rechten Ecke der App. Ihr Feeder ist jetzt fertig!
Schritt 7: Fazit
Wenn alles funktioniert, werden die Fische gefüttert, wenn Sie auf die Schaltfläche "Füttern" klicken. Die letzte Fütterungszeit sollte ebenfalls aktualisiert werden. Dies ist eines der nützlichsten Projekte, die ich gemacht habe. Ich habe das Vergnügen, meine Fische zu füttern und die Fische bekommen Futter. Klingt nach einem Win-Win! Bei all dem Füttern werde ich einige große Fische haben. Weiß jemand, wie man einen Teich baut?
Dieses Instructable ist in einigen Wettbewerben. Bitte favorisieren, kommentieren, abstimmen und teilen. Auch Fragen beantworte ich gerne. Genießen
Zweiter Platz beim Internet der Dinge-Wettbewerb 2017