Cloud domestique sans fil pour les choses sur Internet
J'ai passé de nombreuses heures à répéter les projets des autres sur des choses sans fil intelligentes. Cela m'a conduit à la conclusion évidente: après le troisième ou le quatrième projet, vous constatez qu'ils sont tous exécutés sur des principes différents, en utilisant des technologies et des techniques différentes, surtout après avoir modifié ou mis à niveau certains d'entre eux. Cela signifie que votre monde de choses devient absolument sans entretien.En d'autres termes, vous devez prendre en charge d'énormes bibliothèques de spécifications et de codes. Et plus de temps est nécessaire pour faire face à tous leurs appareils. Certes, certains sont plus organisés que moi, mais, très probablement, la majorité dans la lutte contre l'entropie ont obtenu peu de succès. Aucune infraction.Que faire pour freiner l'invasion des robots chez vous (et c'est inévitable dans tous les cas)? .. C'est simple. Les choses sont plus faciles. Le cloud est plus intelligent.Concept
- Des appareils aussi simples que possible: un module standard pour communiquer avec un cloud privé. Il se compose d'un module sans fil et de scripts d'initialisation (à la fois dans le module et sur le serveur). Si le module échoue, jetez-le et remplacez-le par un nouveau module standard.
- Toute la logique et l'intelligence se trouvent sur le serveur. Un simple routeur Linux.
Les choses sont plus faciles. Cloud plus intelligent
Un petit serveur reçoit les données des capteurs, les stocke et envoie des commandes aux appareils exécutifs. Maintenant, vos appareils ne sont plus une foule de choses réfléchies. Ce ne sont que des synapses du cerveau du serveur. C'est simple et naturel.Il existe deux types d'appareils sur mon réseau:- Capteurs et commandes (entrée) et
- Relais, vannes, etc. (week-end)
Ils communiquent tous avec le serveur via des modules wifi (ESP8266 d'un magasin chinois bien connu). Les entrées envoient des informations d'état au serveur de base de données. Les sorties reçoivent et exécutent des commandes du serveur. Comme je l'ai déjà mentionné, les appareils n'ont aucune raison.Le but est de rendre les choses aussi simples que possible.Toute logique reste sur le serveur. Sur le serveur, tous les algorithmes, déclencheurs, etc. Par exemple, le serveur décide d'allumer le chauffage si la température dans certaines pièces descend en dessous d'un certain niveau pendant un certain temps. Le serveur décide d'ouvrir l'électrovanne d'irrigation dans la serre si l'humidité du sol a chuté à un certain niveau à un certain moment de la journée. Naturellement, une personne peut toujours intervenir et prendre le contrôle de ses propres mains ou changer la logique. Le serveur informe également le propriétaire des événements critiques par SMS. Il peut accepter des commandes de certains téléphones.Noyau de cloud intelligent

J'ai utilisé un petit routeur sans fil avec OpenWRT et une mémoire étendue pouvant contenir un serveur Web et un serveur de base de données - Gl-iNet 6416A ne dépasse pas 25 USD.Un appareil incroyablement petit nous donne:- Serveur Web Lighttpd pour l'hébergement de pages d'interface (préinstallé)
- php afin qu'ils soient interactifs (préinstallés)
- Serveur de base de données MySQL pour stocker les données (installé). Quelqu'un utilise SQlite, mais il n'est pas en mesure de gérer les demandes simultanées au foyer.
Ceci est mon cloud privé. Il crée son propre réseau de sous-réseau (192.168.8.1), son propre réseau wifi, accessible uniquement à mes affaires. Il dispose également d'une interface externe (WAN) connectée à mon routeur domestique habituel (avec l'adresse attribuée 192.168.1.100). Il est nécessaire d'accéder au panneau de contrôle depuis mon réseau wifi domestique.Logiciels d'application utilisés dans le projet:- WinSCP - Client FTP graphique pour l'accès aux fichiers
- HeidiSQL - client SQL graphique pour l'accès à la base de données
- PuTTy - Client SSH pour envoyer des commandes au système d'exploitation OpenWRT
La configuration actuelle est stockée sur GitHub .Et oui, à blâmer, j'ai utilisé un lecteur flash USB comme stockage de fichiers, bien que chez un adulte, vous ne devriez pas utiliser de mémoire NAND (exigence mySQL).Module standard
Le module wifi (ESP8266) est assaisonné d'un croquis standard. Bref, il lit les paramètres du dernier accès au point d'accès, tente de s'y connecter, s'il échoue, il lance son point d'accès et une page avec un formulaire pour les nouveaux paramètres d'accès. Et s'il parvient à se connecter, il télécharge les scripts destinés à ce module depuis le serveur et les exécute. Les modules diffèrent par leur adresse MAC.Dans mon cloud pour chaque adresse MAC, il y a un dossier dédié avec des scripts de travail à l'adresse 192.168.8.1:86Donc, initialement le module n'a que trois scripts:AP_config - deux lignes: SSID et mot de passe.init.lua - connexion au point d'accès avec des paramètres enregistrés à partir d'AP_config. En cas d'échec, exécutez do ("ap_request.lua"). En cas de succès, téléchargez des scripts de travail et exécutez-les.ap_request.lua - demande de nouveaux paramètres d'accès au point d'accès, écrivez-les dans le fichier AP_config (si la connexion avec ceux préinstallés a échoué).Scripts de moduleAppareils gérés


L'objectif est de rendre les périphériques aussi simples que possible. Par exemple, un module à deux relais (interrupteurs d'éclairage) se compose de:- Alimentation AC-DC
- Stabilisateur d'alimentation 3,3 V
- ESP8266 (dans ce cas, ESP-01 avec deux broches contrôlées)
- modules relais
- corps
Tout sur tout - 7 USD.Capteurs (entrées)

Un appareil avec capteur se compose de:- Alimentation
- Conditionneur de puissance
- Module Wifi (encore ESP01)
- Capteur numérique de température et d'humidité DHT11
Tous pas plus de 5 USD.Il mesure les relevés de température et d'humidité et les envoie au serveur toutes les 3 minutes, où ils sont stockés dans la base de données mySQL.La gestion





Tout le plaisir sur le serveur!
La chose la plus intéressante est que je n'ai pas de panneaux de contrôle conventionnels. Toutes les interfaces sont virtuelles. Les boutons, commutateurs, moteurs sont virtuels. Bien sûr, vous pouvez les rendre réels et j'en ferai certains.En utilisant ce site, nous pouvons observer l'historique des capteurs et des valeurs actuelles, nous pouvons contrôler les lampes, les vannes, etc.Vous pouvez toujours ajouter de nouveaux appareils au panneau en utilisant de simples compétences de codage HTML et Javascript.J'ai utilisé des cartes de liens avec des images construites dans un programme simple SweetHome 3D pour organiser la navigation à domicile.Allumez votre imagination
Beaucoup plus de gens savent coder pour le web (PHP, Javascript, HTML) que pour les contrôleurs (C ++, Lua). En utilisant cette structure, nous pouvons recevoir, demander, envoyer des données et des commandes avec de simples scripts php ou js. Nous pouvons construire un système d'apprentissage qui peut s'adapter à nos habitudes, nous informer des incidents. Source: https://habr.com/ru/post/fr396755/
All Articles