Wie erstelle ich ein automatisches Fütterungssystem für Ihre Haustiere?
Die Haustiere müssen rechtzeitig gefüttert werden, damit sie gesund bleiben. Die Tierhalter sind nicht rund um die Uhr zu Hause verfügbar. Manchmal gehen sie zu Geschäftstreffen in eine andere Stadt oder in das Haus eines anderen, sodass die Haustiere in ihrer Abwesenheit unter Futtermangel leiden. Die Schwerkraft-Feeder sind auf dem Markt erhältlich, die die Haustiere automatisch füttern können, aber sie sind etwas teuer und benötigen eine große Fläche für die Platzierung. Heute werde ich ein automatisches Fütterungssystem für Haustiere entwickeln, das den menschlichen Aufwand für die Fütterung der Haustiere weitgehend minimiert. Derjenige würde das Essen in den Behälter legen und es wird automatisch nachgefüllt, sobald ein bestimmtes Niveau unterschritten wird. Folgen Sie daher diesem Tutorial und seien Sie bereit, diese innovative Idee bei Ihnen zu Hause umzusetzen.
Wie richte ich das Gerät ein und automatisiere es mit Arduino?
Der Zweck dieser Technik besteht darin, ein System, das gegenüber den auf dem Markt verfügbaren Systemen wie Schwerkraftzuführern effektiver ist, mit vergleichsweise geringen Kosten herzustellen. Unser System ist dafür verantwortlich, dass die Haustiere ständig mit Futter und Wasser versorgt werden. Erstens werden wir das automatische Wasserzufuhrsystem entwickeln und zweitens werden wir einen automatischen Futterautomat für unsere Haustiere entwickeln.
Schritt 1: Erforderliche Komponenten (Hardware)
Schritt 2: Erforderliche Komponenten (Software)
Vor dem Zusammenbau der Schaltung auf der Hardware sollte diese simuliert werden. Nach der Simulation erfahren wir, ob unsere Schaltung genau funktioniert oder nicht. Daher habe ich die folgenden Software-Simulationen aufgenommen. Dafür ist die erforderliche Software Proteus Professional.
Schritt 3: Funktionsprinzip des autonomen Wasserpumpensystems
Unter allen Komponenten sind die wichtigsten Komponenten die Transistoren BC 547. Es gibt insgesamt 7 Transistoren, die den Wasserstand erfassen. LEDs überwachen den Wasserstand im Container. Wenn das Wasser aufsteigt, beginnen die Sensoren mit dem Wasser in Kontakt zu kommen und die Transistoren werden aktiviert und es gibt einen Stromverlauf in den Transistoren, wodurch die LED aufleuchtet. Zwischen Transistor und LED befindet sich ein Strombegrenzungswiderstand, der verhindert, dass eine höhere Spannung in die LED eintritt. Das Gummirohr wird an den Überwassertank angeschlossen und ist für das Befüllen des Behälters verantwortlich, wenn der Füllstand unter einen bestimmten Schwellenwert fällt. Wenn das Wasser unter die Schwelle fällt, startet die Wasserpumpe und der Behälter beginnt sich zu füllen. Auf diese Weise muss der Behälter nicht manuell nachgefüllt werden, und Haustiere werden ständig mit Wasser versorgt. Zur Vereinfachung werde ich auf die Funktionalität von LEDs eingehen. Die in der Schaltung installierten LEDs haben vier Arten von Farben. Rot, Gelb, Grün und Blau. Das rote zeigt an, dass sich kein Wasser im Behälter befindet und keiner der Sensoren Kontakt mit dem Wasser hat und der Behälter nachgefüllt werden muss. Die gelbe LED zeigt 1/4 Wasser im Behälter an. Die grüne LED zeigt an, dass der Behälter zur Hälfte mit Wasser gefüllt ist, und die blaue LED zeigt an, dass der Behälter mit Wasser gefüllt ist.
Schritt 4: Simulation der Schaltung
- Öffnen Sie die Proteus-Software, nachdem Sie sie heruntergeladen und installiert haben. Öffnen Sie einen neuen Schaltplan, indem Sie auf klicken ISISSymbol im Menü.
- Wenn der neue Schaltplan angezeigt wird, klicken Sie auf P.Symbol im Seitenmenü. Dies öffnet ein Feld, in dem Sie alle Komponenten auswählen können, die verwendet werden sollen.
- Geben Sie nun den Namen der Komponenten ein, aus denen die Schaltung hergestellt werden soll. Die Komponente wird in einer Liste auf der rechten Seite angezeigt.
- Suchen Sie auf die gleiche Weise wie oben alle Komponenten wie oben. Sie werden in der angezeigt Geräte Aufführen.
Schritt 5: Erstellen Sie ein PCB-Layout
Da werden wir das machen Hardware-Schaltung Auf einer Leiterplatte müssen wir zuerst ein Leiterplattenlayout für diese Schaltung erstellen.
- Um das PCB-Layout auf Proteus zu erstellen, müssen wir zuerst die PCB-Pakete jeder Komponente im Schaltplan zuweisen. Um Pakete zuzuweisen, klicken Sie mit der rechten Maustaste auf die Komponente, der Sie das Paket zuweisen möchten, und wählen Sie sie aus Verpackungswerkzeug.
- Klicken Sie im oberen Menü auf die Option ARIES, um einen PCB-Schaltplan zu öffnen.
- Platzieren Sie in der Komponentenliste alle Komponenten auf dem Bildschirm in einem Design, wie Ihre Schaltung aussehen soll.
- Klicken Sie auf den Track-Modus und verbinden Sie alle Pins, zu deren Verbindung Sie von der Software aufgefordert werden, indem Sie auf einen Pfeil zeigen.
Schritt 6: Schaltplan
Nach dem Zusammenbau und der Verkabelung der Komponenten sollte der Schaltplan folgendermaßen aussehen:
Schritt 7: Funktionsprinzip des autonomen Lebensmittelversorgungssystems
Das Funktionsprinzip des Lebensmittelversorgungssystems ist sehr einfach und die wichtigste Komponente in diesem Kreislauf ist das Echtzeituhrmodul (DS3231)über die wir das Datum und die Uhrzeit festlegen können, zu der unseren Haustieren Futter serviert wird. Das LCD-Modul zeigt Datum und Uhrzeit sowie die Servomotor dreht die Schalen, die aus Lebensmitteln bestehen. Ich habe die 4 × 4-Tastatur hinzugefügt, um die Zeit für das Füttern der Haustiere manuell einzustellen. Ich habe den Servomotor verwendet, damit die Schüssel mit dem Futter gedreht werden kann und sie in die untere Schüssel fallen gelassen werden kann, von wo aus die Haustiere sie essen können. Das Essen wird in den festgelegten Intervallen, die Sie im Code festlegen, in die untere Schüssel fallen gelassen. Sie können die Futtermenge selbst einstellen und dabei die Essgewohnheiten von Hund, Katze, Papagei usw. berücksichtigen.
Schritt 8: Simulation der Schaltung
Simulieren Sie die Schaltung, indem Sie die obigen Schritte ausführen, um zu überprüfen, ob sie funktioniert oder nicht. Der Rest des Verfahrens ist bis auf die Komponenten und deren Platzierung derselbe. Die Komponenten, die in der Schaltung verwendet werden, sind unten gezeigt:
- Die Komponenten werden in der angezeigt Geräte Aufführen.
Nachdem wir nun überprüft haben, ob die Schaltung einwandfrei funktioniert, werden wir fortfahren und den Code für schreiben Arduino.
Schritt 9: Schaltplan
Der Schaltplan von Proteus sollte folgendermaßen aussehen:
Schritt 10: Erste Schritte mit Arduino
Wenn Sie mit Arduino IDE noch nicht vertraut sind, machen Sie sich keine Sorgen, denn unten sehen Sie klare Schritte zum Brennen von Code auf der Mikrocontroller-Karte mit Arduino IDE. Sie können die neueste Version von Arduino IDE hier herunterladen und die folgenden Schritte ausführen:
- Wenn die Arduino-Karte an Ihren PC angeschlossen ist, öffnen Sie "Systemsteuerung" und klicken Sie auf "Hardware und Sound". Klicken Sie dann auf "Geräte und Drucker". Suchen Sie den Namen des Ports, an den Ihre Arduino-Karte angeschlossen ist. In meinem Fall ist es "COM14" Auf Ihrem PC kann dies jedoch anders sein.
- Öffnen Sie nun die Arduino IDE. Stellen Sie unter Tools die Arduino-Karte auf ein Arduino / Genuino UNO.
- Stellen Sie im selben Tool-Menü die Portnummer ein, die Sie in der Systemsteuerung gesehen haben.
- Laden Sie den unten angehängten Code herunter und kopieren Sie ihn in Ihre IDE. Um den Code hochzuladen, klicken Sie auf die Schaltfläche zum Hochladen.
Sie können den Code von hier herunterladen.
Schritt 11: Den Code verstehen
Der in diesem Projekt verwendete Code ist sehr einfach und gut kommentiert. Obwohl es selbsterklärend ist, wird es im Folgenden kurz beschrieben. Wenn Sie ein anderes Arduino-Board wie Nano, Mega usw. verwenden, können Sie den Code ordnungsgemäß ändern und dann auf Ihr Board brennen.
- Oben sind verschiedene Bibliotheken enthalten, damit Tastatur, LCD, RTC-IC und Servomotor vom Mikrocontroller bedient werden können.
#einschließen#einschließen #einschließen #einschließen
2. Dann haben die Zeilen und Spalten der Tastatur die Pins von Arduino initialisiert, mit denen sie verbunden werden, und dann wird die gesamte Tastatur erstellt.
const byte ROWS = 4; // Vier Zeilen const byte COLS = 4; // Drei Spalten // Definiere die Keymap-Zeichenschlüssel [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; Byte rowPins [ROWS] = {2, 3, 4, 5}; // Verbinde die Tastatur ROW0, ROW1, ROW2 und ROW3 mit diesen Arduino-Pins. Byte colPins [COLS] = {6, 7, 8, 9}; // Verbinde die Tastatur COL0, COL1 und COL2 mit diesen Arduino-Pins. Tastatur kpd = Tastatur (makeKeymap (Schlüssel), rowPins, colPins, ROWS, COLS); // Erstellen Sie die Tastatur
3. Anschließend werden der RTC-IC, der Servomotor und das Flüssigkeits-LCD initialisiert und einige Variablen deklariert, die für die Laufzeitberechnungen verwendet werden.
DS3231 rtc (A4, A5); Servo servo_test; // Initialisiere ein Servoobjekt für das angeschlossene Servo LiquidCrystal lcd (A0, A1, A2, 11, 12, 13); // Erstellt ein LC-Objekt. Parameter: (rs, enable, d4, d5, d6, d7) // int angle = 0; // int potentio = A0; // initialisiere den A0analog Pin für das Potentiometer int t1, t2, t3, t4, t5, t6; Boolescher Feed = true; // Bedingung für Alarmzeichenschlüssel; int r [6];
4. void setup ()ist eine Funktion, die nur einmal im Code ausgeführt wird, wenn der Mikrocontroller eingeschaltet oder die Aktivierungstaste gedrückt wird. Die Baudrate wird in dieser Funktion eingestellt. Dies ist im Wesentlichen die Geschwindigkeit in Bit pro Sekunde, mit der der Mikrocontroller mit den Peripheriegeräten kommuniziert. In dieser Funktion werden auch RTC und das Servo gestartet und die Pins werden initialisiert, um als Eingang oder Ausgang verwendet zu werden.
void setup () {servo_test.attach (10); // Verbinde den Signal-Pin des Servos mit Pin 9 des Arduino rtc.begin (); lcd.begin (16,2); servo_test.write (55); Serial.begin (9600); PinMode (A0, OUTPUT); PinMode (A1, OUTPUT); PinMode (A2, OUTPUT); }}
5. void loop () ist eine Funktion, die immer wieder in einer Schleife ausgeführt wird. Hier in dieser Funktion wird der Code geschrieben, um die Zeit zu verfolgen und auf dem LCD zu drucken. dann wird ein Befehl zum Drehen des Servos in einem bestimmten Winkel gegeben.
void loop () {lcd.setCursor (0,0); int buttonPress; buttonPress = digitalRead (A3); if (buttonPress == 1) setFeedingTime (); //Serial.println(buttonPress); lcd.print ("Zeit:"); String t = ""; t = rtc.getTimeStr (); t1 = t.charAt (0) -48; t2 = t.charAt (1) -48; t3 = t.charAt (3) -48; t4 = t.charAt (4) -48; t5 = t.charAt (6) -48; t6 = t.charAt (7) -48; lcd.print (rtc.getTimeStr ()); lcd.setCursor (0,1); lcd.print ("Datum:"); lcd.print (rtc.getDateStr ()); if (t1 == r [0] && t2 == r [1] && t3 == r [2] && t4 == r [3] && t5 <1 && t6 <3 && feed == true) {servo_test. schreibe (100); // Befehl zum Drehen des Servos auf die angegebene Winkelverzögerung (400); servo_test.write (55); feed = false; }}
6. void setFeedingTime () ist eine Funktion, die Eingaben über die Tastatur entgegennimmt und die Eingaben abbildet, um die Einspeisungszeit im Mikrocontroller einzustellen. Diese Zeit wird später verwendet, um den Motor zu drehen, um die Haustiere zu füttern.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Fütterungszeit einstellen"); lcd.clear (); lcd.print ("HH: MM"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); char j; if (key! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (Schlüssel); r [i] = Schlüssel-48; i ++; j ++; if (j == 2) {lcd.print (":"); j ++; } delay (500); } if (key == 'D') {key = 0; Unterbrechung; }}}
Schritt 12: Hardware-Design des Wasserpumpensystems
Nachdem wir alle Softwareaufgaben erledigt haben, können wir nun die Hardware des Projekts entwerfen. Zunächst werden wir die Komponenten des Wasserpumpensystems zusammenbauen und anschließend die Hardware des automatischen Lebensmittelversorgungssystems entwerfen. Nachdem Sie ein Leiterplattenlayout der Schaltung erstellt haben, löten Sie die Komponenten auf der Leiterplatte gemäß dem oben gezeigten Schaltplan. Legen Sie den Stromkreis in eine kleine Box und bohren Sie geeignete Löcher hinein, damit die LEDs leicht aus der Box herauskommen können. Nehmen Sie eine Leiterplatte und löten Sie die LEDs gemäß den oben definierten Werten darauf. Nach der Analyse der Schaltung stellten wir fest, dass fünf Versorgungsleitungen von der Hauptplatine zum Sensor herausgeführt werden müssen. Vier Zeilen sind von den Sensoren und eine ist für Gemeinsamer positiver Stift.
Möglicherweise müssen wir zwei Kanäle herstellen, damit sie, wenn sie mit Wasser in Kontakt kommen, als Schalter fungieren, da Wasser ein guter Stromleiter ist. Wir können ein PVC-Rohr verwenden und Löcher darin bohren. Messen Sie zuerst die Höhe des Behälters und markieren Sie dann mit gleichen Intervallen 4 Punkte darauf. Machen Sie Löcher in diese Punkte und machen Sie dann eine Drahtschleife, die den Strom führt. Befestigen Sie diese Drahtschlaufe mit Schrauben und Muttern in diesem PVC-Rohr und fügen Sie anschließend einen gemeinsamen Draht zum Gehäuse hinzu. Das Loch des blanken Drahtes und der Schraube sollte auf ein Minimum beschränkt werden. Falls Sie dies benötigen, können Sie ein wenig Draht an die gemeinsame Leitung direkt neben der Mutter und der Schraube anlöten, da die Erfassung an dem Punkt, an dem dies der Fall wäre, größer wäre Wenn das Wasser mit dem normalen Draht und dem Bolzen in Wechselwirkung tritt, erfolgt eine Stromübertragung vom abisolierten Draht zum Bolzen, und somit ist der Erfassungsteil abgeschlossen. Sobald das Wasser einen bestimmten Wert unterschreitet, wird der Wassermotor gedreht AUF und der Tank beginnt sich zu füllen. Wenn sich der Tank zu füllen beginnt, beginnt sich der Behälter aufgrund der Wasserleitung auch zu füllen, wenn Wasser durch die Leitung vom Tank zum Behälter übertragen wird. Daher muss der Behälter nicht mehr manuell gefüllt werden.
Schritt 13: Hardware-Design des automatischen Lebensmittelversorgungssystems
Jetzt werden wir die Hardware des Lebensmittelversorgungssystems zusammenbauen. Wir können die Zeitintervalle unserer Wahl mit dem einstellen DS3231 Echtzeituhr Modul und daher unter Berücksichtigung des Fressplans unserer Haustiere werden wir den Zeitplan anpassen. Wenn der Timer das eingestellte Datum und die eingestellte Uhrzeit erreicht, bewegt sich der Servomotor und das Essen wird in die darunter liegende Schüssel fallen gelassen. Bauen Sie die Schaltung wie oben auf dem Steckbrett gezeigt zusammen. Nehmen Sie einen Holzstab und befestigen Sie den Servomotor damit. Befestigen Sie es senkrecht an der Wand und befestigen Sie die Schüssel mit Lebensmitteln mit Hilfe von Schrauben am Stab. Die Schüssel kann wie ein bambusförmiges Hohlrohr sein, das an beiden Enden offen ist, und ein rundes Holzstück wird unten platziert. Der Servomotor wird am Holzstück befestigt, und sobald sich der Motor in einem bestimmten Winkel bewegt, wird das Essen in die darunter liegende Schüssel fallen gelassen.
Das ist alles für heute. Vergessen Sie nicht, Ihre Erfahrungen nach Abschluss dieses Projekts mitzuteilen, und wenn Sie Probleme haben, können Sie diese gerne im Kommentarbereich erfragen.