Salut à tous, c’est Mathieu, et Hexamus. Si MySensors vous intéresse, vous avez dû lire le premier article sur l’explication du code. Maintenant nous allons passer à la deuxième étape, à savoir la modification du code MySensors. En effet, le node présenté initialement nous permet d’utiliser un contact sec pour la boite aux lettres. Or, nous en voulons deux, un pour les lettres et un pour la porte en cas de livraison de colis.

Modification du code MySensors : la théorie

Nous allons donc essayer de « doubler » le contact sec et l’intégrer dans le code que nous téléverserons dans notre arduino. Pour rappel, nous partons toujours sur le même sketch disponible ici.

Pour que vous compreniez bien j’ai utilisé ce modèle de capteur. 

C’est donc un simple contact de porte avec contact sec normalement ouvert ou fermé.

Modification du code MySensors

Tout d’abord, nous allons brancher les deux communs sur le GND, puis nous allons mettre le NC (normally closed) sur le D3 pour les colis donc sur l’ouverture de la porte, et sur le D4 pour le clapet à lettres. J’ai la chance d’avoir une alimentation proche de ma boite aux lettres, donc mon arduino peut facilement être alimenté.

La théorie c’est bien joli mais on va passer à la modification du code

Modification du code MySensors : modification du code

Alors, pour le descriptif je vous laisse le modifier suivant vos envies. Pour cette partie rien de compliqué j’ai juste mis les commentaires en français c’est plus simple pour moi qui ne parle pas bien anglais.

Modification du code MySensors

Ici, on va commencer à réécrire vraiment. On commence à tout doubler en séparant les deux entrées. J’ai gardé les chiffres 3 et 4 des entrées pour moins de confusion.

Modification du code MySensors

Puis on va préparer la présentation de notre nouveau nœud :

Tout d’abord, à la ligne 80 on lui donne un petit nom et une version.

Ensuite, aux lignes 81 et 82 on déclare nos 2 entrée du type porte ce qui correspond le plus à notre usage.

Modification du code MySensors

Jusqu’à présent, c’est plutôt facile… Vous suivez encore ? Nous avons donc déclaré nos entrées, initialisé nos variables, et présenté le nœud…

Alors maintenant on va rentrer dans la partie un peu plus compliquée. Il va nous falloir comparer nos valeurs et s’il y a un changement envoyer celle-ci.

Si nous reprenons l’exemple du premier article, nous faisions un simple « si » la nouvelle valeur est différente de la dernière valeur « alors » il faut l’envoyer.

Mais maintenant nous avons deux valeurs et donc forcément, deux anciennes valeurs. On fait comment ?

modification du code MySensors

  • Trop facile, on fait deux blocs « si »
  • Et ben non ça ne marche pas… Allez-y proposez moi ? Personne ? Bon je vais vous donner la solution que j’ai utilisé.

On va garder notre 1er bloc « si » et comparer l’entrée 3 (la porte). Si elle a changé d’état, on envoie les données. Sinon, nous allons vérifier l’entrée 4. Si elle a changé d’état, nous envoyons l’information. Voyons comment mettre tout cette théorie en forme.

Dans un premier temps de la ligne 89 à 94 on va mettre à jour nos valeurs.

Ligne 96 on reprend le bloc SI (“if“) de l’exemple

Donc si la nouvelle valeur est différente de celle envoyée la dernière fois on envoie son nouvel état, et on attribue son nouvel état pour la prochaine comparaison

Ensuite, à la ligne 102 SINON SI (“else if“) l’entrée 4 à changer depuis la dernière fois on envoie puis on attribue la valeur à la variable.

Ceci étant dans la partie “Loop“ qui tourne en continue et nous donne toute les informations.

Modification du code MySensors

Modification du code MySensors : le montage

Maintenant que nous avons notre programme il nous faut réaliser le montage.

Pour cela rien de compliqué, nous allons reprendre le même matériel que pour la gateway usb (lien article) on fait le même câblage en connectant en plus nos 2 capteurs de porte comme dit au début de l’article. Le commun sur le GND et le NC du capteur de porte du D3 et celui du capteur du volet sur D4.

Allez, on connecte le tout au PC et on téléverse comme d’habitude.

Si vous faites souvent des tests pour téléverser vos sketchs, il est préférable d’effacer son arduino. Pour cela direction les exemples Mysensors où se trouve un programme “ClearEepromConfig“ qu’il suffit d’envoyer pour effacer et repartir sur une base saine.

Donc tout est ok montage réaliser programme écrit et téléverser donc on va voir Jeedom bien sûr.

Modification du code MySensors : en route pour la jeedomisation

Ici, il nous suffit de rentrer en inclusion dans le plugin MySensors.

Modification du code MySensors

On alimente notre arduino. L’alimentation peut se faire en USB, ou alors entre le GND et VIN avec une tension entre 5 et 12V. Puis on retourne voir notre page Jeedom. Notre capteur de boite aux lettres est apparu.

Modification du code MySensors

Il nous reste à l’activer le rendre visible ou non sur le Dashboard, lui attribuer un objet parent. De plus, Lunarok (créateur du plugin) a ajouté « Boite aux lettres » dans les catégories du nœud ce qui nous permet d’avoir un beau logo pour notre nœud.

Modification du code MySensors

On va voir la partie commande où on trouve bien nos deux entrées que nous pouvons renommer.

Modification du code MySensors

Modification du code MySensors : conclusion

J’espère que ce petit exemple vous a bien aidé si vous souhaitez modifier des codes MySensors pour que vos capteurs collent plus à vos besoins. Bon courage à vous tous, et à bientôt.

Partager sur :

Infos de l'auteur

Je m'appelle Mathieu, j'ai 35 ans, et je vis à Limoges. Je suis prof d'EPS, et passionné de domotique. Amateur de DIY et de bricolage, j'aime aussi la cuisine, le bon vin.

2 commentaires

  1. merci Mathieu pour cet article.
    j’ai personnellement bafiqué un plafonier led et je me suis servi de mysensors pour communiquer avec et le piloter depuis jeedom.
    j’ai également créé des acessoires ( toujours en communication mysensors) pour piloter le plafonnier ( baguette magique, dé coloré etc…..
    voici un exemple avec le control par la baguette magique:
    https://youtu.be/pHyHP5lQOpk

    et la video de présentation complète avec tous les moyen de control.
    https://youtu.be/pfkmzKn4g7E

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.