Défi
Contournez le routeur noolite et contrôlez l'éclairage noolite rapidement, efficacement et sans utiliser de serveur domestique. Décentralisation mondiale et utilisation totale des solutions cloud dans les appareils domestiques et les objets Internet. Quoi? ....Bonjour à tous!Encore une fois, avec mes chaussures de librairie et l'histoire de la façon de surmonter le coûteux routeur noolite, commencer à contrôler l'éclairage et ne pas déranger les cartes de soudage, les contrôleurs et en général - je veux allumer / installer l'application et cela fonctionne sans danse supplémentaire. Oui ... tout le monde écrit à ce sujet, mais peu de gens le font, car souvent toutes les décisions reposent sur des instructions complexes. Et je vais vous montrer maintenant :) - bien en avance mes amis!
Tous ceux qui ont acheté des unités d'éclairage noolite ont tous rencontré les problèmes suivants. Soyons francs:
1. Je suis resté, ok! et puis quoi? comment gérer les blocs à la mode, et ils sont également apparus avec le cryptage et les commentaires ( article )
2. ouais ... ils veulent une passerelle Ethernet ... pour xxx vert ... pour gérer - OK! Et l'application? oui ...?! bon avant
3. J'ai commencé à gérer - mais c'est un peu cher ... c'est l'éclairage, je veux quelque chose de cool et je veux aussi des scripts - mais où puis-je les obtenir? (à la fin l'article est un méga bonus sur les scénarios!) il faut aussi un serveur domestique :( - tout cela à la fin entraîne des coûts et déjà ... pas très budget.Ces éléments (ou similaires) empêchent également les utilisateurs d'étendre la domotique.
La tâche est claire: nous devons simplifier la vie et la rendre pratique - essayons maintenant de la résoudre en recourant à des méthodes radicales. Nous supprimons le serveur domestique, supprimons la passerelle Ethernet noolite.
(rires de l'équipe noolite)Il y a des unités de contrôle d'éclairage et ... l'utilisateur.
(il devrait y avoir une photo d'un utilisateur sur le terrain :) avec un bloc noolite)Pour commencer à gérer ces blocs - nous devons d'abord penser aux technologies utilisées, puis comprendre quel type de matériel nous aidera à le faire.
Récemment, un protocole de transfert de données a été très populaire: MQTT - oui, c'est un protocole de transfert de données cool et très pratique. Nous, avec une équipe de passionnés pervers, avons développé une application pour ce protocole qui aide les utilisateurs d'Android (build iOS et téléphone Windows en cours de livraison sur les marchés). Lien vers l'application à la fin de l'article, ne le considérez pas comme un PR;) - eh bien - c'est PR: D - mais nous avons besoin d'une bonne application qui nous aidera à faire du monde un endroit plus frais. MQTT est cool - OUI!
Nous prenons le protocole MQTT - super. Il y a une application - excellente. Maintenant attention: la question du remblayage :) - quel matériel supporte MQTT? - OUI, ils ont tous dit d'une seule voix: bien sûr, ESP 8266.
Faites cuire le bortsch plus loin et remuez les ingrédients ajoutés, visitez le site Web de noolite et voyez ce qu'ils ont en général avec les modules de communication ... oh!
Ils ont donc des modules de communication avec ces blocs. Nous avons seulement besoin d'exotisme. Pourquoi? Oui, car nous n'avons pas de serveur domestique, rien que des blocs et le concept de "décentralisation". Oh ... J'ai hâte de discuter et de crier - eh bien, du karma sur la tête - allons de l'avant!
On regarde, sur le site - et on voit - 2 modules: MTRF64 USB et MTRF64 - donc, un USB, le second juste UART. Eh bien, ils ont trouvé une solution :) - depuis l'USB pour les ordinateurs et l'alimentation il y a moins de 5V - et ici M. Uart lui-même et même 3,3V adapté - magnifique.
Qu'avons-nous?1. bloc noolite SLF-1-300 (bloc avec rétroaction et cryptage)

(photo noolite SLF-1-300)
2. Module UTR MTRF64 (qui coûte moins cher que l'USB, en raison du manque de puce pour travailler avec l'USB! Simplifié à l'état "de base";))

(image MTRF64 UART)
3. Module ESP8266

(image ESP8266)
3. application pour travailler avec MQTT (MQTT Buddy)

(photo)
Maintenant, vous devez vous simplifier la vie et vous donner un code pour l'âme - exactement. Qui veut s'asseoir et écrire beaucoup de code, en particulier avec MTRF64, vous devez monter sur les quais, et là ... il y a beaucoup de choses utiles (
lien ) - mais nous devons le faire rapidement et efficacement. Open Source de notre équipe - bienvenue: D>
GitHubNous devons également préparer ESP8266 - qui "l'a brûlé" - sait, ce n'est pas difficile - 2 minutes et tout fonctionnera pour vous.
Préparez-vous et décollez!
- Vous pouvez télécharger le firmware depuis le site (
https://nodemcu-build.com ), vous pouvez le prendre directement depuis le dépôt
github , qui est fourni avec tout le code
- Gravez la commande ESP8266:
sudo python esptool.py --port /dev/ttyUSB0 write_flash -fm dio -fs 32m 0x00000 {your_nodemcu_firmware.bin}
- Vérifiez que esp8266 est connecté en tant que / dev / ttyUSB0
- Nous vérifions que {your_nodemcu_firmware.bin} vous avez remplacé par le nom de votre firmware
- S'il n'y a pas d'esptool (télécharger
ici ;))
- Prenez la carte de développement ESP8266 - et brûlez-la, «brûlez» au maximum!
Maintenant, attention, nous prenons et téléchargeons le
code fini: fonctionnant.
Lisez avant de remplir le code!- remplacez vos données de routeur wifi par login \ pass et remplacez votre courtier MQTT par login et pass. Le code utilise le courtier MQTT gratuit de cloudmqtt.com. Notre équipe a levé son courtier gratuit, que vous pouvez utiliser: mqtt.ximxim.com (mqtt \ mqtt)
Lien vers le référentiel GitHub:
mqtt_buddy-mtrf64-noolite-esp8266 - le code a été développé par
Dmitry Karaba (je lui en remercie
beaucoup !).
Le code est spécialement rechargé à partir du référentiel fermé de notre société XIM, INC - dans le public ouvert pour téléchargement gratuit.
Assurez-vous de remplacer les données par votre Saisissez le code sur l'ESP8266 via l'outil
ESPLORER .
Nous connectons maintenant la carte de développement esp8266 + MTRF64.esp8266 D7 rx - MTRF64 TX
esp8266 D8 tx - MTRF64 TX
esp8266 GND - MTRF64 GND
esp8266 3V3 - MTRF64 3V3

(photo de connexion)
Une fois que vous avez téléchargé le code sur esp8266 - après le redémarrage, vous ne pourrez pas l'atteindre et changer quelque chose (code) - vous devez réécrire le firmware à nouveau. Pourquoi? car esp8266 bascule automatiquement sur la connexion UART9600 et commence à communiquer avec le module MTRF64. Le code utilise une connexion uart alternative via les broches d7 \ d8, les broches principales RX, TX sont libres pour le travail. Vous pouvez facilement faire vos conditions pour "interrompre" la transition vers uart9600 pour communiquer avec MTRF64 - car ce n'était pas notre objectif et notre tâche principale.
Ce que nous avons fait et comment cela fonctionne
Le module mtrf64 est connecté via UART avec esp8266, qui à son tour passe en ligne via votre routeur et se connecte au courtier gratuit MQTT. D'autre part, vous, en tant qu'utilisateur, vous connectez également à ce courtier cloud via une application mobile et commencez à envoyer des commandes aux canaux MQTT, qui à leur tour sont "désassemblés" à la volée et, selon la commande, sont transmis via le module UART MTRF64! Oui! c'est comme ça que nous sommes devenus cool et budget! Oui! C'est vraiment cool quand vous réalisez que vous avez construit une chaîne logique claire de technologies qui fonctionnent pour vous. Merci;)
La gestion
Pour aller plus loin: sommes-nous connectés et quelle est la prochaine étape? Comment gérer;) - tout est simple! Nous fusionnons notre application MQTT Buddy avec Google Play (lien à la fin de l'article) et y ajoutons le courtier MQTT - par exemple, mqttcloud.com. Ajoutez maintenant un nouveau bouton pour lier le bloc noolite au MTRF64 - faites-vous des amis!
Commandes de communication avec MTRF64Dmitry Karaba, développeur du code pour esp8266 pour MTRF64, a fait le format suivant de commandes MQTT pour communiquer avec le module.
À partir des rubriques MQTT, vous pouvez voir que vous pouvez travailler directement avec des canaux, ainsi qu'avec les adresses de périphériques spécifiques, vous pouvez ainsi lier tous les périphériques à un canal, mais travailler avec chacun à une adresse spécifique. L'adresse peut être trouvée dans la rubrique mqtt_buddy / sys lors de la liaison, le module répond avec l'adresse du périphérique connecté.
Ajoutez un bouton à MQTT Buddy (ou utilisez votre client MQTT, console, python à la fin avec paho!). Dans MQTT Buddy - cliquez sur "+" - entrez le nom du bouton et du sujet.
Ajout d'un bouton de commande à MQTT Buddymqtt_buddy / noolight / 0 et données: "on, off or switch"et cochez une case: publier - de sorte que lorsque vous cliquez sur le bouton - nous pouvons envoyer la commande à la rubrique mqtt.

Nous avons ajouté un bouton, maintenant nous faisons la liaison de bloc standard: cliquez sur le bloc, cliquez sur le bouton de liaison dans notre application et voyez comment le bloc est attaché au module, l'indicateur clignotant sur le bloc SLF s'éteindra.
Si vous voulez plus d'informations - vous pouvez lire les messages dans la rubrique: mqtt_buddy / sys - toutes les informations du bloc y arrivent - à chaque fois, les 17 octets de données où vous pouvez trouver les adresses des blocs et ce qui se passe dans le sous-sol technique ...
Après la liaison, nous créons un nouveau bouton pour gérer ces blocs avec un sujet.
Gestion des blocs via le sujet MQTT dans MQTT Buddymqtt_buddy / noolight / 0 et données: "on, off or switch"
dans les paramètres de l'application, cochez les cases: commutateur \ conservé \ publier - maintenant lorsque vous cliquez sur le bouton, une commande sera envoyée au sujet "mqtt_buddy / noolight / 0" - esp8266 recevra ces données et analysera le sujet et enverra la commande nécessaire au module noolite MTRF64 et un miracle se produira ... un miracle de technologie que vous avez pu traduire en réalité sans actions complexes.
Flasher et gérer le premier bloc vous prendra environ 5 minutes si vous êtes déjà familier avec esp8266 et l'avez flashé au moins une fois.
==================== arracher =============================
Liens vers le matériel et les logiciels par article
-
Bloc MTRF 64- ESP8266 dev board - Aliexpress \ marchés radio \ magasins en ligne
-
Application Android MQTT Buddy (iOS \ téléphone Windows en cours d'adaptation)
- mqtt.ximxim.com - notre site Web - nous avons fait une salle SHOW sur esp8266 pour un plus grand ventilateur;) - merci beaucoup pour la note positive, nous essayons de rendre l'IOT plus réel, équipe d'automatisation intelligente Smart Automation Team> XIM, Inc.
Perche à selfie maison oubliéeBon ... j'ai oublié le selfie stick à la maison, j'ai dû refaire rapidement l'aspirateur de bureau;)

=============== Scripts MQTT Buddy Bon ===========================
Puisque notre système est décentralisé et qu'il n'y a pas de serveur domestique - qui exécutera les scripts? Oui - cela fonctionne, oui - l'auteur utilise cette fonctionnalité. Comment ça marche et où? Dans notre application MQTT Buddy. Tout est assez simple: vous ajoutez un courtier MQTT et vous y accédez, puis en haut il y a un bouton en forme de montre - c'est le script.
Ajout d'un script à MQTT BuddyLorsque vous cliquez - nous ajoutons le script et si votre courtier est disponible sur Internet - puis au bon moment (attention, les fuseaux horaires sont pris en compte, vous n'avez pas à vous inquiéter et à y penser - dites simplement au système quelle heure vous voulez et quoi envoyer au sujet dont vous avez besoin) - Test à 100% via QOS = 1 protocole MQTT). Nous avons simplifié le service pour les utilisateurs autant que possible afin qu'ils ne pensent pas à la partie technique et ne se soucient pas, mais disent simplement "ce que je veux" :) - et que cela fonctionne.

C'est un vrai service qui fonctionne vraiment. Si quelqu'un veut obtenir un code MQTT Buddy gratuit pour la fonctionnalité PRO - vous pouvez vous abonner au formulaire sur le site Web mqtt.ximxim.com :)) - il y a aussi une salle d'exposition à partir de l'accès Web. C’est tout! Décollez!
Bonne journée et bonne humeur, merci pour vos retours, retours positifs et critiques sonores! Soyez plus gentil.Bien à vous, Automator, Alex B.