[Tutoriel] Intégration d’un lecteur RFID dans Gladys

1. Matériel choisi :

2. Préparation

Après avoir commandé et reçu (si si, ça va arriver !) votre matériel, il vous faut programmer le Wemos D1 Mini. J’ai choisi d’utiliser Tasmota pour sa facilité d’utilisation et son évolutivité ne nécessitant aucune compétence en programmation !
Seule difficulté : La gestion du lecteur RFID n’est pas reprise dans le programme de base, il faut donc le compiler ! Mais n’ayez pas peur… Il y a deux possibilités :

  • Soit vous le faites (c’est loin d’être compliqué, voir ici : Dashboard — Gitpod . Vous devez ajouter les valeurs suivantes dans le fichier user_config_override.h :
#define USE_SPI                                  // Hardware SPI using GPIO12(MISO), GPIO13(MOSI) and GPIO14(CLK) in addition to two user selectable GPIOs(CS and DC)
 #define USE_RC522                              // Add support for MFRC522 13.56Mhz Rfid reader (+6k code)
   #define USE_RC522_DATA_FUNCTION              // Add support for reading data block content (+0k4 code)
   #define USE_RC522_TYPE_INFORMATION           // Add support for showing card type (+0k4 code)
  • soit vous téléchargez celui que je vous ai préparé (en version 9.4) ici

Branchez votre Wemos D1 Mini sur votre PC avec votre câble USB.
Ensuite, téléchargez et exécutez « Tasmotizer » (ici : Releases · tasmota/tasmotizer · GitHub)
image

Sélectionnez, si ce n’est pas fait automatiquement, le port « COM » correspondant à votre Wemos, cliquez ensuite sur « open », recherchez le fichier « .bin » que vous venez de créer/télécharger (le firmware Tasmota) puis cliquez sur « Tasmotize ! »

Ensuite, on configure Tasmota. Cela nécessite un peu d’encodage et de copier-coller.

3. Configurer Tasmota

3.1 Le Wifi

Si le flash s’est bien terminé, vous devriez trouver un nouveau réseau WiFi commençant par « Tasmota-xxxx ». Connectez-vous à ce dernier (je vous conseille de le faire avec un smartphone !). Si votre appareil ne vous le propose pas, rendez-vous sur la page web de configuration : 192.168.4.1

Introduisez-y les informations nécessaires au fonctionnement de Tasmota (le réseau WiFi auquel il doit se connecter et son mot de passe associé). Le Wemos redémarre alors et disparaît !

Il vous faut désormais trouver son adresse IP pour pouvoir le configurer. Deux possibilités : explorer le réseau ou… utiliser le bouton « Get IP » de Tasmotizer ! Pour ce faire, le Wemos doit être toujours branché à votre ordinateur…

3.2 Le template

Afin que Tasmota gère votre Wemos D1 Mini en tant que tel, il faut lui expliquer dans quoi vous l’avez implanté. Pour cela, on utilise les « Templates »

Rendez-vous sur la page d’accueil de votre Wemos en introduisant l’adresse IP trouvée précédemment puis cliquez sur « configuration »

image

Ensuite sur « Autre configuration » et collez le texte suivant dans la case « Template » :

{"NAME":"Wemos D1","GPIO":[1,1,1,1,1,1,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18}

Cochez la case « Activer » et profitez-en pour donner un nom sympa à votre Wemos :

image

Cliquez ensuite sur « enregistrer », le Wemos redémarre.
Après ce dernier, cliquez sur « configuration » puis sur « configuration du module ».
Dans le champ « Type de module », choisissez « Wemos D1 », cliquez sur « enregistrer », le module redémarre (encore !)

3.3 Le MQTT

Dans la page « configuration », rendez-vous sur « Configuration MQTT » et introduisez les caractéristiques de votre instance de Gladys

image

Cliquez sur « enregistrer », le module redémarre (si si, encore !)

3.4 Les GPIOs

On va maintenant expliquer à Tasmota qu’on lui branche un lecteur de cartes RFID. Pour ce faire, allez dans la page « Configuration », « Configuration du module » et sélectionnez les paramètres suivants :

image

Enregistrez, le module redémarre (et c’est pas une blague !)
4. La configuration du module est terminée, place aux branchements (donc, débranchez la source d’alimentation !).
4.1 Voici comment relier tout ça (en soudant, conseillé, ou en câbles DuPont, plus aisé) :

image

Et le même, dans un tableau :

Wemos D1 Mini RC522
D8 SDA
D7 MOSI
D6 MISO
D5 SCK
D0 RST
G GND
3V3 3.3V

4.2 Vérifions que ça fonctionne !

Branchez le câble microUSB dans le Wemos. Une LED rouge témoin doit s’allumer sur le RC522.

Rendez-vous sur la page de configuration du module (vous savez, l’adresse IP…) et cliquez sur « console ». Dans la liste des informations affichées, devrait figurer celle-ci :

00:00:00.059 SPI: Hardware using GPIO14(CLK), GPIO13(MOSI) and GPIO12(MISO)

00:00:00.062 Projet tasmota Barrière_Scan Version 9.4.0(TasmoCompiler-esp82664M)-2_7_4_9(2021-05-03T14:19:55)

00:00:00.118 MFR: RC522 Rfid Reader detected v2.0

Bravi ! (un bravo, des bravi, c’est bien connu !)

Pour tester cela, scannez une de vos cartes RFID fournies ou glanées et profitez-en pour en recopier les codes (en général, de 8 à 16 valeurs en hexadécimal). Les valeurs scannées s’affichent sur la page d’accueil ou dans la console :

image

5. La configuration dans Gladys
5.1 Via l’intégration Tasmota (dans un futur plus ou moins proche)
5.2 Via la création d’un appareil factice (un « fake device ») en MQTT
5.2.1 Allez dans l’onglet « intégrations » et choisissez MQTT. Cliquez ensuite sur « Nouveau » :

image

Dans « fonctionnalités », choisissez « Mode de contrôle d’accès » et complétez comme ceci (ou comme bon vous semble après-tout !). Puis, COPIEZ le texte (en entier) noté dans « Topic MQTT ».

Sauvegardez ! (Pas de redémarrage cette fois !)

5.2.2 Retournez dans l’interface de configuration de Tasmota (l’adresse IP du début)
Il faut maintenant dire à votre module ce qu’il doit faire quand on scanne une puce RFID. Et c’est très simple… On veut qu’il le dise à Gladys !
Pour ce faire, on va utiliser les « règles ». Cela fonctionne comme ceci :
En gros, quand on reçoit la valeur du badge RFID (0F0F0F0F dans l’exemple), on publie sur le topic dédié de Gladys copié juste avant (gladys/master/device/mqtt:Jardin:Gate/feature/mqtt:Jardin:Gate:Badged/state dans l’exemple) le numéro voulu (3 dans l’exemple)

Rule1 ON RC522#UID=0F0F0F0F DO publish gladys/master/device/mqtt:Jardin:Gate/feature/mqtt:Jardin:Gate:Badged/state 3 ENDON 

Pour en ajouter d’autres, reprenez la commande précédente en ajoutant un « + » au début tel que :

Rule1 +ON RC522#UID=1F1F1F1F DO publish gladys/master/device/mqtt:Jardin:Gate/feature/mqtt:Jardin:Gate:Badged/state 2 ENDON 

Cette règle sera alors ajoutée à la précédente.
Dernière chose ! Il faut activer la règle. Il suffit de taper la commande :

Rule1 1

Et maintenant ?

6. L’utilisation dans les scènes de Gladys

image
image
image
image
image

7. Un bonus ?
J’ai dessiné une boîte pour mettre cela dedans… Si vous avez de quoi imprimer, voici les fichiers !
Le couvercle
Le boitier

3 « J'aime »

Vraiment sympa à lire, je ne le mettrais pas chez moi car je suis en loc mais merci, rien que pour la lecture.

Ps: tu as une petite photo du boîtier ?

Je n’ai pas mieux car c’est intégré dans un poteau de bois. Il y a une ouverture à l’arrière pour passer le fil (et la fiche microUSB) et le RC522 se fixe sur le couvercle avec quatre vis M3


4 « J'aime »

Génial! Merci du partage @GBoulvin, c’est vraiment cool avec toutes ces photos :slightly_smiling_face:

1 « J'aime »