Auteur Mathieu | Dernière modification 9/12/2019 par Clementflipo
connectée, Boite aux lettres, IoT, esp8266, twitter, Hack, Domotique, solaire, rtc, Wifi Boite_aux_lettres_connectée_DSC_01202.jpg Création
Pour l’électronique:
Pour la structure:
Le courrier est détecté grâce à des LEDs et une photorésistance. Lorsque le courrier est déposé il tombe sur les LEDs disposées au fond, ce qui modifie la luminosité à l'intérieur, changement qui est détecté par la photorésistance. L'ESP 8266 détecte ainsi la présence de courrier. Il se connecte alors au réseau wifi puis publie un message sur twitter informant du passage du facteur ou du livreur. Le tout fonctionne de manière autonome grâce à des panneaux solaire et une batterie
Commencez par découper la plaque de contreplaqué au dimension de votre boite aux lettres.
Puis en son centre découpez un carré de 100*100 mm.
Découpez un carré de 100*100 mm dans du plexiglas.
Insérez le dans la plaque en bois. Pour le maintenir en place utilisez de la colle chaude ou de la colle plexiglas.
Enfin percez dans les coins, 4 trous de diamètre 4 puis montez y un boulon de 60mm. Ces derniers servent de pieds pour maintenir la structure en hauteur.
Pour avoir un système de LEDs suffisamment puissant pour que les variations de luminosité soient détectés je me suis inspiré des panneaux à leds DIY utilisés en vidéo (Cf vidéos d'Experimentboy ou DIY Perks)
Pour se faire, commencez par découper une plaque de contreplaqué de 140*140mm. Puis collez y 8/10 bandes de leds. Ensuite reliez ensemble d'un coté tous les pôles "+" et de l'autre tous les pôles "-". Et ensuite placez un bornier de l'autre coté de la plaque pour l'alimentation.
Pour finir assemblez les LEDs à la structure principale à l'aide de 4 boulons M4 30mm
Comme dis précédemment le système repose sur un ESP8266 qui sera programmé à l'aide de l'IDE arduino. Pour alimenter ce dernier il sera nécessaire d'utiliser un LM1117 couplé à deux condensateurs de 10 μF pour réguler la tension à 3,3V.
On trouve ensuite la photorésistance chargée de détecter les variations de luminosité reliée par l'intermédiaire d'une résistance de 330Ohms à la broche ADC de l'ESP.
Les LEDs nécessitant un courant supérieur à ce qu'est capable de fournir l'ESP elles sont contrôlées par un l’intermédiaire d'un Mosfet (IRF520 / 530 /540) relié par l'intermédiaire d'une résistance de 1KOhms à la broche 7 (GPIO13) de l'ESP.. De plus comme ces dernières doivent être alimentées en 12V et que la batterie utilisée ne fournie que 6V, il est nécessaire d'ajouter un élévateur de tension (boost converter).
Et pour finir on retrouve une RTC DS3231 qui permet au système d'être toujours à l'heure après un reboot. Cette dernière est reliée à l'ESP par l’intermédiaire d'une liaison i2C disponible sur les broches 13 (GPIO 5) et 14 (GPIO 4)
Une fois tous les composants soudés sur une plaque d'essai installez le tout dans une boite de dérivation et fixez la à la structure principale.
Pour alimenter le système j'ai choisi d'utiliser une batterie au plomb 6V de 4A couplé à deux panneaux solaire de 250 mA (valeur théorique loin de la réalité...) branchés en parallèle le tout géré par un régulateur de charge.
Laisser les LEDs allumées en permanence entraîne une consommation bien trop importante (autours des 250mA) ce qui empêche d’alimenter le circuit sur batterie. La solution est donc de calibrer une fois le système sans courrier puis de faire des mesure à intervalles réguliers pour détecter la présence de courrier.
Ainsi le circuit consomme environ 75mA (non connecté à un réseau wifi), ce qui donne avec la batterie une autonomie d'environ deux jours. D'après mes mesures les panneaux solaires fournissent au maximum 300 mA en plein soleil mais cela chute au alentours de 100 mA avec un ciel nuageux. Ce qui sur une base de 10h de soleil par jour étend l'autonomie à environ 5 jours...
La solution pour ne pas avoir à recharger le système est donc d'utiliser une RTC et la fonction sleep mode de l'ESP. Cette fonction s’active en reliant la broche 4 (GPIO 16) à la broche 1 (reset) et au niveau du code avec:
ESP.deepSleep(temps en micro seconde);
Elle a pour effet de mettre en "sommeil" l'ESP8266 réduisant sa consommation au alentour de 1mA mais entraîne un reboot de ce dernier à son réveil. C'est ici qu’intervient la RTC, qui permet au système de se "repérer" dans le temps.
Connaissant à peut près les horaires de passage de mon facteur, j'ai décidé que l'ESP resterait allumé entre 10h et 14h et vérifierait sur cette plage horaire la présence de courrier toutes les 5 minutes. Le reste du temps (de 14h à 10h) l'ESP est en sommeil, et le circuit consomme environ 10 mA (consommation du à la RTC). Ce qui permet en théorie au système de fonctionner indéfiniment !!
Pour permettre à l'ESP8266 nous allons utiliser la Tweet Library:
https://arduino-tweet.appspot.com/
Ensuite pour pouvoir Tweeter vous allez devoir accorder l’accès au compte Twitter via une clef. Pour l'obtenir rendez vous sur cette page:
https://api.twitter.com/oauth/authorize?oauth_nonce=2828234892369209436&oauth_timestamp=1500815756&oauth_consumer_key=oQA2jr32rWowM4SpGB64yQ&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=DHDffgAAAAAAAViGAAABXW-XDZc&oauth_signature=jPqM1kBNpqhVUIDJMFQn%2BB92uo4%3D
Malheureusement la Tweet Library n'est pas nativement compatible avec les ESP car elle a été développée pour être utilisée avec un Arduino et un shield ethernet. Pour la rendre compatible il va vous falloir modifier le header ( Twitter.h)
Pour cela rajoutez ligne 15
#include <ESP8266Wifi.h>
passez en commentaire les lignes 21 et 23
et remplacez EthernetClient client; ligne 35 par
WifiClient client;
Pour programmer l'ESP82266 on va uiliser l'IDE Arduino. Pour cela, il vous faut tout d’abord ajouter le support de ce type de carte dans l'IDE en ajoutant l'URL suivante dans Fichier>Préférences>URL de gestionnaire de cartes supplémentaires :
http://arduino.esp8266.com/package_esp8266com_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json
Puis choisir "Generic ESP8266 Module " dans Outils>types de carte.
Et enfin relier l'ESP au convertisseur USB/série comme indiqué sur le schéma.
Téléchargez et installez ensuite la librairie RTC développée par Makuna pour gérer la DS3231:
https://github.com/Makuna/Rtc
Puis exécuter le programme DS3231_Simple pour mette à l’heure la RTC.
Et enfin vous pouvez envoyer sur l'ESP8266 le programme suivant pour gérer votre boite aux lettre connectée (Cf algorigramme pour les détails sur son fonctionnement):
https://drive.google.com/open?id=0B8tCTkPLfNNraHhlbnNaTmx3VlU
Ce tutoriel arrive à son terme, j'espère avoir été clair dans mes explications. Cependant, si jamais vous ne comprenez pas un point n'hésitez pas à engager la conversation 😉 En tous cas si vous reproduisez ce système ou que vous avez des idées d'amélioration partagez les !!!
Hackable magazine numéro 2 et 7
ESP8266:
Tweet Library:
Choix de la batterie:
Cochez cette case si vous considérez ce tutoriel terminé
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #