Maison intelligente à partir d'un vieux smartphone ou anti-modèles domotiques. EasyHome - contrôle de la maison intelligente depuis iOS, Android, Windows Contrôle de la maison intelligente depuis Android

Nouveaux articles

● 9.1. IoT Manager - Contrôle de la maison intelligente via application mobile

IoT Manager est une application mobile pour téléphones et tablettes qui combine un écran pour afficher les données des capteurs et une télécommande pour contrôler les actionneurs. Il existe des versions pour Android et iOS, qui peuvent être téléchargées depuis GooglePlay et AppStore www.iotmanager.ru. Mais avant de télécharger l’application, choisissons un courtier. En tant que courtiers, nous choisissons le service CloudMQTT.com (https://www.cloudmqtt.com/), où vous pouvez créer un compte gratuit (suivez le lien Panneau de contrôle). Pour vous inscrire, vous devez entrer votre adresse E-mail(comme identifiant) et mot de passe (voir Fig. 9.2).

Riz. 9.2. Inscription au service CloudMQTT.com.

Nous allons immédiatement au panneau de contrôle et créons un courtier (cliquez sur le bouton +Créer). Saisissez le nom, sélectionnez le data center (Europe ou USA), plan tarifaire- libérez Cute Cat et enregistrez (Fig. 9.3). Vous pouvez créer plusieurs courtiers.

Riz. 9.3. Inscription d'un courtier dans le service CloudMQTT.com.

Cliquez maintenant sur le bouton Détails (voir Fig. 9.4).

Riz. 9.4. Accédez aux paramètres du courtier sélectionné.

Nous entrons dans les paramètres (Fig. 9.5). Nous avons besoin des éléments suivants :

Nom d'hôte m13.cloudmqtt.com ;
. port 18274 (pour croquis EDI Arduino);
. Port WebSockets 38274 (pour application mobile).

Il existe également un gestionnaire d'utilisateurs dans lequel vous pouvez créer des utilisateurs pour accéder aux données du courtier et leur attribuer des droits (lecture, écriture). Dans le champ Sujet, saisissez # (pour tous les sujets) (voir Fig. 9.6).

Riz. 9.5. Paramètres du courtier sélectionné.

Riz. 9.6. Création d'utilisateurs pour accéder au courtier.

Vous pouvez désormais télécharger et installer l'application mobile IoTManager. Lançons-nous. Des réglages doivent être effectués. Cliquez sur Paramètres (Fig. 9.7) et dans le formulaire qui apparaît, saisissez les coordonnées de votre courtier (Fig. 9.8) :

Nom d'hôte MQTT - m13.cloudmqtt.com ;
. Port Websocket MQTT - 38274 ;
. Nom d'utilisateur MQTT - nodemcu1 ;
. Mot de passe MQTT.

Riz. 9.7. Le menu principal de l'application IoTManager.

Riz. 9.8. Fenêtre des paramètres du courtier.

Nous allons maintenant à la page Tableau de bord et devrions voir la connexion établie (Fig. 9.9). L'inscription Aucune donnée ne doit pas vous dérouter - les données n'ont pas encore été transférées vers les sujets.

Riz. 9.9. Connexion réussie au courtier.

Toutes les fenêtres sont-elles fermées ? Les lumières sont-elles éteintes ? Est-ce que quelqu'un s'est introduit dans l'appartement ? Si votre logement est connecté à Internet, un simple coup d’œil sur l’écran de votre smartphone suffit pour savoir si tout est en ordre. Cela devient possible grâce aux systèmes de maison intelligente. Et le meilleur, c’est que vous pouvez contrôler votre maison de n’importe où. Il vous suffit d'appuyer sur les boutons de l'écran de votre smartphone pour tamiser les lumières du salon, régler le chauffage ou allumer la télévision.

Dans le système de chauffage, connexion avec appareil mobile fournit un thermostat intelligent. Pour les fenêtres, cette tâche est effectuée par un capteur qui enregistre l'ouverture et la fermeture des ouvrants. Et le téléviseur, le lampadaire ou la cafetière sont connectés au réseau via des prises intelligentes.

Rééquipement simple du matériel

Aucun perçage, câblage ou pénétration murale n’est requis. De nombreux appareils domestiques intelligents peuvent être sécurisés avec du ruban adhésif double face ordinaire. Ils sont alimentés par des piles ou des batteries rechargeables, et les commandes de contrôle et les données des capteurs peuvent être transmises par signal radio.

Sélectionnez des produits pour maison intelligente, connectez-vous à votre smartphone via Bluetooth ou utilisez votre maison Réseau Wi-Fi. Toutefois, si nous parlons de concernant le contrôle de plusieurs appareils et sur plusieurs étages, la communication s'effectue souvent via un point de contrôle central supplémentaire de la maison intelligente.

Le centre de contrôle, quant à lui, est connecté au routeur et fournit une connexion au smartphone et à Internet. De plus, il vous permet de contrôler tous les appareils afin que, par exemple, lorsque les résidents quittent la maison, tous les appareils électriques soient automatiquement éteints et le système de sécurité activé.

Pour la construction système similaire vous n’avez pas besoin de connaissances techniques remarquables ni de beaucoup de temps. Le plus souvent, une heure ou deux suffisent pour installer et configurer tous les appareils. CHIP vous présentera six applications qui seront particulièrement utiles lors du lancement des fonctionnalités de maison intelligente. Dans le même temps, nous nous sommes concentrés sur la sécurité et les économies d'énergie.

Applications pour la maison intelligente

Bienvenue Netatmo : Caméra réseau avec reconnaissance faciale

L'application mobile Netatmo Welcome vous indiquera qui se trouve actuellement dans la maison. Si la caméra vidéo ne parvient pas à identifier une personne par son visage, elle commence à enregistrer une vidéo et vous en informe. Lorsque vous êtes chez vous, l'application peut vous informer des objets en mouvement pris dans la lentille ou des sons d'alarme captés par des microphones (par exemple, ceux d'un détecteur de fumée). Les vidéos sont enregistrées localement sur la carte SD incluse ou Serveur ftp. L'enregistrement aussi accès à distance pour la vidéo, les images sont fournies gratuitement, mais pour une caméra vidéo, vous devrez payer un paiement unique d'environ 17 000 roubles.

Plateformes : Android, iOS

Yale ENTR : ouvrir la porte d'entrée via un smartphone

Lorsque vous utilisez ENTR Smart Lock ou August Smart Lock, vous pouvez laisser la clé de votre porte d'entrée à la maison. Après tout, la serrure électronique s'ouvrira lorsque vous glisserez votre doigt de haut en bas dans l'application. La serrure reçoit la commande d'ouverture via un message crypté connexion Bluetooth Batterie faible. Lorsque vous n'êtes pas chez vous, vous pouvez accorder un accès limité dans le temps à la maison à des connaissances ou à des artisans appelés. Si une personne vivant avec vous souhaite quand même ouvrir la porte avec une clé ordinaire, c'est possible. La serrure intelligente ENTR (environ 25 000 roubles) est installée à l'intérieur de la porte et n'est pas visible de l'extérieur.

Plateformes : Android, iOS

Gigaset Elements : protéger votre maison des invités indésirables

Avec le kit de démarrage Gigaset Elements, vous pouvez rendre votre maison plus sûre pour seulement 12 000 RUB. Le package de départ comprend un point de contrôle central, un capteur de mouvement et un capteur d'effraction de porte. Contrairement à d'autres systèmes de sécurité, le capteur de porte détecte une tentative d'effraction (en fonction du niveau de bruit). Dans ce cas, vous recevrez une notification via l'application sur votre smartphone. Avec lui, vous pouvez également activer le mode domicile ou absent et définir l'heure à laquelle le système de sécurité doit être activé. Un capteur d'ouverture de fenêtre, une caméra et une sirène sont disponibles en option.

Plateformes : Android, iOS

Réseau domestique Panasonic : une protection complète pour toutes les occasions

Le système de sécurité Panasonic Smart Home vous alertera par un appel téléphonique même si vous êtes hors ligne. Grâce à une connexion Internet, l'application mobile Panasonic Home Network System vous informera également d'un incident. Le déclencheur d'alarme peut être l'un des capteurs de porte (fenêtre), un capteur de bris de verre ou un capteur de fuite d'eau du Starter Kit Plus (environ 20 000 roubles). Lors de l'installation de modules matériels supplémentaires, l'application vous permet également de surveiller ce qui se passe à l'intérieur ou à l'extérieur de votre maison, d'allumer ou d'éteindre les appareils électroménagers, de contrôler l'éclairage, téléphone fixe et beaucoup plus.

Plateformes : Android, iOS

eQ-3 Homematic IP : Contrôle du chauffage via smartphone

L'eQ-3 offre une option pratique pour contrôler la température ambiante via un smartphone à l'aide de Homematic IP. Lorsqu'ils sont configurés via l'application, les thermostats de radiateur et les capteurs de fenêtre sont connectés à un centre de contrôle central (ce qui vous coûtera environ 5 000 roubles) et affectés à la pièce. Les thermostats d’une même pièce sont alors automatiquement synchronisés les uns avec les autres. Et si une fenêtre s'ouvre dans la pièce, ils réduisent l'intensité du chauffage. Vous pouvez également économiser de l'énergie grâce aux programmes de chauffage, qui peuvent être facilement définis via une application mobile pour chaque jour et pour chaque pièce - très pratique.

Il n'y a pas si longtemps, un module Z-Wave pour Raspberry Pi a été introduit - RaZBerry, qui transforme un mini-ordinateur en un contrôleur de maison intelligente à part entière. La gestion du réseau Z-Wave s'effectue à l'aide d'une interface web utilisant l'API HTTP/JavaScript. Grâce à JavaScript, vous pouvez créer un ensemble de fonctions d'automatisation (allumer/éteindre les lumières, vérifier la température, interroger un capteur de mouvement, etc.), qui peuvent ensuite être exécutées en envoyant une requête HTTP.

Le produit du même nom de la société OpenRemote permet de créer des applications mobiles pour une maison intelligente sans programmation et peut être utilisé dans une seule application différentes technologies: Z-Wave, KNX, X10, ZigBee, contrôle informatique via ssh, etc.

OpenRemote est un serveur qui exécute toutes les commandes et un concepteur d'interface dans lequel vous créez des boutons, des commutateurs, des étiquettes, etc. et attribuez des commandes à ces éléments, dans notre cas, il s'agit de requêtes HTTP pour exécuter des fonctions JavaScript sur le serveur Z-Wave.

Ensuite, je vais vous expliquer point par point comment créer une télécommande pour maison intelligente pour iPhone et Android ! Et voici à quoi ressemblera notre application lorsque nous aurons terminé :

Il y a beaucoup de photos sous la coupe.

1. Création d'un réseau Z-Wave à l'aide d'un contrôleur Raspberry Pi + RaZberry

  • Installation du logiciel RaZberry sur Raspberry Pi
  • Ajout d'appareils Z-Wave
  • Vérification du fonctionnement de l'appareil
2. Installation du contrôleur OpenRemote et de l'application mobile

3. Créer la conception de l'application et la logique de son fonctionnement

  • Développement de conception
  • Association de boutons avec des commandes
4. Résumé

Création d'un réseau Z-Wave à l'aide d'un contrôleur Raspberry+RaZberry

RaZberry est une carte connectée au Raspberry Pi via GPIO, permettant de créer et de gérer un réseau Z-Wave. Pour une meilleure compréhension, veuillez lire la FAQ. La carte est livrée avec un logiciel qui doit être installé.

Installation du logiciel RaZberry sur Raspberry

Le programme d'installation ne prend en charge que les distributions basées sur Debian (Raspbian, Xbian, etc.). Cependant, vous pouvez installer manuellement le logiciel sur OpenElec et d'autres systèmes d'exploitation.
Exécutez la commande pour installer le logiciel Z-Way :
wget -q -O - http://razberry.z-wave.me/install | sudo bash
Après l'installation, vous devez redémarrer le Raspberry Pi pour appliquer les modifications au port série.

Pour accéder au panneau de commande de la maison intelligente, accédez à http://IP_OF_YOUR_RASPBERRY:8083. L'interface du programme est très simple, il ne sera pas difficile de la comprendre, il existe une documentation. Les navigateurs suivants ont une compatibilité maximale avec l'interface : Chrome, Safari, Firefox ; autres navigateurs : IE, Opera peuvent ne pas fonctionner correctement.

Ajout d'appareils Z-Wave

Déterminons la liste des équipements utilisés :
- Relais Fibaro Single Switch 3kW 2 pcs.
- Capteur d'ouverture de porte/fenêtre et de température Capteur de porte/fenêtre Fibaro 1 pc.

Dans le menu du bas, sélectionnez Mode expert. À l'aide du menu supérieur, accédez à l'onglet Réseau → Gestion du réseau et appuyez sur Allumer (ré)appareil, cela lancera le processus d'attente que l'appareil soit connecté au réseau, appuyez maintenant trois fois sur le bouton de service de l'appareil pour que le contrôleur le voie et l'ajoute.

Vérification du fonctionnement de l'appareil

Assurons-nous que l'appareil fonctionne. Allez dans l'onglet Configuration des appareils, cliquez sur le seul appareil ajouté dans la colonne de gauche et cochez Étape de l'entretien doit être L'entretien a été réussi et il ne devrait y avoir aucun point ou Ø entre les plus.

Si l'entretien n'est pas terminé (il y a des points et des signes Ø), alors vous pouvez le répéter, pour cela cliquez en bas de l'écran Actions supplémentaires → Forcer la répétition de l'entretien(Le mode expert doit être activé pour voir ce menu).
Après un entretien réussi, sur le même onglet Configuration des appareils vous pouvez configurer certains paramètres de l'appareil (n'oubliez pas d'appliquer les paramètres à l'aide du Appliquer les paramètres à cet appareil en bas de l'écran, et réveiller également l'appareil s'il fonctionne sur piles) :

Pour gérer l'appareil, allez dans l'onglet Gestion des appareils → Commutateurs

À propos de l'API d'automatisation fournie

Après nous être assuré que tous les appareils fonctionnent correctement, essayons maintenant de les contrôler à distance. Il existe plusieurs manières :

1. Utilisation de l'API HTTP/JSON
2.C en utilisant Javascript API

API HTTP/JSON utilise une syntaxe simple pour gérer les appareils.
Vous pouvez allumer la lumière depuis le navigateur :
http://192.168.1.113:8083/ZWaveAPI/Run/devices.instances.SwitchBinary.Set(255)
Ou demander la température :
http://192.168.1.113:8083/ZWaveAPI/Run/devices.instances.commandClasses.data.val.value
API JavaScript permet d'écrire divers scripts automatisation, par exemple : allumer/éteindre la lumière, interroger le capteur, obtenir la température, éteindre la lumière 2 minutes après l'avoir allumée. Ces scripts peuvent fonctionner soit de manière indépendante (par exemple : la nuit la lumière ne s'allume qu'à 15 %, pour ne pas aveugler les yeux), soit être appelés à distance via API HTTP/JSON.

Script pour allumer la lumière :
SwitchOn = fonction (N, I) ( zway.devices[N].instances[I].SwitchBinary.Set(255); )
Appel du script d'interrupteur d'éclairage :
Malheureusement appel direct aux appareils utilisant l'API HTTP/JSON d'OpenRemote est problématique pour plusieurs raisons :

1. Les caractères doivent être recodés en UTF-8 dans le constructeur OpenRemote
2. Lors de l'interrogation des capteurs, OpenRemote attend « on » ou « off » et les capteurs Z-Wave peuvent envoyer 255 ou 0.
3. Pour chaque appareil, vous devrez écrire votre propre demande, et en utilisant JS, vous ne pouvez utiliser qu'une seule fonction pour activer divers appareils, en modifiant uniquement le paramètre de fonction dans la demande - le numéro de l'appareil.

Lors de l'utilisation de l'API JavaScript, tous ces problèmes disparaissent - plusieurs fonctions « d'assistance » aideront à transformer les termes Z-Wave en concepts pratiques pour OpenRemote.
Vous pouvez en savoir plus sur la syntaxe de l'API HTTP/JSON et de l'API JavaScript dans la version récente.

Création de scripts JS pour le contrôle à distance

Les scripts JS sont disponibles /opt/z-way-server/automatisation/, créons un fichier dans lequel seront stockées nos fonctions d'automatisation openremote.js afin qu'il soit automatiquement chargé à la mise sous tension de Z-Way, à la fin du fichier d'automatisation principal main.js ajouter:
// ================================================= == ======executeFile(automationRoot + "/" + "tags.js"); exécuterFile(automationRoot + "/" + "openremote.js"); startAutomation();
/opt/z-way-server/automation/openremote.js
// Allumer l'appareil SwitchOn = function(N,I) ( zway.devices[N].instances[I].SwitchBinary.Set(255); ) // Éteindre l'appareil SwitchOff = function(N,I) ( zway.devices[ N].instances[I].SwitchBinary.Set(0); // Demande d'état du capteur (fonctionné/échec) SensorStatus = function(N,I) ( return zway.devices[N].instances[I ] SensorBinary.data.level.value; ) // Demande d'état de l'appareil (on/off) SwitchStatus = function(N,I) ( return zway.devices[N].instances[I].SwitchBinary.data.level. value; ) // Requête de température arrondie à l'entier le plus proche Temperature = function(N,I) ( return Math.round(zway.devices[N].instances[I].commandClasses.data.val.value); )

Le paramètre N est le numéro d'appareil sur le réseau.
Paramètre I - au sein d'un appareil, il peut y avoir physiquement plusieurs appareils (canaux), par exemple 2 relais ou un capteur de température, un capteur de mouvement, un capteur de lumière. Le paramètre I est le numéro de canal à l'intérieur des appareils. Si l'appareil ne contient qu'un seul appareil physique, alors ce paramètre est égal à 0.

Après avoir créé le fichier, vous devez soit redémarrer Z-Way avec la commande :
/etc/init.d/Z-Way redémarrer
ou chargez le script manuellement en envoyant une requête depuis le navigateur :
http://192.168.1.113:8083/JS/Run/executeFile("automation/openremote.js")
Vous pouvez vérifier le fonctionnement des fonctions depuis le navigateur.
Pour allumer la lumière :
http://192.168.1.113:8083/JS/Run/SwitchOn(6,0)
Température demandée :
http://192.168.1.113:8083/JS/Run/Temperature(8,2)
Le journal du serveur Z-Way est très utile pour le débogage :
tail -f /var/log/z-way-server.log
Si tout fonctionne, passez au point suivant !

Installation d'un contrôleur OpenRemote

Le contrôleur OpenRemote est un serveur qui reçoit les commandes d'une application mobile ou Web et les transmet ensuite à un autre contrôleur ou serveur. Dans notre cas, il s'agit d'un serveur Z-Way.

Le site Web OpenRemote a très Instructions détaillées selon l'installation, que je propose d'utiliser :
Instructions d'installation officielles pour OpenRemote en anglais

Permettez-moi juste de noter qu'OpenRemote est écrit en Java et nous avons besoin de la version machine virtuelle avec prise en charge matérielle de la virgule flottante :
JAVA pour processeurs ARM avec prise en charge de la virgule flottante

Installez l'application mobile sur votre téléphone :
Application mobile OpenRemote

Avant de vous lancer dans le développement d’une application, pour mieux comprendre, regardez comment elle fonctionnera :

Créer le design de l'application et la logique de son fonctionnement

Toutes les étapes précédentes n'étaient qu'une préparation à l'essentiel : créer une application mobile !
Ouvrez le concepteur cloud http://designer.openremote.org. Ce ne sera pas difficile de le comprendre !

Développement de conception

Passons tout de suite au développement du design.

1. Allez dans l'onglet Concepteur d'interface utilisateur et créez un nouveau panneau, en l'appelant, par exemple, iPhone4.

2. Faites glisser les boutons et les images du panneau de droite vers Écran iPhone.

3. Dans les propriétés de l'image (panneau de droite), téléchargez vos images et utilisez les champs Gauche, Droite, Largeur et Hauteur pour les disposer sur l'écran selon vos besoins. J'ai téléchargé des images d'un carré et d'une ampoule, et j'ai également ajouté une inscription.

Création de commandes de contrôle et de capteurs

Vous devez maintenant attribuer des commandes aux boutons, et l'image de l'ampoule doit changer en fonction de l'état de la lumière (allumée/éteinte).

1. Accédez à l'onglet et créez un nouvel appareil, en l'appelant, par exemple, Raspberry.

2. Sélectionnez le périphérique Raspberry nouvellement créé et créez nouvelle équipe pour lui Nouveau → Nouvelle commande. Sélection d'un protocole HTTP, entrer URL Les commandes et la méthode JS sont installées POSTE.
Cette commande allume l'appareil n°6. De même, nous créons des commandes pour allumer d'autres appareils et des commandes pour les éteindre.
http://192.168.1.113:8083/JS/Run/SwitchOn(6,0)

3. Vous devez maintenant créer une commande pour interroger l'état de la lumière. Cette commande sera appelée toutes les 2 secondes, donc si vous éteignez manuellement la lumière, elle deviendra immédiatement visible dans notre application. Comme d'habitude Nouveau → Nouvelle commande, mais vous devez en outre indiquer à quelle fréquence l'enquête doit être menée Vote, installer 2s, lettre s requis.

4. Créons un capteur qui traitera les valeurs reçues de cette commande et les transmettra à l'image ou à la légende. Nouveau → Nouveau capteur, sélectionnez la commande que le capteur exécutera, définissez le type coutume, ajoutez deux états sur Et désactivé, nous les associons aux valeurs de retour Z-Wave.

Association de boutons avec des commandes

1. La dernière étape du développement de l'application, association des boutons aux commandes. Revenir au concepteur d'applications Concepteur d'interface utilisateur, sélectionnez votre bouton et dans ses propriétés définissez la commande qu'il doit exécuter.

2. Associez une image à un capteur afin que lorsque l'état de l'appareil change, l'image dans l'application change également. Sélectionnez une image et définissez le capteur dans ses propriétés.

3. Dans les propriétés de l'image, sélectionnez quelle image sera affichée si le capteur a envoyé sur et si le capteur envoyait désactivé.

Synchronisation avec l'application mobile

1. Notre application est prête, il ne reste plus qu'à la télécharger sur votre téléphone. Accédez à l'adresse du contrôleur OpenRemote

Bonjour, chers lecteurs ! Une autre histoire sur la façon dont un manager de niveau très intermédiaire, soufflant la poussière de pièces de matériel obsolètes sur une étagère, fait quelque chose qui fait mal aux yeux des professionnels de tous bords. ¡Mais ça marche, mon ami !

J'avoue que cette fois, je voulais tout faire correctement. J'ai sorti le Raspberry Pi du commerce. La tarte est la même que celle que j'ai déjà utilisée dans mon robot tondeuse : lien vers post et lien vers un autre post. J'ai pris Mosquito, tout aurait dû fonctionner sur mqtt, mais vous ne pouvez pas vous échapper. Sous la coupe, il y a une mer de râteaux, de vélos, de mauvaises soudures, un enfer complet pour un perfectionniste.


Tout est parti de l'envie de compléter mon projet Noorik, que j'ai posé sur mon portail. En bref, il s'agit d'une solution DIY pour un ouvre-portail GSM.
Pour ouvrir le portail, il suffit de fermer certains contacts sur le tableau.

J'ai remplacé l'arduino par un esp8266 et réalisé une interface web avec un bouton d'ouverture. Cela s’est avéré intéressant, mais j’ai ensuite souhaité une interface unique pour l’ouverture des portails coulissants, des portes sectionnelles de garage et des portails.

Quand j'ai commencé à écrire toute ma liste de souhaits, il s'est avéré que j'avais besoin de la même chose :

  1. système de contrôle de chaufferie
  2. système de sécurité
  3. interface mobile pour les caméras de vidéosurveillance
  4. données sur la température dans la maison et à l'extérieur

Back-end

Raspberry a bien fonctionné, mais la prochaine fois qu'il a été allumé, il a tout simplement cessé de s'allumer. La LED d'alimentation s'allume d'abord, puis s'éteint progressivement en 3 à 5 secondes, l'élément (polyfuse T075) près de la prise de courant devient très chaud. Et maintenant, mes mains avaient hâte d'utiliser mqtt, blackger, inviter des courtisanes et d'autres délices.

Ce n’est pas grave, heureusement un autre patient attendait son sort. Orange pi zéro au studio. Peu importe à quel point j'ai souffert de ce miracle de la pensée chinoise, donner vie à une si petite tarte s'est avéré être au-dessus de mes forces. J'ai téléchargé le firmware sur les sites officiels et de gauche, j'ai acheté le firmware de mes propres mains et je l'ai échangé contre de la crypto-monnaie. Je pense que je viens de recevoir un échantillon défectueux.

J'ai réalisé que le destin lui-même me poussait dans les bras de la construction de vélos, et pourquoi cacher ma joie, je me suis plongé à corps perdu dans cette activité.

La première chose que j'ai décidé de faire a été d'utiliser les deux appareil de tête(courtier, serveur) un smartphone bien usé. Vous savez, ces vieilles choses ne disparaissent pas comme ça. Moi, ma femme, ma fille l'avons utilisé, puis j'ai contrôlé mon robot souffleuse à neige depuis ce smartphone, j'ai essayé de le noyer dans la rivière (je n'ai jamais atteint la rivière Moscou, mais dans ma Pakhra natale, ce tuyau faisait un bruissement). Et la voici - nouvelle vie Pour Samsung Galaxy S3.

J'ai installé Palapa Web Server et le serveur Ftp sur mon smartphone. L'idée est simple à la base Données MySQL Il n'y a que trois tables : valeurs, journaux, règles.

  • La table des valeurs contient des paires clé/valeur.
  • Le tableau des journaux contient un historique des modifications de valeurs.
  • Dans le tableau des règles, il existe des règles permettant de modifier certaines cellules en fonction de la valeur d'autres.
Toute cette ferme est desservie par un script php, qui selon requête httpécrit ou génère des données à partir de la base de données et applique également des règles selon un calendrier.
Je ne comprends même pas quel niveau de programmation devrait être pour qu'une personne veuille voir ça, mais je suis prêt à vous montrer le code - écrivez-moi par MP.

L'extrémité avant

Ne me jetez pas la pierre, je l'admets moi-même. J'ai utilisé Bootstrap. Oui, je suis un pécheur.
L'idée initiale était de regrouper tout cela via Phonegap et d'obtenir une application à part entière. Je dirai plus que c'est exactement ce que j'ai fait, mais au final la version en ligne s'est avérée plus efficace. Je viens de créer un raccourci sur mon téléphone pour moi et ma femme sur le bureau pour ouvrir la page souhaitée en utilisant l'adresse IP interne.

Chaque élément réagit à un événement de clic + l'état est vérifié par des requêtes ajax au serveur et modifié si nécessaire. C’est très pratique car vous pouvez voir toutes les modifications qui ont pris effet selon la règle ou qui ont été apportées par un autre utilisateur.
En fait, le code sur demande ne pose aucun problème.

ESP-8266


J'ai essayé différents modules et un ESP-8266 pur. En conséquence, le module LOLIN V3 s'est avéré être l'option la plus pratique.

Alimentation via des alimentations à découpage.

Les modules de portail nécessitaient un relais et je craignais que les relais de contact ne se déclenchent. En conséquence, ceux à semi-conducteurs et à contact fonctionnent. Le problème est qu'un grand nombre de modules, même sans marquage, sont faiblement déclenchés.

Lorsque le module est allumé, une ouverture à court terme se produit, ce qui entraîne une ouverture involontaire lors de la mise sous tension. Il est résolu en le mettant à zéro et en déclarant l'état avant de déclarer le type de sortie.

DigitalWrite(rele, 1); digitalWrite(rele2, 1); pinMode(rele, SORTIE); pinMode(rele2, SORTIE);
En conséquence, le module de garage assemblé ressemble à ceci. Le capteur PIR pour détecter les mouvements est soigneusement rongé dans la peau d'origine.

Dans ma chaufferie, la chaudière est très simple et on ne parle pas d'automatisation complexe.

Dans ce cas, chaque circuit est desservi par une pompe distincte.

Des relais étaient connectés en série aux machines pour contrôler les pompes et la chaudière.

Pousse soigneusement tout l’équipement dans le bouclier.

Micrologiciel

J'ai décidé d'utiliser l'IDE Arduino pour le firmware afin de ne pas jouer avec nodemcu et lua. Sur Internet et sur GT notamment grande quantité informations pour les débutants.
La chose la plus intéressante, me semble-t-il, est la fonction de connexion au wifi. Le fait est qu'il y en a 4 chez moi réseaux wifi et peuvent être ajoutés. Afin de ne pas préciser strictement le nom du réseau, nous scannons d'abord les réseaux disponibles.

code setupWiFi()

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("aucun réseau trouvé"); else ( Serial.print(n); Serial.println("réseaux trouvés"); 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("Connecté"); Serial.println(WiFi.localIP()); )


Quand on est allumé mode automatique La chaufferie contrôle la température extérieure et la température du liquide de refroidissement selon un planning.
  • À des températures inférieures à 14°C, le sol chaud du premier étage est activé.
  • À des températures inférieures à 4*C, tous les circuits sont activés.
La température du liquide de refroidissement est choisie selon le tableau en fonction de la section des canalisations et de la température extérieure. Lorsque la température ambiante requise est atteinte, la chaudière s'éteint. Une certaine hystérésis est appliquée à tout pour lisser les valeurs de transition.

Le système de sécurité fonctionne encore plus simplement. Il y a une règle dans le tableau selon laquelle lorsque le système de sécurité est activé, si un mouvement est détecté au niveau de l'un des capteurs PIR, envoi de SMS via l'API de l'un des services.

Des plans

  • création d'une version en ligne sur serveur distant et la synchronisation des modifications pour les capacités de gestion à distance.
  • Affichage des données des balises GSM/GPS dans la voiture ;
  • Ouvrir le portail lorsque nos voitures apparaissent dans une certaine zone ;
  • Connexion au système de télécommande ;
Vote par photo. Quel projet dois-je faire ensuite ? 22 janvier 2014 à 10h47

Maison intelligente. Mise en œuvre spécifique

  • Java

Bonjour, chère communauté !
Comme je le fais à la maison Maison intelligente. Beaucoup de temps s'est écoulé depuis et j'ai fait de sérieux progrès tant au niveau matériel que logiciel. Je pense que ce prochain article peut s'appeler en toute sécurité « Smart Home v3 » :)

En bref, je m'intéresse depuis longtemps à la possibilité de construire une maison intelligente dans ma propre maison. C'est aujourd'hui une tendance de la mode, mais auparavant c'était un véritable sujet pour les geeks invétérés.

Je vais vous dire de quel équipement je dispose actuellement :

  • Plusieurs gradateurs ZWave
  • Capteurs ZWave (volume, présence, température, fuite, ouverture porte/fenêtre, dongle pour PC)
  • Vannes ZWave
  • Switchs Noolite (modules d'alimentation + switchs émetteurs, dongles RX et TX (PC) pour PC)
  • Les gradateurs Noolite arrivent
  • Tablettes Android (servent de terminaux système)
  • Il y a un dongle à 1 fil sur l'étagère :)
Toutes ces technologies sont décrites de manière suffisamment détaillée sur Habré (y compris dans mes articles), mais j'aimerais m'y attarder Noolite. La technologie est bien décrite (par exemple). Maintenant c'est mon tour:)

C'est comme ça que c'est joli dans les cartons (je m'excuse par avance pour la qualité, ça a été fait lors de l'installation sur téléphone mobile sans problème de fond, d'horizon jonché, etc.) :

Voici à quoi ressemble le dongle permettant de transmettre les commandes aux unités de puissance :

Oui oui! Justement pour recevoir des commandes ! C'est la partie manquante de Noolite qui me manquait personnellement pour utiliser ces appareils à la maison. Pour une raison quelconque, il n'y a aucune information à ce sujet ailleurs que sur le site officiel.
Pourquoi est-ce si important ? Si vous avez déjà entendu parler de Noolite, vous savez que les modules d'alimentation (qui allument/éteignent la charge) n'ont qu'un récepteur de signal, mais pas d'émetteur. Cela a considérablement limité (pour moi personnellement) l'utilisation de tels équipements dans une maison intelligente. Le fabricant a résolu le problème avec une béquille avec une solution originale : il a lancé un récepteur séparé pour les signaux des émetteurs eux-mêmes (commutateurs radio). Le seul problème de cet appareil est le très petit rayon de réception. Peut-être que le commutateur radio lui-même impose ici ses limites, car... il a une antenne plutôt faible, et elles étaient généralement installées à la place des anciens interrupteurs (pour cacher les trous dans les murs :)) - peut-être une sorte d'interférence.

En fait, voici l'un des moments du processus d'installation, remplaçant l'ancien commutateur :

Comme vous pouvez le constater, les anciens fils d'alimentation sont court-circuités dans le bornier et l'interrupteur radio lui-même est placé dessus.

Pour une raison quelconque, le bloc d'alimentation n'est pas entré dans l'objectif du téléphone :) Le résultat de sa connexion :

Le bloc d'alimentation brille agréablement lorsque la charge est éteinte LED verte. La nuit, cela s'avère être une sorte de lumière de service.

Tout se fixe et se délie très simplement et rapidement, la notice est très détaillée et compréhensible. La seule chose que je n'ai pas aimé, c'est le logiciel fourni dans la boîte. C’était clairement écrit sur le genou, sans fioritures et crache parfois des erreurs. Mais je n'en ai pas besoin - je ne l'ai utilisé qu'une seule fois pour m'en assurer bon fonctionnement acheté des appareils, après quoi il a été impitoyablement abattu.

Nous pouvons désormais parler de la partie intelligente de la maison. Le matériel est bon et intéressant, mais il doit aussi y avoir une partie pratique. Je vais vous raconter un exemple de ma matinée.

Si aujourd'hui n'est pas un week-end ou un jour férié, alors à 6h00 la veilleuse installée de mon côté du lit commence à s'allumer - un réveil lumineux.
Vers 6h45, le terminal de la maison intelligente (une tablette Android accrochée à côté du lit) reçoit une commande du serveur principal pour allumer le réveil (oui, je comprends qu'on pourrait simplement allumer le réveil sur la tablette :)) - le son agréable de la forêt matinale retentit, avec lequel je ne cesse de me réveiller.
En même temps, les lumières du couloir, de la cuisine, de la salle de bain et des toilettes sont allumées.
Lorsque je rampe enfin dans le couloir, des capteurs de présence détectent ma carcasse endormie et la voix synthétisée d'une femme Google me salue. En parallèle, la maison intelligente ouvre les vannes d’arrivée d’eau (j’ai la phobie d’inonder mes voisins).
Après toute procédure de toilette, je rampe sous la douche. Le capteur de présence dans la salle de bain détecte que je suis déjà là et le terminal local me demande si je souhaite connaître les dernières nouvelles. Ici, je suis libre de répondre par oui ou par non (les réponses modifiées sont acceptées) - la reconnaissance vocale du même Google fonctionne + les réseaux de neurones Avec.AI.
(En passant, alors que la communication vocale est en cours de développement, vous devez parler clairement et fort, la parole n'est pas toujours reçue du premier coup, et la reconnaissance et la réaction du système prennent un certain temps (de 2 à 5 secondes en moyenne). ))
Ensuite, je sors de la salle de bain, j'allume la bouilloire et je me verse du thé (ouais, un défaut :)). Si je suis en retard et que le système me voit avec ses capteurs (présence + le capteur sur la porte d'entrée n'a pas fonctionné) - ils m'invitent avec des messages vocaux.
Je pars, ferme la porte - les lumières partout s'éteignent automatiquement.

Ceci est spécifiquement mon exemple. Il peut y avoir quelques nuances ici : ma femme se lève, je suis en vacances, etc. Mais en général, le scénario me convient 90% du temps.

Un peu sur le logiciel. Le système de maison intelligente lui-même est mis en œuvre à partir de trois composants. C’est le cœur du système qui, en fait, contrôle tout. Interface Web basée sur Play Framework 1.2.7, sur laquelle un contrôle convivial des systèmes de maison intelligente sera mis en œuvre à l'avenir. Et une application Android qui fait office de terminal pour maison intelligente.
Le logiciel est publié sur Github, il n'y a pas encore d'implémentation spécifique de ce qui est décrit ci-dessus, car il y a beaucoup de code terrible que je suis en train de ranger, mais en général les fonctions sont présentes.
Le système a été écrit en Java et ce moment n'a pas d'interface conviviale, autre qu'un semblant de REST. Actuellement, le système n'est pas prêt pour. simple utilisateur et est dans l'alpha mondial. Certaines fonctions que j'utilise ne sont pas encore dans le référentiel public, mais ce n'est qu'une question de temps.

L'objectif principal de ce sujet est d'attirer les développeurs passionnés de maison intelligente. Je ne le cache pas :)
En fait, un lien vers le dépôt du module principal (le reste est au même endroit.

Partager