Articles

Capteurs sans fil MySensors

1. Présentation du sujet

Le site MySensors.org propose diverses réalisations de capteurs sans fil autour d'une architecture logiciel permettant d'établir un réseau maillé de capteurs capables de communiquer entre eux et de s'interfacer avec diverses stations domotiques. Outre la gratuité de son framework, ce système aujourd'hui mature permet de configurer certains de ses nœuds (un module multicapteurs constitue un nœud du réseau) comme point relais pour palier à la faible portée des modules.

Ce sujet propose la création d'un module capable de recevoir un micrologiciel basé sur le framework MySensors. Diverses approches seront envisagées afin de réaliser un module plus ou moins énergivore et plus ou moins encombrant.

2. Schéma du module

2.1. Structure retenue

Le cœur du module repose sur un microcontrôleur ATmega328P tel que celui que l'on retrouve sur les cartes Arduino UNO. La communication entre les modules s'établit par l'intermédiaire d'un module de liaison sans fil fonctionnant à 2.4GHz exploitant une puce nRF24L01+ du fabricant NordicSemi.

Sur le module, on trouve :

  • un capteur de température MCP9700A en boitier TO92,
  • une led rouge de 3mm,
  • deux connecteurs pour capteurs additionnels,
  • un connecteur pour connecter un convertisseur USB-série et réaliser la programmation du module à partir du bootloader Arduino,
  • un dispositif permettant d'évaluer le niveau de charge des piles,
  • un connecteur ICSP permettant de programmer et debugger avec le système Atmel ICE.

2.2. Schéma tracé avec KiCad Eeschema

Module MySensors

2.3. Consignes pour le tracé du schéma

2.3.1. Installation des bibliothèques complémentaires

Pour la réalisation de ce projet, j'ai utilisé des bibliothèques KiCad complémentaires disponibles sur Github : https://github.com/mysensors-kicad

Je n'en utilise que la description complète du module nRF24L01+ (composant schématique, empreinte et module 3D) mais j'ai néanmoins ajouté l'ensemble des travaux de ce groupe Github.

Pour installer ces bibliothèques, suivre les recommandations suivantes :

  • Télécharger le fichier IUT_KiCad.zip.
  • Pour simplifier la prise en charge des bibliothèques, décompresser le dossier à la racine de C.
    Note : si vous changez de chemin, il faudra en tenir dans toutes les recommandations qui suivent.
  • Ouvrir le logiciel KiCad.
  • Mise en place des bibliothèques de composants pour la schématique. Dans KiCad :
    • Menu Préférences -> Configuration des chemins.
    • Cliquer sur le bouton Ajouter.
    • Taper MYSLOCAL dans le champ Nom.
    • Taper C:\IUT_KiCad\MySensorsKiCadLibraries\ pour le chemin.
      Note : cet ajout permet le référencement des empreintes et module 3D des biblioéthèques MySensors-KiCad.
    • Fermer l'éditeur de chemins en validant par OK.
    • Lancer ensuite l'éditeur de Librairies : Menu Outils -> Lancer l'éditeur de librairie.
    • Menu Préférences -> Librairies de composants
      C'est à cet endroit qu'on renseigne KiCad sur les bibliothèques à utiliser pour la schématique.
    • Cliquer sur Ajouter et rendez-vous dans le dossier C:\IUT_KiCad\MySensorsKiCadLibraries\mysensors_symbols
    • Sélectionner l'ensemble des bibliothèques proposées et valider en cliquant sur Ouvrir.
    • Cliquer à nouveau sur le bouton Ajouter. Rendez-vous dans le dossier C:\IUT_KiCad\IUTKiCadLibraries\library et sélectionner tout ce qui est proposé. Terminer en validant par Ouvrir.
    • Fermer la boite de dialogue en validant par OK
    • Fermer l'éditeur de composants.
  • Mise en place de la prise en charge des nouvelles empreintes. Dans KiCad :
    • Lancer l'éditeur d'empreintes. Menu Outils -> Lancer l'éditeur d'empreintes.
    • Choisir le menu Préférences -> Gestionnaire des librairies d'empreintes.
    • Cliquer sur le bouton Ajouter avec l'assistant.
    • Choisir Fichier sur mon ordinateur puis cliquer sur Next.
    • Parcourir le disque de façon à atteindre le dossier C:\IUT_KiCad\MySensorsKiCadLibraries\modules
    • Sélectionner mysensors_radios.pretty puis cliquer sur Next.
    • Confirmer en cliquant sur Next.
    • Choisir l'option Ajouter la configuration globale de librairies et cliquer sur Finish.
    • Répéter l'appel à l'assistant d'ajout de librairie jusqu'à avoir pris en compte l'ensemble des dossiers .pretty présents dans C:\IUT_KiCad\MySensorsKiCadLibraries\modules
    • Fermer la boite de dialogue par OK.
    • Fermer l'éditeur d'empreintes.
  • Fermer KiCad afin d'assurer la mise à jour de l'ensemble des fichiers de configuration du logiciel.

2.3.2. Indications pour la réalisation du schéma

Le quartz, référence Y1, s'appelle CRYSTAL dans la liste des composants de la schématique.

Les résistances en forme de zigzag s'appellent R_ZIGZAG et sont présentes dans la bibliothèque libraryIUT.

Le microcontrôleur utilisé est le ATmega328P-PDIP. Il est présent dans la bibliothèque libraryIUT et se différencie de l'ATmega328P-P présent initialement dans KiCad par une disposition plus adaptée des broches permettant de placer le circuit d'horloge sur la gauche du composant.

Dans un premier temps, prendre des CONN_01X04 pour les connecteurs P3 et P4.
Note : la modification de ces symboles sera effectuée au cours de la séance (démonstration par l'enseignant) afin de les rendre semblables à ceux du schéma présenté ci-dessus.

Le projet s'appellera MySensorsIUT et devra être placé dans un dossier du même nom.

3. Choix des empreintes

Cette première version est réalisée en technologie mixte CMS et traversante.

Les résistances sont prises en boitier CMS 1206.

Les capacités de 100nF et 10uF sont des choisies en boitier CMS 1206.

Le MCP9700A est pris dans sa version traversante donc en TO92.

La LED est une 3mm, verticale, traversante (KiCad propose une empreinte par défaut qui convient tout à fait).

Le module nRF24L01+ dispose d'une empreinte tout à fait adaptée dans le bibliothèque mysensors_radios.pretty

Tous les connecteurs sont des connecteurs mâles, droits, au pas de 2.54mm tels que ceux proposés par défaut par KiCad.