Conseils pour fabriquer un réveil

Bonsoir.
J'ai besoin de conseils pour savoir quel hardware acheter pour mon nouveau projet: je veux fabriquer un réveil avec:

  • affichage de l'heure à l'aide d'un écran 4 chiffres 7 segments
  • possibilité de programmer des alarmes à l'aide d'une interface graphique sur un PC relié en wifi (on pourra par exemple faire sonner le réveil tous les lundi à 7h, tous les mardis à 8h,...)
  • un écran tactile qui permet d'afficher des boutons virtuels (pour couper l'alarme, supprimer la prochaine alarme si on est déjà réveillé), d'afficher la liste des alarmes programmées, d'afficher des messages...
  • un module RTC pour avoir l'heure (qui sera mis à l'heure régulièrement avec un serveur de temps grâce au wifi)
  • peut-être un lecteur MP3 pour lire aléatoirement de la musique stockée sur une carte SD, à condition de pour pouvoir amplifier le son avec la même alimentation que le reste (je veux avoir une seule alimentation)

Je préférerais que ça soit programmé en micropython, donc il me faut du matériel avec des bibliothèques micropython fournies.
Je pensais utiliser un microcontrôleur ESP32, mais lequel acheter ?
J'aimerais que l'écran tactile soit assez gros. Que me conseillez-vous ?
Merci pour les réponses.

"- possibilité de programmer des alarmes à l'aide d'une interface graphique sur un PC relié en wifi (on pourra par exemple faire sonner le réveil tous les lundi à 7h, tous les mardis à 8h,...)"
A noter qu'un RPi peut fonctionner comme un PC; si toutes les fonctionnalités sont dans ledit RPi (et piloter un écran 4 chiffres, 7 segments peut se faire , soit sur l'écran du RPi, soit par le bus I2C ou SPi de la RPi), jouer de la musique à heure fixes est aussi faisable), peut être que ça reviendrait moins cher... et que RPi a deux pythons (2.7 et 3, IIRC) dans toute leur taille, interfacé au bus (GPIO).

sinon, un exemple d'automate faisant appel à un esp32, différenciant le jour et la nuit (3 lignes de python pour tester l'heure) et peut être suceptible d'améliorations est disponible dans Faire un afficheur jour/nuit pour enfants avec un M5Stack et MicroPython - HackSpark - Holdiland

En effet le module m5stack me paraît adapté à ton besoin

Bonjour.
@lesept Apparemment, le m5stack n’a pas un écran tactile, donc ça ne correspond pas exactement à ce que je cherche.
@dbrion06 Effectivement, je pourrais passer sur un raspberry Pi, je vais jeter un coup d’oeil… mais alors il faut que je change de forum :wink:
Merci pour les réponses.

Non, mais il a des boutons.

jcd21:
Je préférerais que ça soit programmé en micropython, donc il me faut du matériel avec des bibliothèques micropython fournies.

jcd21:
Effectivement, je pourrais passer sur un raspberry Pi, je vais jeter un coup d'oeil... mais alors il faut que je change de forum :wink:
Merci pour les réponses.

Il faudra aussi que tu changes de forum si tu veux faire du micropython

A noter que RPi , non content d'avoir deux pythons de taille normale, a un C++ qui a l'air fonctionnel (et wiringPi et pigpio ont les liens avec pythons, C,C++ entre autres....)
Vous pouvez (mais ça rajoute de la confusion) panacher plusieurs cartes, liées entre elles.

J'aimerais que l'écran tactile soit assez gros. Que me conseillez-vous ?

Écran officiel 7 pouces ?
Il se fixe directement sur la RASPBERRY. Il est reconnu d'office, pas de config ni de driver particulier.

Recevez vous plus d'infos sur le RPi ici, ce qui est bizarre,du moins formellement, que dans :Conseils pour fabriquer un réveil - Raspberry Pi Forums

J'ajoute que si la taille de l'écran dépasse 2.8 pouces, la taille maxi d'un écran SPI, cela met pratiquement hors jeu d'office une solution à base d'ESP32 ou ESP8266, les écrans TFT de grande taille ayant en général une interface du type ITDB2 :

Seule un ARDUINO MEGA pourrait convenir, en ajoutant en module ESP8266 ou ESP32 pour la partie WIFI.

Ensuite tout dépend de ce que tu entends par "gros écran". Un 2.8" est grand par rapport à un 0.96".

Il existe des 2.8" et 3.2" tactiles SPI. Pour un réveil cela pourrait suffire.

ILI9341

Une autre structure (on doit pouvoir "panacher" comme on veut, menant à beaucoup de structures viables) serait :

Arduino2560+ écran tactile -> liaiso serie-> Rpi (qui a le
wifi, accèdant à l'heure juste; on peut y mettre une RTC pour fiabiliser -ce n'est pas tout à fait un PC, quand même-;
qui peut stocker des tonnes de mélodies et vieos;
qui a pyserial -via le package manager-;
qui peut avoir un très gros écran -via le HDMI ou vga adapteur+HDMI-

On trouve des écrans 3.5" SPI tactiles qui fonctionnent avec un ESP32.

Je continue à penser que le M5stack est la meilleure solution : elle est packagée d’origine, tu auras un produit qui ressemble à quelque chose tout de suite plutôt qu’une carte avec un écran et des fils dans tous les sens. C’est plus propre pour une chambre – au prix d’un écran qui n’est pas tactile…

J’ai trouvé par hasard une bibliothèque pour construire des menus interactifs sur M5stack qui me semble très puissante.

Les deux solutions (parmi, je le crains, une infinité) sont tout à fait honorables ....

La RASPBERRY PI dispose d'un choix d'écrans tactiles phénoménal :

Connecteur 40 points

Connecteur DSI

Ces écrans s'intègrent mécaniquement de manière très propre à la RASPBERRY.

Un détail me choque : le réveil doit être équipé d'un afficheur 7 segments.
Avec un écran TFT on se demande ou est l'utilité d'ailleurs ...

On voit mal aussi l'utilité du circuit RTC si on a le WIFI. Même un ESP32 pourra gérer l'heure de manière autonome même en cas de coupure momentanée du WIFI.

Utilité du module MP3 dans le cas d'une RASPBERRY PI ?

Toutes les solutions sont possibles :

ESP32 avec écran SPI (limité en taille)

RASPBERRY PI avec écran jusqu'à 7 pouces.

Le critère de choix principal est la taille de l'écran, qui reste l'inconnue principale.

Sans éclaircissement sur ce point, une réponse plus précise me semble impossible.

Un petit avantage pour la RASPBERRY PI : les WEB radios qui permettraient de faire un radio-réveil.

“On voit mal aussi l’utilité du circuit RTC si on a le WIFI”

Les RPi n’ayant pas de batterie de sauvegarde, et étant assez portables, on peut souhaiter avoir l’heure au démarrage et mettre une horloge RTC sur leur I2C (c’est un composant assez vendu) -j’utilise un Arduino++DS13xx+USB+Pyserial pour ce faire, les pattes du RPi étant squattées.-

“Utilité du module MP3 dans le cas d’une RASPBERRY PI ?”
Je suis presque sûr que les multiples pythons de la RPi se font un plaisir d’activer un visionneur/ écouteur de videos… ou de brancher sur le ouaibe…

Un afficheur 7 segments peut être émulé sur l’écran avec opencv (python ou C++; livré avec Rapsbian…) si on est d’humeur d’utiliser un marteau pilon pour écraser une petite mouche… Je parie que debian a un bout de logiciel qui emule un afficheur 7 segments -fonts - dseg a l’air de faire des beaux écrans "DSEG": 7-segment and 14-segment free fonts);

Bonjour. Je vais répondre aux questions:
Pour simplifier, je préfère avoir une seule carte pour tout gérer, puisque ça doit être possible.
J'aimerais avoir un écran de 3.5-4 pouces tactile.
Le M5stack ne m'intéresse pas à cause de l'écran non tactile.
Je pensais mettre un écran à part (4 chiffres 7 segments) d'affichage de l'heure pour éviter de faire fonctionner en permanence l'écran tactile (usure ?, consommation, qualité de l'affichage avec rétro éclairage dans le noir ?)
J'ai aussi pensé ajouter un module RTC pour fiabiliser le calcul de l'heure en cas de dysfonctionnement du wifi (plus d'accès au serveur de temps), mais ce n'est peut-être pas nécessaire avec certaines cartes qui en ont déjà un ?
J'ai aussi besoin d'un module MP3 pour jouer aléatoirement des morceaux de musique.

On trouve des TFT 3.5 pouces (ILI9488) en 320x480, compatibles ESP32.

Module-LCD-TFT-3-5-pouces-avec-cran-tactile-ILI9488-pilote-320x480-port-SPI-interface

Cette librairie supporte également le contrôleur TouchScreen XPT2046.

Il y a certainement d'autres écrans et d'autres librairies.

Donc, deux choses à prendre en compte lors de l'achat :

  • le vendeur doit préciser obligatoirement le type de driver TFT et TouchScreen
  • disponibilité d'une librairie pour le TFT et le TouchScreen

Il faut bien avoir à l'esprit que l'affichage en SPI sera beaucoup plus lent qu'avec une interface parallèle. Hors de question de rafraîchir l'écran en entier à chaque affichage.
Pour afficher une information, on efface l'information précédente avec la couleur de fond (remplissage d'un rectangle), et on réécrit la nouvelle information. Certaines librairies font ça automatiquement.

Afficheur 7 segments : il est loin d'être évident qu'un 7 segments consomme moins qu'un TFT. En tous cas, il faudra sérieusement limiter la luminosité.
Usure du TFT ? je ne saurais dire.

RTC : si le WIFI disparaît, l'heure système est préservée, basée sur l'oscillateur du micro-contrôleur.

La fonction time() utilise l'heure système (un compteur de secondes interne). Sa précision est largement suffisante pour maintenir une heure correcte en cas d'absence momentanée du WIFI.

Dans le principe, on remet à l'heure périodiquement l'heure système (toutes les heures) avec l'heure récupérée par WIFI.
L'application lit l'heure système avec time().

Le seul problème est : coupure secteur et redémarrage avec heure système à zéro jusqu'à ce que le WIFI soit à nouveau disponible.
Un RTC me semble superflu, à moins d'avoir vraiment des problèmes récurrents d'accès au WIFI.

MP3 : un ESP32 aura besoin effectivement d'un player MP3 (voir DFPlayer).

Dernier point : µPython pour ESP32
J'avoue franchement : j'ai déjà essayé sur STM32 mais pas sur ESP32.

Bien entendu on trouve aussi une foultitude d'écrans TFT pour RASPBERRY PI directement implantables sur la carte.
Dans ce cas, on peut se passer également du player MP3.

2 choix :

ESP32 avec écran SPI (et des fils entre les deux :confused: )

RASPBERRY PI avec écran enfiché sur la carte (plus propre mais plus cher).

Je n'ai pas cherché de solution à base de PYBoard (%Python natif) avec écran 3.5 pouces. A voir.

On trouve des modules ESP32 équipés d'un écran TFT non tactile 2.4'' de boutons et d'un lecteur SD. Chercher 'ttgo t4' sur gogole images.

Une vidéo intéressante de Matthias Spiess

Pour rendre tactile un écran il est possible de déposer dessus une couche tactile (touch screen overlay) mais je ne sais pas si ça existe pour ces dimensions