Smart Home von einem alten Smartphone oder Antipattern der Heimautomation

Hallo liebe Leser! Eine andere Geschichte darüber, wie der Manager des mittleren Glieds, der Staub von den abgestandenen Drüsen im Regal bläst, dies tut, was dazu führt, dass Profis aller Art Schmerzen in den Augen haben. Aber es funktioniert, Amigo!



Ich gebe zu, diesmal wollte ich alles richtig machen. Nahm den Raspbery Pi aus dem Regal. Der Kuchen ist der gleiche, den ich bereits in meinem Roboter-Rasenmäher verwendet habe: ein Link zu einem Beitrag und ein Link zu einem anderen Beitrag . Er hat Mücken genommen, alles hätte auf mqtt funktionieren sollen, aber du rennst nirgendwo vor dir weg. Unter dem Schnitt ein Meer von Rechen, Fahrrädern, schlechtem Löten, die Hölle für einen Perfektionisten.

Bild

Alles begann mit dem Wunsch, mein Noorik- Projekt zu ergänzen, das ich auf mein Tor setzte. Kurz gesagt - dies ist eine DIY-Lösung für den GSM-Block, der das Tor öffnet.
Um das Tor zu öffnen, müssen bestimmte Kontakte auf der Platine geschlossen werden.

Bild

Ersetzte Arduino durch esp8266 und erstellte ein Webinterface mit einer geöffneten Schaltfläche. Es stellte sich als interessant heraus, aber dann wollte ich eine einzige Schnittstelle zum Öffnen von Schiebetoren, Garagentoren und Toren.

Als ich anfing, meine gesamte Wunschliste zu malen, stellte sich heraus, dass ich dasselbe brauchte:

  1. Kesselsteuerung
  2. Sicherheitssystem
  3. mobile Schnittstelle zu Überwachungskameras
  4. Temperaturdaten im Haus und auf der Straße

Backend


Malinka funktionierte gut, aber beim nächsten Einschalten hörte es einfach auf, sich einzuschalten. Die Power-LED leuchtet zuerst auf und erlischt dann in 3-5 Sekunden sanft. Das Element (Polyfuse T075) in der Nähe der Steckdose ist sehr heiß. Und hier juckten schon Hände, um mqtt, blackger, Kurtisanen und andere Köstlichkeiten einzuladen.



Es spielt keine Rolle, der Nutzen seines Schicksals wartete auf einen anderen Patienten. Orange pi Null ins Studio. Wie sehr ich nicht unter diesem Wunder des chinesischen Denkens gelitten habe - einem so kleinen Kuchen Leben einzuhauchen, stellte sich als eine Angelegenheit heraus, die meine Stärke überstieg. Ich habe Firmware auf den offiziellen und linken Websites heruntergeladen, Firmware von meinen Händen gekauft und gegen Kryptowährung eingetauscht. Ich glaube, ich bin gerade auf eine defekte Probe gestoßen.



Ich erkannte, dass das Schicksal mich in die Arme des Fahrradbaus drückte, und um meine Freude zu verbergen, stürzte ich mich mit meinem Kopf in diese Aktivität.



Zunächst entschied ich mich für ein Smartphone als Headunit (Broker, Server). Sie wissen, dass diese alten Dinge einfach nicht verschwinden. Ich habe es benutzt, meine Frau, meine Tochter, dann habe ich meinen Roboter mit einer Schneefräse von diesem Smartphone aus gesteuert und versucht, ihn im Fluss zu ertränken (ich habe den Moskauer Fluss nie erreicht, aber diese Pfeife hat in meiner Heimatstadt Pakhra ein Rascheln verursacht). Und hier ist sie - ein neues Leben für das Samsung Galaxy S3.

Installierter Palapa-Webserver und FTP-Server auf dem Smartphone. Die Idee ist in einer MySQL-Datenbank mit nur drei Tabellen einfach: Werte, Protokolle, Regeln.

  • In der Wertetabelle Schlüssel / Wert-Paare.
  • Die Protokolltabelle zeigt den Verlauf der Wertänderungen.
  • In der Regeltabelle sind die Regeln zum Ändern einiger Zellen abhängig vom Wert in anderen.

Alle diese Farm dient einem PHP-Skript, das Daten aus der Datenbank durch eine http-Anfrage schreibt oder ausgibt, und dient auch geplanten Regeln.
Ich verstehe nicht einmal, wie hoch die Programmierebene sein sollte, damit eine Person sie sehen kann, aber ich bin bereit, Ihnen den Code zu zeigen - schreiben Sie in das LAN.

Frontend




Wirf keine Steine ​​auf mich, ich gestehe mich. Ich habe Bootstrap verwendet. Ja, sündig.
Der erste Gedanke war, alles über Phonegap zu erledigen und eine vollständige App zu erhalten. Ich werde mehr sagen, ich habe genau das getan, aber am Ende hat sich die Online-Version als effizienter herausgestellt. Ich und meine Frau am Telefon haben gerade eine Verknüpfung auf dem Desktop erstellt, um die gewünschte Seite auf der internen IP zu öffnen.

Jedes Element reagiert auf ein Klickereignis + Der Status von Ajax wird durch Anforderungen an den Server überprüft und bei Bedarf geändert. Dies ist sehr praktisch, da Sie alle Änderungen sehen, die durch die Regel in Kraft getreten sind oder von einem anderen Benutzer vorgenommen wurden.
Eigentlich ist der Code auf Anfrage ohne Probleme.

ESP-8266




Ich habe verschiedene Module und reines ESP-8266 ausprobiert. Infolgedessen erwies sich das LOLIN V3-Modul als die bequemste Option.



Stromversorgung über Schaltnetzteile.



Die Gate-Module benötigten ein Relais und ich hatte Bedenken, dass die Kontaktrelais ausgelöst würden. Infolgedessen funktionieren sowohl Festkörper- als auch Kontaktkörper. Das Problem ist, dass eine große Anzahl von Modulen auch ohne Beschriftung niedrig ausgelöst wird.



Beim Einschalten des Moduls tritt eine kurzfristige Öffnung auf, die beim Einschalten der Stromversorgung zu einer unwillkürlichen Öffnung führt. Es wird gelöst, indem auf Null gezogen und der Status deklariert wird, bevor der Ausgabetyp deklariert wird.

digitalWrite(rele, 1); digitalWrite(rele2, 1); pinMode(rele, OUTPUT); pinMode(rele2, OUTPUT); 

Infolgedessen sieht das Modul für die Garagenbaugruppe so aus. Der PIR-Sensor zur Bewegungserkennung wird sanft in die native Haut geknabbert.



Im Heizraum ist mein Heizkessel sehr einfach und von einer komplexen Automatisierung ist keine Rede.



Zusätzlich dient jeder Kreislauf einer separaten Pumpe.



In Reihe mit den Maschinen wurden Relais zur Steuerung der Pumpen und des Kessels eingeschaltet.



Schiebt sanft die gesamte Wirtschaft in den Schild.



Firmware


Ich entschied mich, die Arduino IDE für die Firmware zu verwenden, um mich nicht mit Nodemcu und Lua herumzuschlagen. Im Internet und insbesondere bei GT eine riesige Menge an Informationen für Anfänger.
Von der interessanten, scheint mir, die Funktion der Verbindung zu WiFi. Tatsache ist, dass es in meinem Haus 4 WLAN-Netzwerke gibt, die hinzugefügt werden können. Um den Netzwerknamen nicht starr festzulegen, scannen wir zuerst die verfügbaren Netzwerke.

SetupWiFi () Code
 void setupWiFi() { WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); while(WiFi.status() != WL_CONNECTED) { int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) Serial.println("no networks found"); else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { Serial.println(""); Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*"); j=0; ssid=WiFi.SSID(i); Serial.print("Connecting"); ssid.toCharArray(charBuf, 50); WiFi.begin(charBuf,WIFI_PASS); while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); j++; if(j>20){ break; } } if((WiFi.status() == WL_CONNECTED)){ break; } } } } Serial.println("Connected"); Serial.println(WiFi.localIP()); } 


Wenn der automatische Modus des Kesselraums eingeschaltet ist, werden die Außentemperatur und die Temperatur des Kühlmittels gemäß dem Zeitplan überprüft.

  • Bei Temperaturen unter 14 ° C wird der warme Boden des ersten Stocks eingeschaltet.
  • Bei Temperaturen unter 4 ° C sind alle Stromkreise eingeschaltet.

Die Temperatur des Kühlmittels wird gemäß der Tabelle in Abhängigkeit vom Rohrquerschnitt und der Außentemperatur ausgewählt. Bei Erreichen der gewünschten Raumtemperatur schaltet sich der Kessel aus. Bei allen wurde eine bestimmte Hysterese angewendet, um die Übergangswerte zu glätten.

Das Sicherheitssystem arbeitet noch einfacher. In der Tabelle gibt es eine Regel, dass bei eingeschaltetem Sicherheitssystem SMS über die API eines der Dienste gesendet werden, wenn eine Bewegung an einem der PIR-Sensoren erkannt wird.

Pläne


  • Erstellung einer Online-Version auf einem Remote-Server und Synchronisierung von Änderungen für die Möglichkeit der Fernsteuerung.
  • Anzeigen von Daten von GSM / GPS-Beacons im Auto;
  • Öffnen der Tore, wenn unsere Autos in einem bestimmten Bereich erscheinen;
  • Verbindung zum Fernbedienungssystem;

Abstimmung per Foto. Welches Projekt als nächstes zu tun?


Beenden Sie den Delta 3D-Drucker an den Konstruktionsstiften


Stabilisator für Spiegelreflexkamera


Vielen Dank für Ihre Aufmerksamkeit. Mit dir war SlavaGik.

Source: https://habr.com/ru/post/de405557/


All Articles