Table des matières:

Postino : Le facteur a-t-il livré quelque chose ? : 6 étapes (avec photos)
Postino : Le facteur a-t-il livré quelque chose ? : 6 étapes (avec photos)

Vidéo: Postino : Le facteur a-t-il livré quelque chose ? : 6 étapes (avec photos)

Vidéo: Postino : Le facteur a-t-il livré quelque chose ? : 6 étapes (avec photos)
Vidéo: Y'a que la vérité qui compte S3E6 2024, Juillet
Anonim
Postino: Le facteur a-t-il livré quelque chose ?
Postino: Le facteur a-t-il livré quelque chose ?

Pas une idée de moi: un jour, un ami m'a demandé un moyen de vérifier à distance si du courrier postal se trouvait dans sa boîte aux lettres. La boîte aux lettres n'est pas sur le chemin menant à sa porte. Comme c'est un garçon paresseux, il s'est demandé si un gadget technologique devrait être capable de l'avertir de toute lettre dans la boîte aux lettres. J'ai regardé le marché et je n'ai pas trouvé d'appareil prêt à l'emploi adapté à ses besoins, alors je me suis lancé un défi: pourquoi ne pas le concevoir et le construire ?

Les contraintes étaient:

  • alimenté par batterie avec une durée de vie raisonnable entre les changements de batterie;
  • communication Wi-Fi;
  • vérifier une seule fois par jour s'il y a eu du courrier ou non;

La question principale était: quel type de capteur pourrait répondre à mes besoins ? Un capteur de proximité ne pouvait pas fonctionner, car le contrôle ne devait être effectué qu'une fois par jour et non en temps réel; un capteur de poids non plus, car cela aurait ajouté des problèmes de complexité et de sensibilité (une feuille de papier pourrait être très légère). Mon choix s'est porté sur un capteur de temps de vol (un micro laser). Une fois calibré pour la taille de la boîte aux lettres, tout ce qui se trouvait au milieu aurait déclenché le capteur ! Compte tenu des 3 contraintes, j'ai décidé d'utiliser un ESP8266 (exécutant le logiciel et se connectant au WiFi), un capteur de temps de vol VL6180 pour la mesure et une horloge temps réel DS3231 pour déclencher tous les circuits une fois par jour: c'est ainsi Postino est né !

Étape 1: Pièces et composants

  • ESP8266-01 (ou ESP-12E NodeMCU)
  • Capteur de temps de vol VL6108
  • DS3231 Horloge temps réel
  • IRLZ44 MosFET à canal N
  • Transistor BC547
  • Résistances
  • Pile CR123

Étape 2: Le capteur

Le capteur
Le capteur

Le cœur du système est le capteur VL6180. Il s'agit d'une technologie révolutionnaire permettant de mesurer la distance absolue indépendamment de la réflectance de la cible. Au lieu d'estimer la distance en mesurant la quantité de lumière réfléchie par l'objet (qui est considérablement influencée par la couleur et la surface), le VL6180X mesure avec précision le temps que prend la lumière pour se rendre à l'objet le plus proche et se refléter vers le capteur (temps -de-vol). Combinant un émetteur IR, un capteur de portée et un capteur de lumière ambiante dans un boîtier refusionnable prêt à l'emploi trois-en-un, le VL6180X est facile à intégrer et permet au fabricant du produit final d'économiser de longues et coûteuses optimisations de conception optique et mécanique.

Le module est conçu pour un fonctionnement à faible puissance. J'ai utilisé la carte de dérivation Pololu qui a des régulateurs de tension à bord qui lui permettent de fonctionner sur une plage de tension d'entrée de 2,7 V à 5,5 V.

Le capteur permet 3 facteurs d'échelle valides qui définissent la plage maximale de la mesure de 20 à 60 cm, avec différentes sensibilités. En configurant un facteur d'échelle de portée, la portée maximale potentielle du capteur peut être augmentée au prix d'une résolution inférieure. Le réglage du facteur d'échelle sur 2 fournit une plage jusqu'à 40 cm avec une résolution de 2 mm, tandis qu'un facteur d'échelle de 3 fournit une plage jusqu'à 60 cm avec une résolution de 3 mm. Vous devez tester les 3 échelles avec les dimensions de votre boîte aux lettres. Comme le mien était de 25 cm (H), j'ai utilisé le facteur d'échelle=1.

Étape 3: personnalisation de l'horloge en temps réel

Pour le RTC, j'ai utilisé une carte de dérivation DS3231 qui comprend une EEPROM (inutile pour mon objectif) et une pile de la taille d'une pièce. Comme j'ai décidé d'alimenter le RTC via la batterie principale de l'appareil (une CR123 3v), j'ai retiré la pile bouton; pour économiser de l'énergie, j'ai également retiré l'EEPROM (en coupant soigneusement ses broches) et la led embarquée.

La pile bouton ne m'a pas été utile car je n'avais pas besoin de garder la date/heure/minute/seconde en temps réel, mais le RTC n'avait qu'à compter pendant 24 heures puis déclencher l'alarme pour allumer l'appareil.

Étape 4: Autres divers à bord

Autres divers à bord
Autres divers à bord
Autres divers à bord
Autres divers à bord

La mise sous tension de l'appareil est réalisée par un transistor et un circuit MosFET, déclenchés par l'alarme RTC. Une fois l'alarme réinitialisée, le circuit coupe l'alimentation de l'appareil pour un autre cycle de 24 heures. Lorsque l'alarme est atteinte, le DS3231 fait passer une broche de haut en bas: dans des conditions normales, le transistor est saturé et court-circuite la grille du MosFET à la terre. Une fois que l'alarme met la base du transistor à la terre, elle s'ouvre et permet au MosFET de fermer le circuit et d'alimenter le reste des composants.

De plus, j'ai ajouté un cavalier "test-1M". Le but de ce commutateur est - s'il est activé - de changer le cycle d'une fois par jour à une fois par minute, afin d'exécuter des tests de déploiement. Afin de changer l'intervalle d'un jour à une minute, vous devez d'abord fermer le cavalier "Test-C" pendant environ 15 secondes, pour contourner la période d'activation de l'alarme de l'horloge et pour allumer l'appareil. Une fois les tests terminés, ouvrez les cavaliers et réinitialisez l'appareil (redémarrez l'alimentation).

Étape 5: Schéma

Schématique
Schématique

Étape 6: Logiciel et logique

Pendant les tests j'ai utilisé (pour des raisons pratiques) un contrôleur NodeMCU, donc le logiciel s'en charge en réglant la variable CHIP sur « NodeMCU » ou « esp8266 ».

L'esquisse implémente la bibliothèque WiFiManager pour permettre à l'appareil de se connecter à un point d'accès WiFi valide lors de la toute première exécution. Dans un tel cas, l'appareil passe en mode AP, vous permettant de vous y connecter et de choisir le bon réseau WiFi à rejoindre. Après cela, la configuration du réseau est enregistrée dans l'EPROM pour les cycles suivants.

La variable REST_MSG contient le message http à envoyer lorsque le capteur trouve un objet dans la boîte aux lettres. Dans mon cas, il envoie un message à un serveur REST domotique, mais vous pouvez le modifier à votre guise: un message Telegram BOT, un événement IFTTT WebHook, etc.

Le reste de l'esquisse se trouve dans la fonction setup(), car la boucle n'est jamais atteinte. Après les configurations nécessaires pour les différentes bibliothèques, le logiciel règle l'heure de l'horloge à 00:00:01 et l'alarme à une fois par jour (ou une fois par minute si le cavalier « test-1M » est activé). Ensuite, il fait la mesure, envoie la notification (si un objet est trouvé dans la boîte aux lettres) et réinitialise la broche d'alarme, arrêtant l'appareil. A la fin du cycle, seul le RTC est allumé, comptant pendant 24 heures. Le cavalier Test-1M est connecté à la broche RX de l'ESP8266, utilisé comme GPIO-3 au moyen du réglage: setMode(PIN, FUNCTION_3). Pour cette raison, vous ne pouvez pas utiliser le moniteur série lors de l'exécution de l'ESP8266: la ligne « #define DEBUG » (qui permet toutes les impressions série dans le croquis) n'est utilisée que lorsqu'un NodeMCU est installé à la place d'un ESP8266.

L'ESP8266 gère la communication I2C avec le RTC et le capteur via ses broches GPIO-0 et GPIO-2, initialisées dans la bibliothèque Wire.

Le code complet peut être téléchargé à partir de ce lien.

Concours de technologie d'assistance
Concours de technologie d'assistance
Concours de technologie d'assistance
Concours de technologie d'assistance

Finaliste du concours de technologie d'assistance

Conseillé: