Capteurs de la maison intelligente avec arduino, diy mysensors et openhab

Des capteurs intelligents à domicile coûtent une somme ridicule. À 60- $ 100 $ seulement pour un détecteur de mouvement ou capteur d`humidité, le câblage d`une maison entière devient le domaine de ceux avec des quantités ridicules de revenu disponible. Construisons notre propre.

Heureusement, le travail a déjà été fait par les gens bien derrière MySensors.org. Aujourd`hui, je vais vous montrer comment utiliser le cadre de MySensors pour créer un tableau pas cher de capteurs intelligents maison qui peuvent alimenter un OpenHAB installer (voir notre guide Mise en route avec OpenHAB sur Raspberry Pi). Je suppose que vous avez un serveur MQTT travaille déjà, et comprendre les bases de la messagerie MQTT FORMAT- sinon, assurez-vous de lire le suivi au guide OpenHAB, qui comprend des instructions pour l`installation d`un serveur MQTT.Mise en route avec OpenHAB Home Automation sur Raspberry PiMise en route avec OpenHAB Home Automation sur Raspberry PiOpenHAB est une plate-forme domotique source mature, ouverte qui fonctionne sur une variété de matériel et est le protocole agnostique, ce qui signifie qu`il peut se connecter à presque tout matériel domotique sur le marché aujourd`hui.Lire la suite

Bien que je vais traitant spécifiquement la transmission des données MySensors d`un réseau de Arduinos, en utilisant MQTT, à une OpenHAB installer, je tiens à souligner que le cadre de MySensors peut alimenter un certain nombre de différents contrôleurs domotiques. J`ai présenté ce ici comme une solution complète qui fonctionne pour moi, mais s`il vous plaît consulter le site MySensors comme vous pouvez le trouver convient aussi votre but similaire, mais en utilisant un peu différent du matériel ou un protocole de messagerie différent. Il est incroyablement polyvalent.

mysensors matériel -1

Le coût du matériel pour ma configuration est inférieure à 10 $ par nœud (un peu plus pour la passerelle), mais des capteurs supplémentaires et actionneurs peuvent être ajoutés pour très peu (le capteur d`humidité et de température DHT11 par exemple, est d`environ 1 each- $ un relais à haute tension est d`environ 3 $).

Ce que nous faisons

L`idée de base est que, plutôt que d`ajouter sur notre réseau local encombré existant à l`aide fiable Wi-Fi ou les écrans Ethernet coûteux, nous créons un réseau capable de maille entièrement séparée juste pour le Arduinos- puis pont que sur le réseau local en utilisant un seul nœud de passerelle , qui a à la fois une connexion Ethernet et une connexion radio aux autres Arduinos. Nous faisons donc un couple de nœuds de capteurs, qui regroupent Data- et un noeud de passerelle, qui relaie les données sur le serveur OpenHAB.

Encore une fois, voici ce qui fonctionne pour moi, parce que ma réception Wi-Fi est si horrible et je ne veux pas encombrer avec des données inutiles. Si vous êtes heureux avec une connexion Wi-Fi, regarder en utilisant le faible coût ESP8266 compatible Arduino avec les conseils Wi-Fi intégré - MySensors soutient ceux qui sont trop.Rencontrez le tueur Arduino: ESP8266Rencontrez le tueur Arduino: ESP8266Et si je vous ai dit il y a une carte Arduino dev compatible avec le Wi-Fi pour moins de 10 $? Eh bien, il y a.Lire la suite

Remarque importante pour El Capitan utilisateurs et Clones Arduino: Apple a réussi à briser les pilotes en série utilisés pour communiquer avec un certain nombre de cartes de clone Arduino dans la dernière version de grâce à de nouvelles mesures de sécurité El Capitan. Pour voir si vous êtes affecté, regardez votre carte et la puce la plus proche du port USB. Si elle dit CH340, vous êtes affecté. Suivez les instructions ici pour désactiver la signature kext du pilote, installez les pilotes série CH340 à nouveau.

composants nécessaires

Pour la passerelle, vous aurez besoin:

  • Arduino Uno
  • Ethernet Shield (base W5100)
  • Module nRF24L01 - Je l`ai utilisé la +PA + LNA versions à travers, qui ont une portée accrue allant jusqu`à 1 km. Le câblage est le même selon votre choix.

Pour chaque noeud de capteur:

  • Arduino Uno
  • Module nRF24L01
  • Des capteurs (pour commencer, je vous suggère un DHT11 de température et d`humidité ou d`un module DHT22)

Supplémentaires / En option:

  • 10uF condensateurs, un pour chaque module RF vous (le lien est pour un paquet de 50!)
  • Alimentation avec 5v et 3.3v sortie (bien YwRobot MB102 fonctionne et ils sont 1 $) - nécessaire si vous utilisez un clone Arduino. Vous aurez également besoin d`une alimentation 9-12 V DC pour ces derniers.
  • Shields Prototypage ou fils courts cavaliers mâle-femelle.

Travailler avec nRF24L01 Modules

Commençons par les modules nRF24L01, car ils font partie la plus complexe du projet. Je suis allé pour le plus cher, plus version gamme de celles-ci: connue techniquement NRF24L01 + PA + LNA. Ils viennent avec un bord circuit d`amplification de signal et connexion antenne, bien que je vous suggère d`essayer la version non-antenne moins cher des modules d`abord si vous avez une maison normale avec des murs réguliers, pas la pierre solide mètre d`épaisseur sorte de mur Je fais. La plage revendiquée de ces derniers est à environ un kilomètre, plus que suffisant pour me mettre dans le hangar de jardin.

Cependant, ces choses sont vraiment difficile de travailler avec- si vous aller de l`avant et de brancher tout sans lire ces conseils d`abord, vous serez déçu.

  • Le module a besoin de puissance d`entrée de 3,3 V à la broche CCV - pas 5v. Si vous mettez en 5v, vous frire.
  • Souder un condensateur 10uF entre les bornes VCC / GND. La ligne grise solide sur le condensateur indique le côté négatif / GND.
  • Utilisez court, Cables- saut de qualité ou mieux encore, de les souder directement sur un bouclier de prototypage pour maintenir la longueur du câble au minimum et connexions solides.
  • Si vous utilisez un clone Arduino, le régulateur de tension ne suffit pas tout à fait leur fournir sur la broche 3.3v - vous aurez besoin d`utiliser une carte d`alimentation externe (lié ci-dessus), disponible pour environ 1 $ chacun. Ceux-ci fournissent un 3.3v stable. Si vous utilisez un original marque Arduino Uno, cela ne semble pas être un problème.

Je vous suggère fortement de faire quelques tests de base d`abord juste pour établir votre radio fonctionne. Deux fils radios comme indiqué sur la page MySensors. Peu importe que leur diagramme montrent les cartes Arduino Micro - les mêmes numéros de broches sont utilisés. Notez que le diagramme montre l`nRF24L01 de la Haut- vous allez vraiment branché le choses à partir de la face inférieure. Mentalement ajuster en conséquence. Ignorer la broche IRQ gris, il est actuellement utilisé. En résumé:

  • CCV va à 3.3v sur votre alimentation externe
  • GND va vers le rail de masse commun
  • CE à la broche 9
  • CSN / CS à la broche 10
  • MOSI à la broche 11
  • MISO à la broche 12
  • SCK à la broche 13

câblage de la page mysensors

Vous aurez besoin de deux nœuds câblés pour tester complètement avec. Téléchargez la bibliothèque RF24 et charger le plus simple Commencer Exemple. Allumez les deux modules, mais laisser un connecté via USB et ouvrez la console série. Tapez « T » et d`envoyer, pour passer dans le mode de transmission, à quel point vous devriez obtenir des messages de débogage en disant qu`il est pinger avec succès un message à l`autre noeud.

Video: Ventilateur domotique Arduino

Construire le MySensors MQTT Client Gateway

Ok, maintenant que nous savons que les radios RF24 sont câblés et fonctionner correctement, aller de l`avant et à télécharger la branche de développement de MySensors package Arduino. Ce tutoriel a été écrit en utilisant la version 1.5, mais devrait être ok avec les versions ultérieures aussi. Nous utilisons la branche de développement, car au moment de l`écriture, le MQTT client passerelle n`est pas encore une partie du paquet principal.

Bien qu`il y ait MQTTGateway disponible dans la branche principale, il agit comme un serveur aussi, que nous ne voulons pas parce que nous avons déjà un serveur MQTT stable en cours d`exécution sur le Raspberry Pi. Nous voulons juste transmettre les données MySensors sur cela. Encore une fois, si ce n`est pas ce que vous voulez - si vous préférez ne pas utiliser MQTT du tout - puis regardez EthernetGateway ou SerialGateway, tous deux sont également compatibles avec OpenHAB.

Il convient de noter que le package de téléchargement ne comprend pas seulement les fichiers MySensors essentiels, il comprend également les bibliothèques compatibles nécessaires pour chaque capteur possible. Pour éviter les conflits, je vous suggère simplement sauvegarder votre dossier ensemble des bibliothèques actuelles et en le remplaçant par tous ceux qui dans le package de téléchargement.

Câblage de la passerelle est un peu different- une fois que vous avez votre bouclier Ethernet, utilisez les broches suivantes pour le module radio:

  • CE à la broche 5
  • CSN à la broche 6
  • SCK à la broche A0
  • MOSI à la broche A1
  • MISO à la broche A2

Vous devez également activer la #define SOFTSPI ligne dans la bibliothèques / mySensors / MyConfig.h fichier. Pour ce faire, en supprimant le // décommenter, il est autour de la ligne 309 sur le mien.

Nous devons le faire parce que le module radio et le bouclier de réseau utilisent SPI, et ils sont incompatible- donc nous avons juste déplaçons le module radio SPI à d`autres broches et effectuer une communication SPI dans le logiciel au lieu (d`où, doux SPI).

Chargez le MySensors / GatewayW5100MQTTClient esquisser. Si vous ne voyez pas cela sous le menu MySensors, vous n`avez pas branche de développement installée. Utilisez le lien fourni ci-dessus pour retélécharger l`ensemble.

passerelle mysensors

Video: Touch Display Scene Controller - MySensors

Vous devrez définir une adresse IP statique pour le contrôleur, l`adresse IP de votre routeur réseau et sous-réseau et l`adresse IP de votre serveur MQTT existant. Ne hésitez pas à modifier les préfixes sujet aussi si vous le souhaitez. Téléchargez et branchez cette chose dans le réseau. vérifier brièvement la console série pour des erreurs flagrantes comme étant incapable de se connecter à votre serveur MQTT, définissez sinon de côté (mais laissez-le).

adresses IP pour changer

Video: Automatisation poulailler avec Arduino Uno

Construire les nœuds du capteur

Tout d`abord, un commentaire que #define SOFTSPI ligne dans la MyConfig.h déposer à nouveau en mettant le // retour au début. Il est nécessaire que pour la passerelle - nous utilisons le câblage standard nRF24L01 pour les nœuds de capteurs, qui utilisent le matériel SPI. Si vous avez besoin de rappeler:

  • CCV va à 3.3v sur votre alimentation externe (Ou sur l`Arduino lui-même si elle est un original et non un clone)
  • GND va vers le rail de masse commun
  • CE à la broche 9
  • CSN / CS à la broche 10
  • MOSI à la broche 11
  • MISO à la broche 12
  • SCK à la broche 13

Ensuite, le fil de votre choix par capteur J`utilise l`humidité DHT11 et capteur de température pour le test, mais si vous faites défiler vers le bas à la liste des capteurs et des actionneurs sur la barre latérale de la page MySensors, vous trouverez un grand choix d`autres options: portes , pluviomètre, la lumière, le mouvement, même RFID - et des charges plus. Vous pouvez voir que je également ajouté un relais au nœud illustré ci-dessous, mais plus sur cela plus tard.

mysensors matériel -2

Enfin, la charge Capteur d`humidité par exemple dans le menu MySensors et ajoutez la ligne suivante immédiatement après les commentaires.

#define MY_NODE_ID 2

Comme nous utilisons une version spéciale du contrôleur qui transmet juste des choses sur notre propre serveur MQTT, il ne dispose pas de la fonction de contrôleur standard qui attribue automatiquement les ID de nœud à chaque nouveau nœud. Au lieu de cela, nous allons juste de définir manuellement chaque fois. Notez ce nombre quelque part pour vos dossiers, et le changer pour chaque nœud.

Activer la sortie de débogage trop:

#define MY_DEBUG

Enfin, vérifiez la broche de données de votre capteur DHT11 est correct.

#define HUMIDITY_SENSOR_DIGITAL_PIN 7

Ensuite, téléchargez!

Il vaut la peine d`ouvrir la console série pour jeter un coup d`oeil. Le bit est essentiel de regarder st =, qui est l`état du message. st = échec signifie que le message n`a pas été envoyé. Il est possible que vous ne l`avez pas défini un ID de nœud unique, ou que votre passerelle est en mode hors connexion. Je truqué ces échecs en débranchant simplement la passerelle:

st-échec

Si tout fonctionne, vous devriez commencer à voir des données lectures viennent dans votre serveur MQTT. Mettre ceux en OpenHAB est en dehors du cadre de ce tutoriel, mais était couvert partie 2 du guide OpenHAB de sorte que vous pouvez vous y référer.Guide de OpenHAB débutant Partie 2: ZWave, MQTT, Règles et ChartingGuide de OpenHAB débutant Partie 2: ZWave, MQTT, Règles et ChartingOpenHAB, le logiciel domotique open source, dépasse de loin les capacités d`autres systèmes d`automatisation de la maison sur le marché - mais il est difficile de se mettre en place. En fait, il peut être carrément frustrant.Lire la suite

La combinaison de code du capteur

Bien que l`obtention d`un seul nœud capteur et en cours d`exécution est relativement simple, il devient un peu plus délicat lorsque vous souhaitez ajouter plusieurs capteurs à chaque nœud. Essentiellement, vous allez mélanger ensemble les extraits de code à partir de deux exemples différents. La meilleure façon de vous montrer par l`exemple avec une vidéo! Ici, je combine notre capteur d`humidité de base avec un relais.

Vous pouvez trouver le code complet pour le capteur d`humidité et le relais ici, qui a déjà été modifié avec une boucle non-bloquant comme je l`ai mentionné dans la vidéo. Pour en savoir plus sur la structure de commandement MQTT nécessaire pour activer le relais, vérifier l`API série -mais il suffit de dire le canal suivant contrôle le premier relais dans le code que j`ai donné (avec un corps de message de 0 ou 1):

mysensors-in / 9/1/1/0/2

Votre seule limite est maintenant la quantité de mémoire sur l`Arduino, et je vais dire - les capteurs les plus fiables dans ma maison intelligente ne sont pas les modules Z-Wave commerciaux qui coûtent 80 $, mais les MySensors __gVirt_NP_NNS_NNPS<__ ceux personnalisés.

Je vais terminer là-bas aujourd`hui, mais si vous avez des problèmes vous pouvez demander à l`écart dans les commentaires ou les forums d`utilisateurs très actifs de MySensors. Voulez-vous rassemblerons vos propres nœuds de capteurs bon marché? Comment est votre maison intelligente à venir?

Articles connexes