Le but de la domotique est d’améliorer son quotidien. C’est le cas aujourd’hui avec la réalisation d’une boîte aux lettres connectée. Comme souvent avant de commencer l’article sur le projet, je vous partage ce qui m’a conduits à cette idée.
Chez moi, la boîte aux lettres se trouve à l’entrée de mon chemin, à une distance de 77 mètres de la maison. Vérifier le courrier tous les jours pour ne recevoir quelque chose qu’une fois par semaine pouvait devenir un peu embêtant. En effet, soit je descendais le chemin à pied une fois rentré, soit je m’arrêtais en bas du chemin avec la voiture, j’en descendais, puis je remontais dans la voiture pour rentrer. Il est clair que si la boîte aux lettres était à quelques mètres de la maison, il est probable que je n’aurais rien fait.
Ma boîte aux lettres commence aussi à montrer des signes de faiblesse au niveau de la serrure, et le fond est bien rouillé. C’était donc l’occasion de la remplacer.
Boîte aux lettres connectée
Le projet est d’obtenir une notification quand je reçois du courrier ou un colis. Le seul problème est la distance entre la maison et la boîte aux lettres. La plupart des boîtes aux lettres DIY utilisent des capteurs de porte Zigbee, mais la distance est bien trop grande. C’est la même chose avec des capteurs en Wi-Fi. Un câble Ethernet aurait pu être une solution, couplé à un ESP32 POE de chez Olimex par exemple, mais je n’allais pas creuser une tranchée juste pour ça ! L’idée était en suspens faute de solution de communication, jusqu’au jour où Matière Lumière a développé son hub sous le protocole sans fil longue portée nommé LoRa, qui signifie Long Range. Si vous faites des recherches, vous tomberez souvent sur le LoRaWAN, qui est un réseau passant par Internet. Ici, nous allons créer notre propre réseau LoRa local. Je vous recommande cette courte vidéo pour bien comprendre la différence.
Les avantages du protocole LoRa :
- Réseau longue portée, jusqu’à plusieurs centaines de mètres
- Faible consommation énergétique
- Transfert de petites trames
C’est parfait pour notre boîte aux lettres, mais pas seulement. En effet, Matière Lumière a développé plusieurs cartes sous LoRa pour différents besoins, comme un module pour se connecter au compteur Linky (qui est parfois installé hors de la maison, au bord d’une route), un autre pour le pilotage de votre piscine ou l’arrosage automatique de votre jardin, et bien d’autres. Notamment, avec la carte que j’ai utilisée, les projets peuvent être multiples. Vous trouverez toutes les informations sur son projet au lien suivant, ainsi que toute la documentation à l’autre lien et le groupe Facebook ici.
Détails
Je ne vais pas détailler toutes les étapes de programmation ou de soudure, car tout est expliqué en détail dans la documentation. Matière Lumière a également simplifié certaines étapes depuis la version bêta. Pour les circuits imprimés, les fichiers Gerber sont tous disponibles au lien suivant. Il vous suffira d’aller, par exemple sur https://jlcpcb.com/ et d’importer le fichier zip. Votre PCB sera prêt à être commandé.
Création du Hub
Pour commencer la réalisation de notre réseau LoRa, il faut créer son hub (passerelle). Comme vous pouvez le voir dans la documentation, il y a le choix entre différents modèles d’ESP selon ce que vous souhaitez utiliser. De mon côté, je suis parti sur la carte MLH2 pour installer un ESP32-POE-ISO-EA de chez Olimex. Si vous avez vu mes précédents articles, vous savez que je parle souvent de cet ESP que j’utilise pour la réalisation de mes équipements IoT à la maison. Cette carte a l’avantage d’être Ethernet et d’intégrer le POE, ce qui évite d’avoir besoin d’une alimentation supplémentaire. Pour l’achat, je vous recommande de passer directement par leur site au lien suivant.
Le matériel nécessaire :
- Le PCB que vous aurez choisi pour votre Hub ;
- Un ESP32. Suivant l’ESP que vous souhaitez utiliser, il faudra choisir parmi les modèles indiqués dans la doc ;
- Un RA-02 pour la partie radio Lora. Disponible sur Alixpress au lien suivant. Il faudra bien choisir le bon modèle comme celui entouré sur la photo ci-dessous ;
- Un câble avec prise IPX et SMA pour relier le RA-02 à une antenne, disponible au lien suivant ;
- Une antenne déportée disponible au lien suivant, j’ai choisi la 12db ;
- Quelques headers mâle et femelle. Je vous recommande de monter l’ESP et le RA-02 sur des headers femelle, en cas de panne cela sera beaucoup plus simple pour les remplacer. Vous pouvez par exemple prendre ce kit ;
- Une LED de 2mm et une résistance de 470 ohms.
Programmation de l’ESP
Le hub est le plus facile à faire, sur le github téléchargez tous les fichiers, pour cela allez sur Code et Download ZIP.
Décompressez le fichier dans un dossier, en évitant les dossiers avec des accents. Allez dans le dossier lora2ha-HUB, puis dans le sous-dossier tools. Vous y trouverez plusieurs fichiers .bat
. Une fois votre ESP branché à votre PC, exécutez le fichier correspondant au modèle de votre ESP.
Sur votre PC, ouvrez une invite de commande DOS, naviguez jusqu’au dossier décompressé, choisissez le bon fichier .bat
, puis appuyez sur Entrée. Une invite vous demandera le numéro du port COM de votre ESP. Allez dans le Gestionnaire de périphériques pour trouver cette information. Dans cet exemple, il s’agit du port COM4, donc tapez simplement « 4 » dans l’invite de commande et appuyez sur Entrée. Une seconde invite vous demandera de confirmer l’effacement de votre ESP.
Patientez maintenant le temps du flashage de votre ESP.
Soudez et assemblez le tout. La carte ayant une connexion 5V, j’en ai profité pour ajouter une LED afin d’indiquer la mise sous tension une fois le tout installé dans le boîtier.
Vous pouvez placer le tout dans un boîtier. Si vous avez une imprimante 3D, vous trouverez tous les fichiers au lien suivant. Si vous souhaitez modéliser votre propre boîtier, les modèles 3D des cartes sont inclus dans le dossier téléchargé pour vous faciliter le travail. Sur mon boîtier, vous pouvez apercevoir des lignes qui ont été prévues pour y coller un poids. Je pensais qu’avec le câble Ethernet, le boîtier se soulèverait en raison de son faible poids.
On peut viser l’antenne et notre hub est physiquement prêt.
Vous pouvez maintenant le brancher en Ethernet et rechercher son adresse IP. Vous arriverez sur la page de configuration de votre hub. C’est ici que vous pourrez configurer le Wi-Fi si vous le souhaitez, et envoyer les informations à votre Home Assistant. En effet, le hub va communiquer avec Home Assistant via MQTT. Il vous faudra installer le broker avant de continuer.
Vous pouvez suivre le début de ce guide. Indiquez l’adresse de votre Home Assistant ainsi que le nom d’utilisateur et le mot de passe de votre broker MQTT.
Ouvrez la partie Device, c’est ici que nous allons ajouter nos capteurs. Les nouvelles cartes n’ont plus besoin d’être ajouté manuellement, l’appareillage se fait automatiquement par la pression d’un bouton non présent sur ma carte. Une fois associé au hub, dans le champ Name, indiquez le nom de votre appareil.
Pour ajouter des capteurs, cliquez sur Add child, indiquez le nom de votre capteur, puis choisissez Boolean.
Après quelques secondes, allez sur Home Assistant puis Paramètres puis Service et sur MQTT, vous devriez voir vos capteurs.
Le hub est maintenant dans ma baie informatique du garage, l’antenne possède une base aimantée que j’ai découverte en la posant sur celle-ci.
La partie device (boite aux lettres)
Pour ce projet, je vais utiliser la carte MLA30, qui permet de connecter deux capteurs de porte filaires. Elle est alimentée par une batterie de 3.7V et pourra être rechargée par un petit panneau solaire. Cette carte nécessite un microcontrôleur qu’il faudra programmer avec l’Arduino IDE, ce qui est la partie la plus compliquée. Depuis le début du projet en avril 2024, Matière Lumière a amélioré ses cartes. L’appairage avec le hub se fait désormais avec un bouton-poussoir. Mais ce n’est pas tout : une nouvelle carte est en cours de réalisation, spécialement pour les boîtes aux lettres, et sera totalement autonome avec une pile CR2032. Nous reviendrons sur ces projets futurs à la fin.
Matériels nécessaires :
- Un PCB MLA30 ;
- Un RA-02 ;
- Un Attiny 84-20PU ;
- Un DIP pour l’attiny 84 ;
- Un TPS79433DCQ ;
- Un condensateur 0.01μF (10nF) ;
- Des connecteurs JST XH ;
- Un régulateur de charge CRLD20MA 3.3V à monter sur des headers ;
- Une batterie de 3.7v (La batterie doit posséder un circuit de charge PCM. Je suis partie sur cette batterie ou en plus petit vous avez celle-ci)
La partie la plus compliquée sera de programmer l’ATtiny84 ; il vous faudra un programmateur ISP. Dans la documentation, au titre 5.4, un exemple de programmateur est indiqué, qui pourra être directement connecté à la carte pour le téléversement du programme avec l’Arduino IDE. Matière Lumière travaille avec son Fablab pour essayer de proposer des cartes prêtes à l’emploi.
La deuxième partie, un peu complexe, sera le soudage du TPS79433DCQ. En effet, celui-ci est de type CMS ; il est préférable de le souder avec un pistolet à air chaud, bien que cela puisse aussi être réalisé avec un fer à souder classique. Je vous recommande également de monter le module radio sur un header femelle.
Voici notre PCB. Sur la seconde photo, le module radio est un RA-01 avec l’antenne intégrée. Je l’ai ensuite remplacé par un RA-02 afin de pouvoir déporter l’antenne à l’extérieur de la boîte. Vous pouvez remarquer que tous les composants ne sont pas présents, ce qui est normal. En fonction de ce que vous allez faire avec cette carte, il faudra ajouter des résistances ; elles seront utiles si vous connectez des capteurs de température DS18B20 à la place des capteurs de porte.
Afin de tout regrouper proprement, j’ai modélisé et imprimé un boitier. Il est aussi disponible au lien suivant. Pour le fermer, il vous faudra 4 vis M3 à tête fraisé et 2 pour la pâte de fixation de la batterie.
Montage des accessoires sur la boite aux lettres
Maintenant, il va falloir équiper notre boîte. Celle-ci est un modèle classique avec une seule porte, acheté chez Castorama. Nous reviendrons sur la porte plus tard, car le nombre de portes va influencer le comportement de nos notifications.
Matériels nécessaires
- Un panneau solaire de 5v. Je suis parti sur ce modèle, vous pouvez aussi prendre ce type de panneau avec le support, mais avec le temps la pièce en métal va surement vite rouiller.
- Des contacteurs magnétiques. Attention il vous faudra des contacteurs de type NC (Normalement Close/Fermé), ils sont disponibles ici, ayant fait l’erreur, il a fallu modifier le code de l’attiny84.
- Une rallonge d’antenne pour déporter celle-ci avec un connecteur IPX/SMA Femelle. Disponible au lien suivant. Choisissez la longueur que vous avez besoin, mais attention la partie SMA doit être de type femelle, elle ne doit pas avoir la pointe.
- Une petite antenne avec connecteur SMA Mâle. Le but est de sortir l’antenne de la boîte, mais tout en restant discret j’ai donc pris le modèle de 2.7cm et 3dbi au lien suivant.
Commençons par le panneau solaire. Le support est disponible dans le pack accessible via ce lien. Je vous recommande une impression en PETG, car il sera exposé aux intempéries. J’ai une pièce en PLA en extérieur depuis des années, et pour l’instant, elle tient bien.
Dans le support de fixation, j’ai créé un tunnel pour faire passer le câble, évitant ainsi qu’il soit exposé à l’extérieur. Pour l’impression, je vous recommande de placer le modèle comme sur l’image et d’ajouter un bloqueur de support dans le cube où se trouve le passe-câble.
Pour fixer le panneau, j’ai coulé une résine qui va aussi permettre l’étanchéité des soudures.
Passons au montage sur la boite
Pour faciliter le perçage, j’ai créé un gabarit, joint dans les fichiers à télécharger. Ainsi, vous serez sûr d’avoir le bon espacement entre les vis et le trou pour faire passer le câble dans la boîte. Avant de visser, assurez-vous que votre câble est assez long. En regardant l’image plus haut, je me dis que j’aurais dû placer le panneau solaire dans l’autre sens, ce qui aurait probablement donné la bonne longueur de câble.) Pour assembler le support sur la boîte, il vous faudra 2 vis M3.
Installation des capteurs d’ouverture
Pour les capteurs, cela dépendra de votre boîte et nécessitera des tests pour s’assurer qu’ils se déclenchent correctement. De mon côté, j’ai retiré toute la garniture plastique de l’aimant et je l’ai placé entre la porte et le volet. Pour la porte, j’ai imprimé une petite cale afin de remonter l’aimant.
Montage de l’antenne extérieur
Pour cela, un simple trou sous la boîte sera nécessaire, puis de monter le connecteur SMA.
Montage du boitier
Pour la fixation du boîtier contenant la batterie et le PCB, j’ai utilisé un double face 3M épais. Je sais qu’il est solide, car il faut prendre en compte que la tôle de votre boîte peut chauffer si elle est exposée au plein soleil, et certaines colles ne tiendront pas. Il ne vous reste plus qu’à faire un passage de câble propre pour les cacher au mieux.
Configuration Home Assistant
Maintenant que notre boîte est prête, nous allons créer les automatisations afin de recevoir les notifications sur notre smartphone.
La première étape sera de créer un bouton virtuel qui passera de On à Off pour indiquer qu’un des capteurs a détecté une activité. Allez dans Paramètres, puis Appareils et services, puis Entrées, et cliquez sur Créer une entrée.
Dans la liste, défilez pour trouver Interrupteur et indiquez un nom puis Créer.
Avant de créer les automatisations, nous allons personnaliser le bouton pour qu’il change de couleur et d’icône selon son état. Ajoutez le code suivant sur l’un de vos dashboards. Si vous avez donné un nom différent à l’interrupteur, modifiez-le au niveau de entity.
type: custom:button-card entity: input_boolean.courrier name: Courrier icon: mdi:mailbox state: - value: 'on' icon: mdi:mailbox-open-up-outline - value: 'off' icon: mdi:mailbox styles: icon: - color: > [[[ if (entity.state == 'on') return 'green'; else return 'var(--paper-item-icon-color)'; ]]] card: - border-radius: 15px - box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2) - font-size: 20px - font-weight: bold - color: var(--primary-text-color) - background-color: var(--paper-card-background-color)
Création des automatisations
Pour que cela fonctionne, nous allons devoir créer deux automatisations : la première pour la gestion du volet et la seconde pour la porte. Allez dans Paramètres, puis dans Automatisations et scènes, et cliquez sur Créer une automatisation.
Pour le volet : si le volet est ouvert et que l’interrupteur courrier est sur OFF, alors envoyez une notification. On aurait pu faire plus simple en envoyant une notification directement, mais cette méthode permet d’éviter les multiples notifications si vous jouez avec le volet, par exemple.
Voici le code YAML que vous pouvez coller directement dans Home Assistant. Pensez à remplacer l’entité de votre smartphone pour les notifications.
alias: Courrier - Activer et Notifie courrier lorsque volet est activé description: > Passe input_boolean.courrier en ON lorsque le capteurs volet de la boîte aux lettres est activé. trigger: - platform: state entity_id: binary_sensor.lora2ha0_bal_volet to: "on" condition: - condition: state entity_id: input_boolean.courrier state: "off" action: - target: entity_id: input_boolean.courrier data: {} action: input_boolean.turn_on - data: message: Il y a du courrier action: notify.mobile_app_iphone_de_titis mode: single
Pour la gestion de la porte, c’est un peu plus complexe. Nous allons faire deux choses : notifier l’arrivée d’un colis et indiquer quand le courrier a été récupéré. Si vous êtes plusieurs à la maison, cela évite d’ouvrir la boîte inutilement si un autre membre de la famille a déjà pris le courrier.
Voici ce que nous allons faire :
- Si la porte est ouverte et que l’interrupteur est sur Off, envoyez une notification pour le colis et passez l’interrupteur à On.
- En cas de seconde ouverture de la porte : si la porte est ouverte et que l’interrupteur est sur On (déclenché par le volet ou la première condition de la porte), envoyez une notification indiquant que le courrier a été récupéré et passez l’interrupteur à Off.
L’inconvénient d’avoir une seule porte, c’est que les automatisations peuvent générer des faux positifs. En effet, si le matin vous recevez du courrier et plus tard un colis, la notification de relevé de courrier pourrait se déclencher. Cela étant rare chez moi, cela ne me dérange pas. Si vous avez une boîte avec deux portes, la carte MLA30 permet d’ajouter un troisième capteur.
Voici le code yaml pour cette automatisation.
alias: Courrier - Gestion porte avant description: > Automatisation pour gérer le statut du courrier et envoyer des notifications en fonction de l'état de l'input_boolean.courrier. trigger: - platform: state entity_id: binary_sensor.lora2ha0_bal_porte to: "on" condition: [] action: - choose: - conditions: - condition: state entity_id: input_boolean.courrier state: "on" sequence: - target: entity_id: input_boolean.courrier data: {} action: input_boolean.turn_off - data: message: Courrier récupéré action: notify.notify - conditions: - condition: state entity_id: input_boolean.courrier state: "off" sequence: - target: entity_id: input_boolean.courrier data: {} action: input_boolean.turn_on - data: message: Il y a un colis action: notify.notify mode: single
Voici l’aperçu des notifications sur notre smartphone.
Conclusion
Nous avons maintenant une boîte aux lettres connectée grâce à la fréquence longue portée du LoRa. La meilleure solution serait d’avoir une boîte avec deux portes et de mettre trois capteurs sur la carte MLA30 pour une gestion plus précise des actions des portes. Une autre carte est en cours de développement spécifiquement pour les boîtes aux lettres. Elle sera autonome grâce à une pile ou une batterie.
Je vous invite à rejoindre la page Facebook de Lora2Ha. Vous y découvrirez toutes les cartes disponibles et à venir. Une carte peut avoir plusieurs fonctions, comme nous l’avons vu avec la MLA30, qui permet de connecter des capteurs de porte ainsi que des capteurs de température. La MLD03 permet la gestion d’une piscine ou d’un système d’arrosage, une autre pour le pilotage de votre portail et entre autres fonctionnalités.
Il est vrai que les cartes peuvent être compliqué à réaliser mais Matière Lumière est en réflexion pour fournir des cartes clé en main.