Inhaltsverzeichnis:

Home Automation mit Android und Arduino: Öffnen Sie das Tor, wenn Sie nach Hause kommen - Gunook
Home Automation mit Android und Arduino: Öffnen Sie das Tor, wenn Sie nach Hause kommen - Gunook

Video: Home Automation mit Android und Arduino: Öffnen Sie das Tor, wenn Sie nach Hause kommen - Gunook

Video: Home Automation mit Android und Arduino: Öffnen Sie das Tor, wenn Sie nach Hause kommen - Gunook
Video: Projekt:: Bluetooth-Protokoll mit Android hacken - Home Automation [de] 2024, September
Anonim
Hausautomation mit Android und Arduino: Öffnen Sie das Tor, wenn Sie nach Hause kommen
Hausautomation mit Android und Arduino: Öffnen Sie das Tor, wenn Sie nach Hause kommen

In diesem Instructable geht es darum, ein Hausautomationssystem einzurichten, das über eine Internetverbindung über ein Smartphone gesteuert werden soll, sodass von überall darauf zugegriffen werden kann. Darüber hinaus führt es bestimmte Aktionen aus, wenn ein Kriterium erfüllt ist (wie zum Beispiel das Licht einschalten, wenn das Smartphone mit dem Heim-WLAN-Netzwerk verbunden ist, das Tor öffnen, wenn Sie einen GPS-bestimmten Bereich betreten, oder alles andere, was Sie möchten).

Es wird eine vorhandene Android-Anwendung verwendet, die den geringstmöglichen Codierungsaufwand erfordert: einfach den Code hochladen und fertig. Das Gehirn - der Mikrocontroller - wird ein Arduino oder Arduino-kompatibles Board sein, wie ein Aruino Uno mit einem Ethernet-Shield oder ein NodeMCU ESP8266.

Um das System auszulösen, wenn eine Bedingung (GPS-Position, Zeit, usw.) erfüllt ist, verwenden wir den berüchtigten Tasker; dazu später mehr.

Bei der Realisierung des Systems wurden folgende Eckpunkte berücksichtigt:

  • Es muss billig sein.
  • Es muss von außerhalb des lokalen Heimnetzwerks (d. h. Ihrem WLAN) zugänglich sein.
  • Es muss WIRKLICH einfach und schnell aufzubauen und einzurichten sein.
  • Es muss zuverlässig sein.

Davon abgesehen kostet das ganze Projekt etwa 20€ (7,50€ für einen ESP8266, 8€ für eine Relaisplatine, der Rest für zusätzliche Hardware) und dauert ungefähr 30 Minuten, um alles einzurichten - überhaupt nicht schlecht.

Also, wenn Sie interessiert sind, folgen Sie dieser einfachen und schnellen Anleitung und richten Sie Ihre eigene ein!

Schritt 1: Einrichten der Hardware

Einrichten der Hardware
Einrichten der Hardware

Sobald Sie alle Ihre Komponenten gesammelt haben, müssen Sie zuerst alles verkabeln.

In diesem Beispiel werden wir eine Glühbirne an den ESP8266 anschließen; Denken Sie daran, dass Sie beim Arbeiten mit Netzspannungen äußerst vorsichtig sein müssen - Häuser verwenden 220 V, das kann Sie töten! Unterbrechen Sie immer die Stromversorgung, bevor Sie daran arbeiten, und suchen Sie sich fachkundige Hilfe, wenn Sie sich nicht sicher sind!

Das heißt: Um solche Spannungs- und Stromstärken (die den winzigen ESPR8266 durchbrennen) zu bewältigen, müssen wir ein geeignetes Relais verwenden (wie dieses mit 5V-Logik, geeignet für den Standard-Arduino, oder ein 3,3-V-Logikpegelrelais)., passend für die 3.3V Pinbelegung des ESP82666); die Verbindungen sind ziemlich einfach, folgen Sie dem Diagramm, das wir beigefügt haben.

Beachten Sie, dass einige Relaisplatinen (wie die von uns verlinkte) ACTIVE LOW sind; Dies bedeutet, dass Sie das Relais mit Masse verbinden müssen, um es einzuschalten, und umgekehrt. In diesem Fall bietet Homotica eine gute Lösung; Wir werden im nächsten Absatz sehen, welche.

Schritt 2: ESP8266-Konfiguration

ESP8266-Konfiguration
ESP8266-Konfiguration
ESP8266-Konfiguration
ESP8266-Konfiguration
ESP8266-Konfiguration
ESP8266-Konfiguration

Nachdem wir nun die Hardware des Automatisierungssystems eingerichtet haben, müssen wir den Mikrocontroller programmieren.

Dazu benötigen wir die Arduino-Software, um die bereitgestellte Skizze auf den ESP8266 hochzuladen; Navigieren Sie also zur Arduino-Download-Seite und holen Sie sich die für Sie am besten geeignete Version.

Installieren Sie es nach dem Herunterladen.

Nachdem wir unsere IDE installiert haben, benötigen wir die Bibliothek, die für die Funktion des Sketches erforderlich ist. Um es zu installieren, öffnen Sie die App Github Repo und wählen Sie Download über den grünen Button auf der rechten Seite.

Gehen Sie zum Download-Ordner auf Ihrem PC und entpacken Sie die Datei mit einer Software wie WinRar oder WinZip. öffne den neu erstellten Ordner "homotica-master" und kopiere den inneren Ordner namens "Homotica" in den Arduino Editor Libraries Ordner (du findest ihn normalerweise unter C:\Users\your_user_name\Documents\Arduino\libraries). Löschen Sie die restlichen Dateien in "homotica-master", wir werden sie nicht brauchen

Beim Hochladen des Codes auf den ESP8266 fehlt ein Schritt: Wir benötigen die Bibliothek, damit die Arduino IDE mit dem Board kommunizieren kann, da sie nicht offiziell unterstützt wird.

Befolgen Sie dazu diese Schritte (Credits: Github ES8266 Arduino Repo):

  • Starten Sie Arduino und öffnen Sie das Fenster Dateien> Einstellungen.
  • Geben Sie "https://arduino.esp8266.com/stable/package_esp8266com_index.json" (ohne Anführungszeichen) in das Feld Additional Board Manager URLs ein. Sie können mehrere URLs hinzufügen, indem Sie sie durch Kommas trennen.
  • Öffnen Sie den Boards Manager über das Menü Extras > Board und installieren Sie die ESP8266-Plattform (suchen Sie nach "esp8266" und laden Sie "esp8266 by ESP8266 Community" herunter).

Alles ist eingerichtet. Kümmern wir uns um den Sketch-Code.

Öffnen Sie Datei>Beispiel>Homotica>Homotica ESP8266, kopieren Sie den gesamten Code in eine neue Skizze und ändern Sie die folgenden Parameter:

  • ssid: Geben Sie hier den Namen Ihres drahtlosen Netzwerks ein
  • Passwort: Ihr WLAN-Passwort
  • IP, Gateway, Subnetz: Sie müssen diese Einstellung wahrscheinlich nicht berühren; Ändern Sie die IP, wenn Ihr ESP8266 eine andere Adresse haben soll
  • mUdpPort: der Port, den wir später im Router öffnen werden; Wenn Sie nicht wissen, was es ist, berühren Sie es nicht
  • code: ein einzigartiger 8-stelliger Code, der verwendet wird, um Ihre App zu authentifizieren; du kannst wählen was du willst.

Wenn Sie ein ACTIVE LOW-Setup verwenden, vergessen Sie nicht, homotica.setActiveLow() aufzurufen, wie im Beispielcode gezeigt!

Um es zu beenden: Fügen Sie homotica.addUsedPin(5) (wie im Beispiel gezeigt) hinzu, um dem ESP8266 mitzuteilen, welchen GPIO er verarbeiten muss, zwischen der while-Schleife und homotica.set(mUdpPort, code); lösche alle homotica.simulateUdp(…) Zeilen.

Dies ist der Code, den Sie haben sollten:

#enthalten

#include #include const char* ssid = "mywifiname"; const char* password = "wifipassword"; IP-Adresse ip(192, 168, 1, 20); IPAddress-Gateway(192, 168, 1, 1); IPAddress-Subnetz (255, 255, 255, 0); unsigned int mUdpPort = 5858; statischer String-Code = "aBc159"; Homotica homotica; Void setup () { WiFi.config (IP, Gateway, Subnetz); WiFi.begin(ssid, Passwort); Während (WiFi.status () != WL_CONNECTED) { Verzögerung (500); } homotica.addUsedPin(5); homotica.setActiveLow(); //<-- nur bei Bedarf homotica.set(mUdpPort, code); aufrechtzuerhalten. Void Schleife () {homotica.refresh (); }

Wenn alles richtig eingerichtet ist, ändern Sie die Compiler-Einstellungen aus dem Tools-Menü gemäß dem beigefügten Screenshot und wählen Sie den Port, an den Ihr ESP8266 an Ihrem Computer angeschlossen ist, unter Tools>Port.

Klicken Sie nun auf Hochladen. Ihr Mikrocontroller ist fertig eingerichtet und betriebsbereit!

Schritt 3: Router und IP

Router und IP
Router und IP
Router und IP
Router und IP

Um von jedem Netzwerk aus mit dem ESP8266 zu kommunizieren, müssen wir den Router anweisen, den Befehl einzugeben, den wir an ihn senden.

Navigieren Sie dazu zu Ihrer Router-Konfigurationsseite (normalerweise 192.168.1.1) und suchen Sie nach etwas wie "virtueller Server" oder "Portweiterleitung"; Sie können die genaue Einstellung für Ihr Router-Modell bei Google suchen.

Erstellen Sie bei der Portweiterleitung eine neue Regel, die alle Verbindungen zum ESP8266 (dem zuvor konfigurierten) über den ESP8266-Port (wieder den zuvor konfigurierten) zulässt. Nennen Sie es Homotica, geben Sie die ESP8266-IP in das IP-Feld ein und speichern Sie.

Wenn der von Ihnen verwendete Router dies nicht zulässt, machen Sie sich keine Sorgen: Sie können die App nicht über das Mobilfunknetz verwenden, aber sie funktioniert einwandfrei in Ihrem Heim-WLAN.

Um von der Außenwelt auf unseren Router zu verweisen, müssen wir seine öffentliche IP-Adresse kennen. Der Nachteil ist, dass die meisten Internetanbieter Ihnen keine statische IP geben, sondern eine dynamische, die sich im Laufe der Zeit ändert.

Aber warten Sie, wir können das lösen!

Gehen Sie zu NoIp, erstellen Sie ein neues Konto und erstellen Sie dann einen neuen Hostnamen (siehe angehängtes Bild). Notieren Sie sich Ihren Hostnamen (in meinem Beispiel: https://yourhostname.ddns.net) und fahren Sie mit dem nächsten Schritt fort.

(Hinweis: Möglicherweise möchten Sie, dass Ihr PC Ihre Router-IP automatisch mit Ihrem NoIp-Hostnamen synchronisiert: Laden Sie dazu die kostenlose App herunter.)

Schritt 4: App-Konfiguration

App-Konfiguration
App-Konfiguration
App-Konfiguration
App-Konfiguration
App-Konfiguration
App-Konfiguration

Kümmern wir uns um die App, ja?

Laden Sie die App von der Play Store-Seite herunter und öffnen Sie sie.

Öffnen Sie das linke Menü, wählen Sie Boards und erstellen Sie ein neues. Wir werden die Parameter ausfüllen, die wir zuvor im ESP8266-Skizzencode definiert haben:

  • Arduino Name: was du willst (lass dies ESP8266 sein)
  • Host-IP: das könnte sein

    • die statische IP des Routers, auf die über den NoIp-Link https://yourhostname.ddns.net verwiesen wird
    • die ESP8266-IP, wenn Sie sie nur innerhalb Ihres WLAN-Heimnetzwerks verwenden möchten 192.168.1.20
  • Host-Port: der, den wir zuvor eingerichtet und geöffnet haben 5858
  • Auth-Code: der 8-stellige Code, den wir in der Skizze aBc195 definiert haben

Speichern. Öffnen Sie das Menü erneut, erstellen Sie ein neues Gerät; Wir werden eine Glühbirne zur Demonstration anbringen:

  • Name: Licht
  • Schaltflächenname: Wir werden On verwenden, wählen Sie, was Sie bevorzugen
  • Pin-Nummer: der Pin, an dem wir die Glühbirne befestigt haben. Vorsichtig sein! Beim ESP8266 entsprechen die Pin-Beschriftungen (D1, D2…) NICHT dem GPIO-Pin-Namen! Suchen Sie in Google, um herauszufinden, welcher Pin welcher GPIO ist (in unserem Beispiel: Pin 5 ist mit D1 gekennzeichnet)
  • Verhalten: Sie können zwischen Ein- und Ausschalten wählen, den Zustand des "Schiebens" (Ein- und Ausschalten) des Geräts ändern.

Speichern. Wenn Sie bis jetzt alles richtig eingerichtet haben, sollte sich die Glühbirne durch Drücken von On einschalten.

Cool, nicht wahr?

Jetzt können Sie Spaß haben, weitere Geräte, noch mehr Boards hinzuzufügen und sie in Szenen anzuordnen.

Aber um das, was Sie gerade erstellt haben, mit voller Leistung zu nutzen, müssen wir Tasker verwenden.

Schritt 5: Tasker-Integration

Tasker-Integration
Tasker-Integration
Tasker-Integration
Tasker-Integration
Tasker-Integration
Tasker-Integration

Wenn Sie Tasker besitzen oder kaufen möchten, lesen Sie weiter! Wir werden es verwenden, um Homotica zu sagen, was zu tun ist und wann es zu tun ist.

In diesem Beispiel schalten wir das Licht ein, wenn wir uns mit unserem Heim-WLAN verbinden UND die Zeit zwischen 16:00 und 18:00 Uhr ist.

Tasker öffnen; Erstellen Sie eine neue Aufgabe (benennen wir sie Turn On Light), wählen Sie Hinzufügen>Plugin>Homotica, drücken Sie das Stiftsymbol, um das Plugin zu konfigurieren. Wählen Sie Licht>Ein und Speichern. Zurück zum Hauptmenü erstellen Sie ein neues Profil, wählen Sie Status>WLAN verbunden, geben Sie den Wifi-Namen der Tour in das Feld SSID ein; Drücken Sie zurück und wählen Sie Licht einschalten, um die Aktivität einzugeben. Drücken Sie nun lange auf den linken Teil des neu erstellten Profils, wählen Sie Hinzufügen>Zeit>Von 16:00 bis 18:00 Uhr und schließen Sie dann.

Wir sind fertig. Unser Licht geht an, wenn wir zu der von uns eingestellten Zeit nach Hause kommen.

Das ist praktisch!

Jetzt sind Sie an der Reihe: Werden Sie kreativ mit Homotica und Tasker und vergessen Sie nicht, uns zu zeigen, was Sie geschaffen haben!

Empfohlen: