Table des matières:

Horloge des marées et météo : 9 étapes (avec photos)
Horloge des marées et météo : 9 étapes (avec photos)

Vidéo: Horloge des marées et météo : 9 étapes (avec photos)

Vidéo: Horloge des marées et météo : 9 étapes (avec photos)
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Novembre
Anonim
Marée et horloge météo
Marée et horloge météo

Bien que vous puissiez acheter des horloges de marée analogiques qui ont une seule aiguille indiquant si la marée est haute ou basse ou quelque part entre les deux, ce que je voulais, c'était quelque chose qui me dirait à quelle heure sera la marée basse. Je voulais quelque chose sur lequel je pouvais jeter un coup d'œil rapidement sans avoir à l'allumer, à appuyer sur un bouton ou à attendre. Et je voulais quelque chose avec une longue durée de vie de la batterie. J'ai donc utilisé une carte TTGO T5, qui est une carte basée sur ESP32 avec un écran e-paper de 2,13 , connectée à une puce TTL5110. Le TPL5110 allume le T5 toutes les 2,5 heures, et une fois par jour le T5 télécharge les données de marée de NOAA et les données météorologiques d'OpenWeatherMap, affichent les données sur le papier électronique, puis indiquent au TPL5110 d'éteindre le T5.

MISE À JOUR (25 février 2020) L'horloge de marée fonctionne depuis un an maintenant et la batterie est à 4,00 volts, donc l'horloge pourrait fonctionner pendant de nombreuses années.

Étape 1: liste du matériel

Tableau TTGO T5 17 $

Carte Adafruit TPL5110 5 $

Planche Adafruit Perma-Proto Quarter-size (facultatif) 0,71 $ (commande minimum 8,50 $)

Batterie Li-Poly 1200 mAh $10 (ou autre source d'alimentation appropriée)

Câble JST PH à 2 broches – Embase mâle 0,75 $

Condensateur 220 uF

Étape 2: Outils

Fer à souder

Pince à dénuder

Chargeur de batterie Li-Po, comme celui-ci.

Étape 3: Assembler le matériel

Assembler le matériel
Assembler le matériel
Assembler le matériel
Assembler le matériel
Assembler le matériel
Assembler le matériel

L'assemblage du matériel est assez simple comme le montre le schéma. J'ai utilisé une carte Adafruit Perma-proto qui ressemble à une carte proto normale, sauf qu'elle est agencée comme une planche à pain, avec les mêmes connexions électriques qu'une planche à pain, ce qui est bien. Comme je n'avais besoin que de quelques connexions et que je voulais ranger l'ensemble dans une petite boîte, j'ai coupé l'une des planches en quatre avec une meule à tronçonner Dremel.

Le condensateur de 220 uF est très important. Sans lui, le TPL5110 n'allumera jamais le T5. On ne sait pas très bien pourquoi, mais d'autres personnes utilisant le TPL5110 ont eu le même problème. Peut-être que l'ESP32 consomme plus de courant au démarrage que le TTL5110 ne peut en fournir ?

Ne câblez pas la batterie. Utilisez le câble JST-PH afin de pouvoir déconnecter la batterie pour la charger. Il peut y avoir un moyen de recharger la batterie du T5 via le TPL5110 si le TPL5110 est "allumé", mais je ne peux pas garantir cette technique.

J'ai fait une boîte en bois comme enceinte, mais tout ce qui a des dimensions intérieures minimales de 1,5" x 2,75" x 1" fonctionnerait.

Étape 4: Réglez le timing

La carte TPL5110 dispose d'un potentiomètre trim qui définit l'intervalle de temps auquel le TPL5110 se réveille. Utilisez un petit tournevis pour le tourner complètement dans le sens inverse des aiguilles d'une montre. Sur ma carte, cela a défini l'intervalle à 145 minutes, ce qui est en fait plus que le maximum spécifié de 120 minutes, mais cela fonctionne et est cohérent et permettra d'économiser encore plus d'énergie que de se réveiller toutes les 120 minutes, alors je l'ai utilisé. Vous n'avez pas besoin de connaître précisément l'intervalle, car le but est simplement de télécharger des données environ une fois par jour vers 4 heures du matin. Vous pouvez spécifier l'intervalle (par exemple, 145 minutes) et l'heure de réveil (par exemple, 4 heures du matin) dans env_config.h.

(Si vous voulez un meilleur contrôle du timing pour un autre projet, la carte TPL5110 a une trace à l'arrière que vous pouvez couper pour désactiver le potentiomètre. Ensuite, vous attachez une résistance à la broche Delay, et la résistance détermine l'intervalle, selon ce tableau.)

Étape 5: Le logiciel

Vous aurez besoin de l'IDE Arduino avec le package ESP32. Dans l'IDE, réglez votre carte sur "ESP32 Dev Module".

L'esquisse est disponible sur https://github.com/jasonful/Tides et nécessite 3 bibliothèques:

  1. "ESP8266 Weather Station", disponible depuis le gestionnaire de bibliothèque Arduino (ou ici). Vous n'aurez besoin que de ces 6 fichiers: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h et pouvez supprimer le reste.
  2. "Json Streaming Parser" disponible depuis le gestionnaire de bibliothèque Arduino (ou ici)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Même si le code n'est pas emballé comme une véritable bibliothèque, vous pouvez simplement le copier dans votre répertoire de bibliothèques et inclure ce.

Étape 6: Configurer le logiciel

Vous devrez définir plusieurs paramètres (et quelques-uns que vous voudrez peut-être définir) dans le fichier env_config.h, notamment:

  • Wi-Fi SSID et mot de passe
  • Identifiant de la station NOAA (en d'autres termes, où êtes-vous)
  • OpenWeatherMap AppID, auquel vous devrez vous inscrire (c'est facile et gratuit)
  • OpenWeatherMap LocationID (encore une fois, où êtes-vous)
  • CONFIG_USE_TPL5110, qui permet d'utiliser un T5 sans TPL5110. Au lieu de cela, le logiciel entrera en mode veille profonde. La carte T5 consomme environ 8 mA en sommeil profond, donc je m'attendrais à ce que la batterie ne dure que quelques jours.

Étape 7: Comment fonctionne le logiciel

(Vous pouvez sauter cette partie si vous ne vous en souciez pas.)

L'objectif est de se réveiller une fois par jour, mais comme l'intervalle maximum du TPL5110 n'est que de 2 heures environ, le T5 doit se réveiller plus souvent. Ainsi, après avoir téléchargé les données de marée et de météo, il calcule combien de ces intervalles de 2 heures il y a entre maintenant et 4 h demain matin. C'est un peu compliqué par le fait que le TPL5110 coupe totalement l'alimentation du T5, ce qui est bon pour la batterie, mais cela fait perdre de la RAM et de l'horloge temps réel. C'est comme se réveiller chaque matin avec une amnésie. Donc, pour déterminer l'heure qu'il est maintenant, il l'extrait de l'en-tête HTTP de la NOAA. Et pour se souvenir du nombre d'intervalles de 2 heures restants, il écrit ce compteur pour le stockage non volatile (flash). A chaque réveil, il vérifie ce compteur, le décrémente, le mémorise, et s'il est supérieur à zéro, il envoie immédiatement un signal au TPL51110 ("Done") lui demandant de le mettre en veille. Lorsque le compteur atteint zéro, le code télécharge de nouvelles données, recalcule et réinitialise le compteur.

Étape 8: Exécutez-le

Exécuter
Exécuter

Assurez-vous que l'interrupteur sur le côté gauche du T5 est en position haute (marche), téléchargez le croquis sur le T5, et en quelques secondes, l'écran devrait se mettre à jour avec les informations sur la marée et la météo.

Si vous devez déboguer le logiciel, remplacez "#define DEBUG 0" en haut de Tides.ino par "#define DEBUG 1". Cela activera la sortie de débogage série et affichera également au bas de l'e-paper le nombre de redémarrages restants avant de télécharger de nouvelles données, et l'heure à laquelle il a téléchargé les dernières données.

Étape 9: Orientations futures

  1. L'utilisation du TPL5110 associée à un écran e-paper est un excellent moyen d'afficher toutes les données qui ne changent pas souvent, avec une excellente autonomie.
  2. Lorsque j'ai conçu cela, j'ai envisagé d'utiliser le TrigBoard, qui est une carte ESP8266 avec un TPL5111 à bord. Il aurait fallu obtenir un écran e-paper séparé et une carte pilote e-paper comme ceci ou cela. Ou un combo pilote + carte comme ceci ou cela. Pour porter le code sur ESP8266, je pense que le code SSL devra utiliser des empreintes digitales au lieu de certificats, et le code de stockage non volatile devra utiliser la mémoire EEPROM ou RTC.
  3. J'ai récemment entendu dire que la carte Lolin32 est plutôt correcte en mode veille profonde: environ 100uA. Pas aussi bon que la carte TPL51110 (20uA selon Adafruit) mais assez bon.
  4. OpenWeatherMap renvoie beaucoup plus de données météo que je n'en affiche. Y compris les identifiants d'icônes, ce qui nécessiterait de trouver des icônes monochromes quelque part.

Conseillé: