Boite aux lettres Connectée ESP8266

Auteur avatarEric CZELADKA | Dernière modification 9/12/2019 par Clementflipo

Boite aux lettres Connectée ESP8266 profil.JPG
Ce tutoriel décrit les éléments ainsi que les étapes pour concevoir un système de BàL connectée qui détecte la remise du courrier dans la boite et prévient immédiatement par mail et telegram, son propriétaire de la dépose d'un courrier. Un petit message de remerciement est également diffusé par HP à l'attention du facteur.

Introduction

Quoi de plus agaçant que de ne jamais savoir si le courrier est passé ou non ? surtout lorsque l'on attend LA missive pour les vacances, la réussite aux examens, les résultats du Labo etc... Et quand on fait patienter les voisins en leur demandant de retenir l’ascenseur pendant que l'on tente désespérément d'ouvrir la boite à lettre située dans l'entrée de l'immeuble ?

Tout cela est terminé. Le petit dispositif décrit ci-dessous détecte la dépose d'un pli dans la boite, émet un message sonore de remerciement à destination du facteur ou du gardien... et envoie un mail et une notification sur votre logiciel IM favori.

Matériaux

un node MCU ESP8266  : 7,5€

un Module à Ultrasons HC-SR04 4 Pin Capteur de Mesure de Distance pour Arduino : 3.45€

Module MP3 V2.0 Grove : 10.5€

un petit HP de récupération ou portable : moins de 10€

Des fils de prototypage : 4€

Une Breadboard : 1.4€

Une powerbank : 10€

un cable USB - Micro USB : 2€

Une Micro SD : no name à moins de 4€

Outils

Un imprimante 3D pour fabriquer la boite de rangement mais n'importe quelle boite peut convenir.

IDE Arduino pour récupérer le code et le téléverser sur le Node MCU ESP8266

Étape 1 - Rassembler les différents composants et les monter sur la platine

1/ Connexion du node MCU :

sur la platine de prototypage dans le sens de la longueur afin que les rangées de pattes du module ne soient pas connectées.

Le Node MCU fonctionne en 3.3V mais les 2 composants utilisés fonctionnent avec 5V. Une PowerBank de 5V alimentera le dispositif. Il conviendra donc de connecter le capteur à ultrason et le player MP3 sur la broche Vin du node MCU afin de bénéficier des 5V en entrée.

2/ Connexion du capteur :

Vcc sur Vin de l'ESP

Gnd sur Gnd

Trig sur D1

Echo sur D2

3/ Connexion du player Groove MP3

Vcc sur Vin

Gnd sur Gnd

Tx c'est le retour et ici nous ne l'utiliserons pas donc pas connecté

Rx sur le Tx de l'ESP mais malheureusement après de nombreux essais infructueux il s'est avéré que les pin Rx et Tx de l'ESP n'étaient pas ceux qui devaient être utilisés. Un rapide coup d'oeil sur la documentation du module permet de voir que plusieurs pin peuvent faire office de Rx et Tx

Les broches D7 et D8 de l'ESP font office également de Rx(2) et Tx(2) qui correspondent donc dans l'IDE Arduino aux GPIO 13 et 15 (ce sera important dans le code).

Nous connectons donc le Rx du player MP3 à la broche D8 (Tx) de l'ESP afin que celui ci puisse envoyer ses informations.

4/ Connexion du Jack du HP à l'entrée Jackdu player MP3

Penser à l'alimentation du HP (power bank double USB)

5/ Connexion du node au PC pour téléversement du code =) étape 2


Étape 2 - Le Code

Les librairies

ESP8266WiFi.h (avec l'ESP)

SoftwareSerial.h

là : https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/libraries/SoftwareSerial/src

MP3Player_KT403A.h pour le groveMP3

là : https://github.com/Seeed-Studio/Grove_Serial_MP3_Player_V2.0

Petite astuce : la connexion avec le player MP3 doit se faire sur Rx et Tx. Malheureusement les pin de l'ESP n'ont jamais permis cela. La carte des pin de l'ESP permet de trouver d'autres pin compatibles =) les D7 et D8 qui font office de RX2 et TX2 et qui correspondent aux GPIO 13 et 15 ce qui explique cette ligne dans le code :

SoftwareSerial mp3(13, 15); 

La varaible d sera à paramétrer selon la distance de déclenchement en deçà de laquelle le dispositif se déclenche.

Penser à renseigner les caractéristiques du Wifi, la règle de construction de la requête IFTTT (voir plus bas) et noter l'API Key.




Étape 3 - Le paramétrage du service IFTTT

IFTTT est un service web gratuit permettant à ses utilisateurs de créer des chaînes d'instruction simples (wikipédia).

1/ Créer un compte

2/ En haut dans le menu aller sur "My Applet"

3/ New Applet et cliquer sur le "This" puis chercher le service Webhook

4/ cliquer dessus puis définir l'évènement car il fera partie de la chaine de caractère qui sera envoyée au serveur, celle-ci :

String url = String("/trigger/test_mailbox/with/key/Ma_Key_Perso_IFTTT");

Ici on va nommer notre évènement déclencheur "test_mailbox" + create trigger

5/ passer au "that"

Étape 4 - Suite paramétrage IFTTT

6/ sélectionner le service mail et le définir

7/ Penser à regarder les conditions de fonctionnement et l'API du service en cliquant sur recherche (loupe), chercher Webhook, cliquer dessus puis regarder la documentation qui explique comment formuler la requête GET et surtout qui montre votre API KEY à intégrer au message.


Étape 5 - Complétude du code

Le code fourni en annexe doit être mis à jour.

Les éléments à caractère personnel à modifier sont :

  • le SSID du Wifi
  • Le password du Wifi
  • la valeur d de la distance de déclenchement du capteur =) en fonction de la taille de la BàL
  • L'API Key dans la ligne String url de formation du chemin pour la requête GET sur le host maker.ifttt.com




Étape 6 - Préparation de la MICRO SD

Formater la micro SD en FAT 32 puis y déposer le fichier MP3 "facteur" qui est un message vocal de remerciement du facteur lorsqu'il dépose le courrier.

Mettre la Sd dans le GroveMP3 puis connecter le HP dans le jack et l'alimenter en USB (autre powerbank ou powerbank avec 2 sorties USB)

C'est terminé.

Alimenter le dispositif et attendre les messages.

Notes et références

Il s'agit d'une V1 d'un projet qui se veut plus autonome.

La version 2 doit mettre en oeuvre les fonctions de deep sleep de l'ESP afin d'avoir une autonomie plus forte.

il est également prévu de connecter une mini caméra et de prendre en photo la lettre déposée puis de l'envoyer mais les questions d'alimentation doivent alors être réglée.

Commentaires