Inhaltsverzeichnis:

IoT-Haustiertür im Freien - Gunook
IoT-Haustiertür im Freien - Gunook

Video: IoT-Haustiertür im Freien - Gunook

Video: IoT-Haustiertür im Freien - Gunook
Video: Einbauanleitung für die Aluminium-Haustiertür für extremes Wetter 2024, Juli
Anonim
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere
IoT-Außentür für Haustiere

Ich wurde von diesem anweisbaren inspiriert, eine automatische Hühnerstalltür zu schaffen. Ich wollte nicht nur, dass die Hühnerstalltür mit einem Timer ausgestattet ist, sondern ich wollte die Tür auch mit dem Internet verbinden, damit ich sie mit meinem Telefon oder meinem Computer steuern konnte. Diese Tür wurde für meinen Hühnerstall gebaut, sie könnte jedoch leicht auf andere Arten von Unterkünften für eine Vielzahl von Haustieren angewendet werden. Sie können neben dem alten Autoantennenmotor, den ich verwendet habe, auch verschiedene Arten von 12-V-Motoren verwenden.

Nach dem Einrichten und Verbinden von Adafruit IO und IFTTT mit meinem ESP8266 kann meine Hühnerstalltür online gesteuert werden. Die Tür kann geöffnet oder geschlossen werden:

1) Zu genauen Zeiten, zu denen ich auf adafruit.io eintrete

2) Per Knopfdruck auf meinem Telefon

3) Durch Senden einer SMS an eine bestimmte Nummer

4) Durch Klicken auf eine Schaltfläche auf adafruit.io

5) Durch Drücken einer physischen Taste

Zusätzlich zu diesen Funktionen kann die Hühnerstalltür über die IFTTT-App Push-Benachrichtigungen an mein Telefon senden, wenn Probleme mit der Tür auftreten, z. B. wenn sich die Tür nicht öffnet oder schließt.

Da sich mein Hühnerstall etwa 500 Fuß von meinem WLAN-Router entfernt befindet, habe ich einen 433 MHz RFM69HCW-Sender und -Empfänger in Verbindung mit einem ESP8266 verwendet, um dieses Projekt durchzuführen. Es gibt eine schwarze Indoor-Senderbox mit Hardware, die mit dem Internet verbunden ist und eine graue Outdoor-Empfängerbox, die den Motor steuert.

Dieses anweisbare führt Sie durch den Prozess der Erstellung der Hardware, die erforderlich ist, um einen 12-V-Motor zu steuern, der meine Hühnerstalltür öffnet oder schließt.

Ich habe folgende Teile verwendet:

Adafruit 32u4 mit 433MHz RFM69HCW - $25

Adafruit MCP23017 I2C 16 Input/Output Port Expander IC - 2,95 $

Adafruit Feather HUZZAH mit ESP8266 WiFi - $16.95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $10

Adafruit SMA-Steckverbinder für 1,6 mm dicke Leiterplatten - 2,50 $

Adafruit uFL SMA Antennenanschluss - $0.75

Adafruit RGB-Drucktaste - 10,95 $

12V Netzteil - $7

5V USB-Netzteil - $7

Micro-USB-Kabel - $5

4-Kanal-Relaisplatine (kann 2 Kanäle verwenden) - $ 7

DC-DC-Abwärtswandler (nur einer verwendet, aber als 5er-Pack erhältlich) - $ 20

Reed-Schalter (magnetischer Türschaltersensor) - $9

2x 433MHz omnidirektionale Antenne - $6

uFL-auf-SMA-Kabeladapter (nur einer verwendet, aber als 2er-Pack erhältlich) - 5

Wasserdichte ABS-Projektbox für den Außenbereich - $ 11

Schwarze ABS-Projektbox - $10

20x4 blaues Zeichen LCD - $10

12V Auto-Antennenmotor - ~$25 bei ebay

Draht und Widerstände

Schritt 1: Outdoor-Empfänger

Outdoor-Empfänger
Outdoor-Empfänger
Outdoor-Empfänger
Outdoor-Empfänger

Der Outdoor-Empfänger besteht aus einem Adafruit 32u4 mit 433MHz RFM69HCW, der mit einigen Relais verbunden ist, die die Stromversorgung für einen 12V-Motor ein- oder ausschalten. Diese Module sowie ein 12V auf 5V DC-DC Wandler befinden sich in einer wasserdichten grauen Projektbox. Schließlich gibt es einen Türschaltersensor, der mit einem der Pins des 32u4-Arduino-Mikrocontrollers verbunden ist, der erkennt, ob die Tür ordnungsgemäß geöffnet oder geschlossen wurde, wenn sie sollte.

Alle 15 Sekunden sendet der Innensender „Öffnen“oder „Schließen“. Basierend auf dem empfangenen Befehl schaltet der Arduino 32u4 ein Relais ein oder aus. Für den Motor, den ich gewählt habe, einen alten Autoantennenmotor, musste ich zwei Relais ein- oder ausschalten, weil der Motor verdrahtet ist. Grundsätzlich gab es ein Relais zum Einschalten der Stromversorgung und dann ein weiteres Relais, das steuerte, ob der Motor ausgefahren oder eingefahren wurde oder nicht.

Sobald die Übertragung zum Öffnen oder Schließen empfangen wird, antwortet der Außenempfänger mit „sensorOpen“oder „sensorClosed“, um den Status des Türschaltersensors anzuzeigen. Im Idealfall würde der Befehl "Öffnen" eine "SensorÖffnen"-Antwort zurückgeben, jedoch stimmen diese nicht überein, wenn die Tür klemmt oder der Motor klemmt. Wenn sie nicht übereinstimmen, zeigt der Innensender diese Informationen an und eine Push-Benachrichtigung wird an Ihr Telefon gesendet.

Schritt 2: Anschließen der Outdoor-Empfänger-Hardware

Anschließen der Outdoor-Empfänger-Hardware
Anschließen der Outdoor-Empfänger-Hardware
Anschließen der Hardware des Outdoor-Empfängers
Anschließen der Hardware des Outdoor-Empfängers
Anschließen der Outdoor-Empfänger-Hardware
Anschließen der Outdoor-Empfänger-Hardware

Die Hardware für den Outdoor-Empfänger ist nicht allzu schwierig zu verkabeln. Ich habe unten ein Fritzing-Schema eingefügt, damit die von mir verwendeten Pins leicht angezeigt werden können.

Wie ich oben erwähnt habe, benötigte der von mir verwendete Motor zwei Relais. Ich habe ein Bild von der Pinbelegung eingefügt. Sobald Sie 12V an das rote Kabel anschließen, fährt der Motor ein, wenn er ausgefahren ist. Wenn Sie gleichzeitig 12V an das rote Kabel und das grüne Kabel anschließen, fährt der Motor aus.

Der oben verlinkte Reedschalter sollte als Öffner verdrahtet werden. Der Unterschied zwischen normalerweise geöffnet und normalerweise geschlossen wird in dem Bild erklärt, das ich oben angehängt habe. Per Software ist am Eingangspin des 32u4 ein interner Pullup-Widerstand angebracht, so dass Sie nur den Türschalter mit dem Eingangspin und auch mit Masse verbinden müssen.

Sie müssen eine Antenne an das Adafruit 32u4 anschließen. Bitte sehen Sie sich das wirklich gut erklärte Tutorial von Adafruit zu diesem Schritt an. Ich entschied mich, eine externe Antenne anstelle eines Stücks Draht zu verwenden, um eine bessere Reichweite zu erzielen.

Schritt 3: Innensender

Innensender
Innensender
Innensender
Innensender
Innensender
Innensender

Der Innensender besteht aus einem Adafruit Radio FeatherWing 433MHz RFM69HCW, das auf einem Adafruit Feather HUZZAH mit ESP8266 WiFi gestapelt ist. Diese Module sind mit einem 20x4-Zeichen-Display und einem silbernen RGB-Taster in einer schwarzen Projektbox verbunden.

Das Display verfügt über eine NTC-synchronisierte Uhr, die RSSI-Stärke in dB (misst die Stärke von Funksignalen), die Zeit, zu der die Hühnerstalltür geöffnet wird, die Zeit, zu der die Hühnerstalltür geschlossen wird, und den aktuellen Status der Tür. Die Taste ist bei geschlossener Tür rot und bei geöffneter Tür grün.

Wenn die Stromversorgung des Außenempfängers unterbrochen wird oder das 433MHz-Signal aus irgendeinem Grund nicht gesendet werden kann, wechseln das Display und die RGB-Taste in den ersten von zwei möglichen Fehlermodi. Im ersten Fehlermodus wird auf dem Display „ERROR! Versuchen Sie, den Außenempfänger neu zu starten“angezeigt. und die Schaltfläche hat keine Farbe. Wenn der Türschaltersensor erkennt, dass die Tür nicht richtig geschlossen oder geöffnet wurde, wechseln das Display und die RGB-Taste in den zweiten von zwei Fehlermodi. Im zweiten Fehlermodus wird auf dem Display „ERROR! Door or switch sensor issue“angezeigt. und die Schaltfläche hat keine Farbe. Wenn das Problem behoben ist, werden die Anzeige und die RGB-Taste wieder normal. Sie können Push-Benachrichtigungen an Ihr Telefon erhalten, wenn einer dieser Fehlermodi auftritt (ich werde diese Einrichtung in einem späteren Schritt besprechen).

Schritt 4: Anschließen der Innensender-Hardware

Anschließen der Innensender-Hardware
Anschließen der Innensender-Hardware
Anschließen der Innensender-Hardware
Anschließen der Innensender-Hardware

Nach dem Stapeln des Adafruit Radio FeatherWing 433MHz RFM69HCW auf einem Adafruit Feather HUZZAH mit ESP8266 WiFi bleiben nur noch 2 Pins übrig, die nicht belegt sind, die I2C-Pins SDA und SCL. Aus diesem Grund habe ich mich für den integrierten Schaltkreis (IC) MCP23017 entschieden. Es ist ein wirklich cooler IC, der bis zu 16 zusätzliche Eingangs-/Ausgangspins über I2C mit jedem Mikrocontroller verbindet. Außerdem gibt es eine vorgefertigte Bibliothek namens Adafruit-RGB-LCD-Shield, die diesen IC mit einer Zeichenanzeige verwendet, die technisch für dieses Adafruit-Produkt geschrieben wurde, aber für dieses Projekt perfekt funktioniert.

Die Idee, den MCP23017 mit einer Zeichenanzeige zu verwenden, stammt aus dieser sehr gut geschriebenen Anleitung. Bitte überprüfen Sie es!

Ich nahm das anweisbar und anstatt mehrere Tasten und ein RGB-Display an den IC anzuschließen, verband ich nur eine Taste mit einer RGB-LED darin und einem monochromen Display mit dem IC. Dadurch konnte ich PIN 1 des ICs (normalerweise für die blaue Hintergrundbeleuchtung eines RGB-Displays verwendet) als Hintergrundbeleuchtung für mein monochromes Display definieren, PIN 28 (normalerweise für die grüne Hintergrundbeleuchtung eines RGB-Displays verwendet) als die rote LED im Inneren des Taste und PIN 27 (normalerweise für die rote Hintergrundbeleuchtung eines RGB-Displays verwendet) als grüne LED in der Taste. PIN 24 wurde mit einer Seite des Tasters verbunden und die andere Seite war mit Masse verbunden. Sie können die Pinbelegung der Taste im oben angehängten Bild sehen (ich habe die blaue Kathode getrennt gelassen).

Neben der Verwendung dieses anweisbaren, das ich verlinkt habe, um das Display zu verdrahten, habe ich ein Fritzing-Schema beigefügt, das Ihnen hilft, alles anzuschließen.

Sie müssen drei Pins auf der Oberseite des FeatherWing 433MHz RFM69HCW kurzschließen, wie in diesem Adafruit-Tutorial erklärt. Sie müssen außerdem eine Antenne an den FeatherWing 433MHz RFM69HCW anschließen. Bitte sehen Sie sich das wirklich gut erklärte Tutorial von Adafruit zu diesem Schritt an. Ich entschied mich für eine externe Antenne mit einem seitlich angebrachten SMA-Anschluss anstelle eines Kabels, um eine bessere Reichweite zu erzielen.

Schritt 5: Verbinden mit Adafruit. IO und IFTTT

Verbinden mit Adafruit. IO und IFTTT
Verbinden mit Adafruit. IO und IFTTT
Verbinden mit Adafruit. IO und IFTTT
Verbinden mit Adafruit. IO und IFTTT

Adafruit IO:

Bitte befolgen Sie die Anweisungen in diesem Adafruit-Tutorial, um sich bei Adafruit. IO anzumelden, wenn Sie kein Konto haben. Sie sollten auch lesen, was ein Feed und ein Dashboard sind.

Einfach ausgedrückt ist ein Dashboard eine Art grafische Benutzeroberfläche, während Sie Daten an die Feeds senden, damit Sie sie im Internet speichern können. Sie müssen 1 Dashboard und 4 Feeds erstellen. Ich habe meinen benannt, bevor ich wusste, wie man Hühnerstall richtig buchstabiert, also verzeiht bitte die falsche Schreibweise. Wenn Sie die Feed-Namen im Arduino-Code nicht umbenennen möchten, verwenden Sie einfach die gleiche Benennung wie ich.

Erstellen Sie zuerst die vier Feeds:

1) "Chicken Coup" Dies ist für den Open/Closed-Schalter

2) "Chicken Coup Timer" Dies ist für den offenen Timer

3) "Chicken Coup Timer 2" Dies ist für den Abschluss-Timer

4) "Huhn-Coup-Fehlermeldung" Dies ist für die Fehlermeldungen

Erstellen Sie als nächstes ein Dashboard namens Chicken Coup und fügen Sie 4 Blöcke mit der blauen Schaltfläche + hinzu. Bitte beachten Sie das Bild oben für die Arten von Blöcken, die Sie platzieren sollten, sowie die Namen der Blöcke. Achten Sie darauf, die Schalterzustände genau "Offen" und "Geschlossen" zu benennen.

IFTTT:

Der IFTTT-Teil dieses Projekts bietet die Möglichkeit, eine Taste auf Ihrem Telefon zu drücken und einen Text zum Öffnen oder Schließen der Hühnerstalltür zu senden. Es ermöglicht der IFTTT-App auch, Ihnen Push-Benachrichtigungen zu senden, wenn etwas im Chicken Coup Error Message-Feed veröffentlicht wird. Wenn Sie diese Funktionen nicht wünschen, können Sie diesen Abschnitt überspringen.

Richten Sie zunächst ein IFTTT-Konto ein, falls Sie noch keins haben. Wenn Sie die von mir erstellten vorgefertigten Applets verwenden möchten, navigieren Sie einfach zu meinem Konto und schalten Sie die gewünschten Applets ein. Andernfalls müssen Sie Ihren eigenen erstellen und den oben erstellten adafruit-Feed abonnieren oder veröffentlichen.

Schritt 6: Hochladen des Codes und Bearbeiten der WLAN-SSID und des Passworts

Sie müssen diese Seite des Adafruit-Tutorials durchgehen, um Code auf den Innensender hochladen zu können.

Sie müssen diese Seite des Adafruit-Tutorials durchgehen, um Code auf den Outdoor-Empfänger hochladen zu können.

Sie müssen die RFM69-Bibliothek, die Adafruit_RGBLCDShield-Bibliothek, die NTC-Uhrenbibliothek namens simpleDSTadjust und die Ticker-Bibliothek installieren. Eine Anleitung dazu finden Sie hier.

Öffnen Sie die Arduino IDE und laden Sie den Code "Outdoor_Receiver.ino" über ein USB-Kabel auf den Outdoor-Arduino 32u4 hoch.

Öffnen Sie dann "Indoor_Transmitter.ino", öffnen Sie die Registerkarte config.h und geben Sie Ihren WLAN-Namen (SSID) und Ihr Passwort in die Anführungszeichen ein. Rufen Sie dann Ihren Adafruit. IO-Benutzernamen und Ihren IO-Schlüssel ab, indem Sie dieser Tutorial-Seite folgen, und geben Sie sie in die Registerkarte config.h ein.

Wenn Sie die Namen der Adafruit IO-Feeds geändert haben, müssen Sie den Code auf der Hauptregisterkarte Indoor_Transmitter bearbeiten. Bearbeiten Sie Folgendes:

AdafruitIO_Feed *toggleSwitch = io.feed("Chicken Coup");

AdafruitIO_Feed *timer = io.feed("Chicken Coup Timer");

AdafruitIO_Feed *timer2 = io.feed("Chicken Coup Timer 2");

AdafruitIO_Feed *error = io.feed("Huhn-Coup-Fehlermeldung");

Das sollte alles sein, was Sie tun müssen! Wenn Sie die Funktionsweise der beiden Skizzen näher verstehen möchten, habe ich den Code kommentiert. Bitte lassen Sie es mich wissen, wenn Sie Fragen haben. Viel Glück!

Empfohlen: