Wireless Home Cloud für Internet-Dinge
Ich habe viele Stunden damit verbracht, die Projekte anderer über intelligente drahtlose Dinge zu wiederholen. Dies führte mich zu der offensichtlichen Schlussfolgerung: Nach dem dritten oder vierten Projekt stellen Sie fest, dass alle nach unterschiedlichen Prinzipien und mit unterschiedlichen Technologien und Techniken ausgeführt werden, insbesondere nachdem Sie einige davon geändert oder aktualisiert haben. Dies bedeutet, dass Ihre Welt der Dinge absolut wartungsfrei wird.Mit anderen Worten, Sie müssen riesige Bibliotheken mit Spezifikationen und Codes unterstützen. Und es wird mehr Zeit benötigt, um mit all ihren Geräten fertig zu werden. Sicher sind einige organisierter als ich, aber höchstwahrscheinlich hat die Mehrheit im Kampf gegen die Entropie wenig Erfolg gehabt. Nichts für ungut.Was tun, um die Invasion von Robotern bei Ihnen zu Hause einzudämmen (und das ist auf jeden Fall unvermeidlich)? .. Es ist einfach. Die Dinge sind einfacher. Die Cloud ist schlauer.Konzept
- Geräte so einfach wie möglich: ein Standardmodul für die Kommunikation mit einer privaten Cloud. Es besteht aus einem drahtlosen Modul und Initialisierungsskripten (sowohl im Modul als auch auf dem Server). Wenn das Modul ausfällt, entsorgen Sie es und ersetzen Sie es durch ein neues Standardmodul.
- Alle Logik und Intelligenz befindet sich auf dem Server. Ein einfacher Linux-Router.
Die Dinge sind einfacher. Intelligentere Cloud
Ein winziger Server empfängt Daten von Sensoren, speichert sie und sendet Befehle an ausführende Geräte. Jetzt sind Ihre Geräte keine Menge denkender Dinge. Sie sind nur Synapsen des Gehirns des Servers. Es ist einfach und natürlich.In meinem Netzwerk gibt es zwei Arten von Geräten:- Sensoren und Steuerungen (Eingang) und
- Relais, Ventile usw. (Wochenende)
Sie alle kommunizieren mit dem Server über WLAN-Module (ESP8266 aus einem bekannten chinesischen Geschäft). Die Eingaben senden Statusinformationen an den Datenbankserver. Die Ausgänge empfangen und führen Befehle vom Server aus. Wie bereits erwähnt, haben Geräte keinen Grund.Ziel ist es, die Dinge so einfach wie möglich zu gestalten.Die gesamte Logik verbleibt auf dem Server. Auf dem Server alle Algorithmen, Trigger usw. Beispielsweise beschließt der Server, die Heizung einzuschalten, wenn die Temperatur in bestimmten Räumen für einen bestimmten Zeitraum unter ein bestimmtes Niveau fällt. Der Server beschließt, das Magnetventil für die Bewässerung im Gewächshaus zu öffnen, wenn die Bodenfeuchtigkeit zu einer bestimmten Tageszeit auf ein bestimmtes Niveau gesunken ist. Natürlich kann eine Person jederzeit eingreifen und die Kontrolle selbst übernehmen oder die Logik ändern. Der Server benachrichtigt den Eigentümer auch per SMS über kritische Ereignisse. Es kann Befehle von bestimmten Telefonen annehmen.Smart Cloud Core

Ich habe einen kleinen WLAN-Router mit OpenWRT und erweitertem Speicher verwendet, der einen Webserver und einen Datenbankserver enthalten kann - Gl-iNet 6416A kostet nicht mehr als 25 USD.Erstaunlich kleines Gerät gibt uns:- Lighttpd-Webserver zum Hosten von Schnittstellenseiten (vorinstalliert)
- PHP so sind sie interaktiv (vorinstalliert)
- MySQL-Datenbankserver zum Speichern von Daten (installiert). Jemand verwendet SQlite, kann jedoch keine gleichzeitigen Anforderungen an die Firebox verarbeiten.
Dies ist meine private Cloud. Es erstellt ein eigenes Subnetz-Netzwerk (192.168.8.1), ein eigenes WLAN-Netzwerk, auf das nur meine Mitarbeiter zugreifen können. Es hat auch eine externe Schnittstelle (WAN), die mit meinem regulären Heimrouter verbunden ist (mit der zugewiesenen Adresse 192.168.1.100). Es wird benötigt, um über mein WLAN-Heimnetzwerk auf das Bedienfeld zuzugreifen.Im Projekt verwendete Anwendungssoftware:- WinSCP - Grafik-FTP-Client für den Dateizugriff
- HeidiSQL - grafischer SQL-Client für den Datenbankzugriff
- PuTTy - SSH-Client zum Senden von Befehlen an das OpenWRT-Betriebssystem
Die aktuelle Konfiguration wird auf GitHub gespeichert .Und ja, schuld daran, ich habe ein USB-Flash-Laufwerk als Dateispeicher verwendet, obwohl ich als Erwachsener keinen NAND-Speicher verwenden sollte (mySQL-Anforderung).Standardmodul
Das WLAN-Modul (ESP8266) ist mit einer Standardskizze gewürzt. Kurz gesagt, er liest die Parameter des letzten Zugriffs auf den Zugriffspunkt und versucht, eine Verbindung zu ihm herzustellen. Wenn er fehlschlägt, startet er seinen Zugriffspunkt und eine Seite mit einem Formular für neue Zugriffsparameter. Wenn es ihm gelingt, eine Verbindung herzustellen, lädt er die für dieses Modul bestimmten Skripte vom Server herunter und führt sie aus. Module unterscheiden sich je nach MAC-Adresse.In meiner Cloud gibt es für jede MAC-Adresse einen dedizierten Ordner mit Arbeitsskripten unter der Adresse 192.168.8.1:86.Das Modul verfügt also zunächst nur über drei Skripte:AP_config - zwei Zeilen: SSID und Kennwort.init.lua - Verbindung zum Access Point mit gespeicherten Parametern aus AP_config. Wenn dies nicht erfolgreich ist, führen Sie do ("ap_request.lua") aus. Wenn erfolgreich, laden Sie funktionierende Skripte herunter und führen Sie sie aus.ap_request.lua - Fordern Sie neue Parameter für den Zugriff auf den Zugriffspunkt an und schreiben Sie sie in die Datei AP_config (falls die Verbindung mit den vorinstallierten fehlgeschlagen ist).ModulskripteVerwaltete Geräte


Ziel ist es, Peripheriegeräte so einfach wie möglich zu gestalten. Ein Modul mit zwei Relais (Lichtschaltern) besteht beispielsweise aus:- AC-DC-Netzteil
- 3,3 V Netzteilstabilisator
- ESP8266 (in diesem Fall ESP-01 mit zwei gesteuerten Pins)
- Relaismodule
- Körper
Alles über alles - 7 USD.Sensoren (Eingänge)

Ein Gerät mit einem Sensor besteht aus:- Stromversorgung
- Power Conditioner
- Wifi-Modul (wieder ESP01)
- Digitaler Temperatur- und Feuchtigkeitssensor DHT11
Alles nicht mehr als 5 USD.Es misst die Temperatur- und Feuchtigkeitswerte und sendet sie alle 3 Minuten an den Server, wo sie in der mySQL-Datenbank gespeichert werden.Management





Der ganze Spaß auf dem Server!
Das Interessanteste ist, dass ich keine herkömmlichen Bedienfelder habe. Alle Schnittstellen sind virtuell. Tasten, Schalter, Engines sind virtuell. Natürlich können Sie sie real machen und ich werde einige davon machen.Auf dieser Website können wir die Geschichte der Sensoren und Stromwerte beobachten, Lampen, Ventile usw. steuern.Sie können dem Panel jederzeit neue Geräte hinzufügen, indem Sie einfache HTML- und Javascript-Codierungsfähigkeiten verwenden.Ich habe Linkkarten mit Bildern verwendet, die in einem einfachen Programm SweetHome 3D erstellt wurden, um die Heimnavigation zu organisieren.Schalten Sie Ihre Fantasie ein
Viel mehr Leute wissen, wie man für das Web (PHP, Javascript, HTML) codiert als für Controller (C ++, Lua). Mit dieser Struktur können wir Daten und Befehle mit einfachen PHP- oder JS-Skripten empfangen, anfordern, senden. Wir können ein Lernsystem aufbauen, das sich an unsere Gewohnheiten anpassen und uns über Vorfälle informieren kann. Source: https://habr.com/ru/post/de396755/
All Articles