Bonjour,
Je vous partage un petit appareil réalisé à partir d’un LILYGO® TTGO T5-4.7 E-paper, que vous pouvez trouver sur le net aux alentours de 30€, il existe en version batterie Lipo ou battery 18650.
(J’ai pris la version 18650 mais je pense le modifier pour lui mettre une batterie, question de taille. Je pense également réimprimer un boitier car celui-ci ne me convient pas!)
Les fonctionnalités sont les suivantes:
- 24 icones personnalisables
- Icones météo en fonction de la météo actuelle
- Choix du type d’appareil (Homey renvoi “true” ou “false” mais pour une serrure par exemple c’est plus sympa d’avoir “Verrouillé” ou “Déverrouillée”!)
- Activation/désactivation du Deep Sleep par flow
- Temps du Deep Sleep paramétrable par flow
- Affichage de la météo actuelle
- Affichage du pourcentage de la batterie
- Paramètres sauvegardés dans la mémoire flash
- Sélectionner la langue (EN ou FR uniquement pour quelques paramètres, vous ferez le reste dans les flows)
Pour le faire fonctionner avec Homey, vous aurez besoin:
- Côté Homey de l’application Homeyduino et Open Weather disponibles dans le store.
- Côté LILYGO du code que je partage ici: Homey_e-paper
J’ai réalisé le code avec Arduino IDE, vous pouvez le télécharger, installer les librairies nécessaires.
Dans le dossier “Homey_e_paper_v1.0” ouvrez simplement “Homey_e_paper_v1.0.ino”, remplacez “YOUR SSID” et “YOUR PASSWORD” par vos paramètres wifi et téléversez le code dans votre LILYGO.
const char* ssid = "YOUR SSID";
const char* password = "YOUR PASSWORD";
Vous devez choisir la carte ESP32 Dev Module, et activer PSRAM (“enable”).
Vous pouvez également modifier le nom de votre appareil dans l’onglet “HomeyAction”. Je l’ai nommé “Paper Screen”:
Homey.begin("Paper Screen"); //Get name for your device
Je vous conseille ensuite de lui attribuer une adresse IP fixe depuis votre box/routeur internet.
Liste des actions que vous retrouverez dans les flows (Je les explique en détail plus bas):
Attention aux cartes utilisées. Il y a des cartes “Action” et des cartes “Action [Text]” !
- “Time_Deep_Sleep”
- “Deep_Sleep_Enable”
- “Header_Icon”
- “Header_Text”
- “Header_Value”
- “Device_type_Zone_1”
- “Device_type_Zone_2”
- “Device_type_Zone_3”
- “Device_type_Zone_4”
- “Icon_Zone_1”
- “Icon_Zone_2”
- “Icon_Zone_3”
- “Icon_Zone_4”
- “Name_Zone_1”
- “Name_Zone_2”
- “Name_Zone_3”
- “Name_Zone_4”
- “Value_Zone_1”
- “Value_Zone_2”
- “Value_Zone_3”
- “Value_Zone_4”
- “Battery_percent”
- “Last_update”
- “Screen_Repair”
- “Select_Language”
Paramétrage de votre LILYGO:
Les paramètres que vous rentrerez ci dessous serons enregistrer dans la mémoire flash de l’ESP-32, même après redémarrage ou coupure courant les valeurs resterons.
Vous avez donc:
- Screen_Repair : Vous pouvez déclencher cette fonction si vous avez des images résiduelles sur votre écran
- Battery_percent : Si vous êtes sur batterie et que vous n’activez pas le Deep Sleep, il vous faudra déclencher cette action a l’interval que vous souhaitez pour mettre à jour l’affichage du pourcentage de batterie.
- Deep_Sleep_Enable: Option possible: “enable” pour activer le mode Deep Sleep et “disable” pour le désactiver. Le mode Deep Sleep plonge l’ESP-32 en veille profonde ce qui économise énormément de batterie!
- Time_Deep_Sleep: Le temps en seconde entre chaque réveil de l’ESP. Plus il est long, moins l’ESP-32 consomme.
- Select_Language: “FR” ou “EN”, je pense que c’est assez explicite.
Répartion à l’écran:
Le “plan” de l’écran est celui ci
Le flow que j’utilise:
A chaque réveil l’ESP-32 envoie un Trigger à Homey que j’utilise comme déclencheur pour envoyer les valeurs à l’écran. Seules les valeurs qui sont différentes du précédent réveil sont mise à jour (pas besoin de consommer bêtement de la batterie en effaçant des données pour remettre les mêmes!)
Explication des actions:
- Last_update: En haut à droite de l’écran, sous l’icone batterie vous avez une icone de mise à jour. Je viens y envoyer l’heure afin d’avoir un visuel sur le moment de la dernière mise à jour
- Header_Text: On y envoie la météo actuel depuis votre appareil Open Weather
- Header_Icon: cette action est à déclencher sans paramètre afin de mettre l’icone météo à jour en fonction de la météo actuelle
-Header_Value: La température que vous souhaitez. J’ai un détecteur Philips Hue dans le jardin, il me donne la température que je renvoi ici.
Ensuite pour chacune des Zones c’est la même chose (seul le numéro de zone change évidemment):
-
Device_Type_Zone_1: EN OPTION: Homey renvoi “true” ou “false” pour certaines valeur mais pour une serrure par exemple c’est plus sympa d’avoir “Verrouillé” ou “Déverrouillée”! Les différents types sont listés dans l’encadré Jaune
-
Icon_Zone_1: L’icone que vous souhaitez afficher. Attention à bien respecter l’écriture (minuscule et espace). Liste des icones dans l’encadré vert. Je mets le visuel plus bas.
-
Name_Zone_1: Le nom de l’appareil que vous souhaitez afficher. 14 caractères maximum, espace compris (15 ça doit passer je crois)
-
Value_Zone_1: La valeur de l’appareil en question. Pensez à ajouter l’unité de mesure à la fin.
Visuel des Icones disponibles:
RAPPEL: Respecter les majuscules, minuscule, espace…,
==================================================
EN COURS… :
- Récupérer toutes les valeurs météo
IDEES:
- Faire une orientation à 90° soit part flow soit par un bouton embarqué
- Icon dynamique en fonction de l’état du device
FAIT:
-
Optimisation du temps de réveil pour qu’il soit le plus court possible. Edit: Suppression du timer et ajout d’un compteur pour les actions envoyé depuis Homey
-
N’effacer que les zones qui ont besoin de l’être au réveil (je ne sais pas si c’est possible…). Edit: Possible mais l’écran s’assombrit de plus en plus à chaque réveil. Donc je ne l’ai pas fais.
- Ajout d’un device_type “heater” pour les radiateurs (car il sont éteint quand le module est allumé)
- Changer l’icone quand la batterie/écran est connecter à un USB (actuellement vous verrez “✓” en haut à droite)
- Faire une nouvelle coque (J’ai pris celle ci sur Thingiverse, je pense que le PLA bois ne vas pas avec. Peut-être blanc…)
PS: Ceci est un premier jet, j’améliorerai si besoin le texte.
PS2: Avant de crier au scandale pour la planète avec mes 22.9°C au RDC, je chauffe au bois que je récupère…