Simulateur d'Aube

 

Le simulateur d'Aube est une lampe programmable qui permet de choisir des créneaux horaires d'allumage et de configurer différentes couleurs et intensités dans ces plages. Cette lampe se pilote avec un téléphone Android. Ce Projet est composé d'une carte Arduino Nano, d'un panneau de LEDs RGB, d'un boitier fabriqué en impression 3D et d'une application Android qui communique en Bluetooth avec la lampe.


Cette lampe a été conçue pour aider à se réveiller en s'allumant lentement avec une couleur feutrée et qu'au fil des minutes l'intensité augmente et que la couleur change vers des tons plus vifs. C'est un exemple d’utilisation d'où son nom "Simulateur d'Aube" mais en réalité son usage peut être très varié puisque cette lampe est entièrement configurable. Elle ne possède pas de boutons, l'unique connectique est la prise d'alimentation, son pilotage se fait par le téléphone (Android) via une connexion Bluetooth.

 

Lors de la première connexion, l'application Android va demander de choisir à quel appareil Bluetooth se connecter. Une fois effectuée cette connexion sera automatique à chaque démarrage de l'application.

 

L'application propose trois choix horaires. Le premier (le plus à gauche) détermine l'heure d'allumage de la lampe. Le second (au milieu) l'heure où la lampe aura atteint sa couleur et sa luminosité finales. Le troisième (le plus à droite) l'heure d'extinction de la lampe.

 

Un bouton ON/OFF permet d'activer ou de désactiver la lampe. C'est une sorte d'interrupteur général.

 

Sept petits boutons permettent de choisir les jours de la semaine où la lampe sera active.

 

Dans la partie basse de l'application, un graphique montre comment la lampe s'allumera. L'axe horizontal est le temps, l'axe vertical représente l'intensité lumineuse, et enfin la couleur de la courbe représente la couleur que lampe affichera.

 

En dessous de ce graphique, il y a un bouton paramètre qui accède à une nouvelle fenêtre qui permet de le régler les intensités lumineuses et couleurs souhaitées.

 

Enfin comme tout réveil, lorsque la lampe n'est plus alimentée (par une coupure de courant par exemple), elle possède un petit module avec une pile bouton pour conserver l'heure. Tous ces paramètres (heures programmées, intensités, couleurs) ne seront pas perdus. Par contre si elle n'est pas alimentée, elle ne s'allumera pas!

Simulateur d'Aube
Simulateur d'Aube
Ecran d'accueil
Ecran d'accueil
Selection des heures
Selection des heures

Page de configuration, en bougeant le "slider" de la couleur rouge cela modifiera son intensité lumineuse : voir l'image suivante
Page de configuration, en bougeant le "slider" de la couleur rouge cela modifiera son intensité lumineuse : voir l'image suivante
L'intensité de démarrage de la couleur rouge a été modifiée
L'intensité de démarrage de la couleur rouge a été modifiée

En cliquant sur le carré jaune, l'application me propose de changer sa couleur, ici je selectionne du violet.
En cliquant sur le carré jaune, l'application propose de changer sa couleur, ici je selectionne du violet.
La modification précédente a été prise en compte, le trait jaune est devenu violet. Maintenant je reviens au menu principal en utilisant la fléche en haut à gauche.
La modification précédente a été prise en compte, le trait jaune est devenu violet. Maintenant je reviens au menu principal en utilisant la fléche en haut à gauche.

Retour au menu principal. Les modifications ont été prises en compte : Le rouge aura une intensité plus forte et le jaune a été remplacé par du violet.
Retour au menu principal. Les modifications ont été prises en compte : Le rouge aura une intensité plus forte et le jaune a été remplacé par du violet.

Schéma

Schéma de montage - Arduino Uno - Bluetooth HC-05 - Panneau de LEDs RGB 8X8 - Module RTC HZ8563
Schéma de montage - Arduino Uno - Bluetooth HC-05 - Panneau de LEDs RGB 8X8 - Module RTC HZ8563
Schéma de montage - Arduino Uno - Bluetooth HC-05 - Panneau de LEDs RGB 8X8 - Module RTC HZ8563
Schéma de montage - Arduino Uno - Bluetooth HC-05 - Panneau de LEDs RGB 8X8 - Module RTC HZ8563
Montage - Arduino Uno - Bluetooth HC-05 - Panneau de LEDs RGB 8X8 - Module RTC HZ8563
Montage - Arduino Uno - Bluetooth HC-05 - Panneau de LEDs RGB 8X8 - Module RTC HZ8563

Module Bluetooth

L'Arduino reçoit toutes les informations provenant de l'application téléphone via le module Bluetooth HC-05 . Pour récupérer ces données l'Arduino utilise la liaison série Rx/Tx proposée en natif dans l’environnent Arduino. Les informations sont stockées dans L'EEPROM de l'Arduino. Ainsi lorsque la lampe est allumée et non connectée au téléphone elle vient récupérer toute la configuration en EEPROM. Librairie <EEPROM.h>.

Dans le cadre d'une reprogrammation de l’Arduino par le port USB, il faut débrancher le module Bluetooth car il utilise la liaison série et peut créer des interférences pendant la reprogrammation.

Module Temps Réel (RTC)

Lorsque l'Arduino est connectée au téléphone (via le Bluetooth), le téléphone va lui donner l'heure, le jour et la semaine. Ceux-ci sont stockés dans l'EEPROM de l'Arduino. Le module RTC prend ces informations pour régler son heure et est ensuite autonome. Lorsque le téléphone se déconnecte, le module RTC continue à compter le temps. Lorsque l’alimentation est débranchée il utilise sa pile bouton pour continuer à fonctionner. Ce module est essentiel, en fonction de l'heure et des données stockées en EEPROM, la lampe sait quand s'allumer, quand s'éteindre et quelles valeurs de couleurs et d'intensités appliquer.

Ce module utilise la communication I2C qui est très largement répandue. Libraire <Wire.h> et <Rtc_Pcf8563.h>.

Panneau de LEDs

Ce panneau contient 3 broches :  le 5 Volts, la masse et la ligne de commande.

Pour le 5 Volts, j'ai opté pour un chargeur secteur  de 4 Ampères. En blanc (c'est le pire cas) chacune des LEDs consomme 60 milliampères, ce qui fait au total 60*64 = 3.8 Ampères.

Pour la broche de commande, elle est reliée à une carte Arduino Uno. Le pilotage des couleurs et de l'intensité se fait facilement avec les librairies <Adafruit_NeoMatrix.h>.

Alimentation

Le panneau de LEDs est alimenté en direct par le chargeur secteur, il n'utilise pas les broches 5V de l'Arduino car le panneau peut tirer jusqu'à 4 Ampères. Les pistes de l'Arduino ne sont pas conçues pour un courant aussi fort.

Le chargeur secteur alimente l'Arduino directement sur sa pin 5 Volts. Cela signifie que l'Arduino est alimentée sans régulateur. Si on avait utilisé les autres moyens d'alimenter l'Arduino (Vin ou port USB), il aurait fallu une tension supérieure que l'on a pas ici. Ceci n'est pas gênant vu que le chargeur fourni une tension stabilisée.

Par contre, il ne faut surtout pas alimenter le port USB de l'Arduino (risque de dommages). En cas de reprogrammation de l’Arduino par l'USB, il est indispensable de débrancher l'alimentation de la lampe avant de brancher le câble USB. 

L'application Android

Sans rentrer dans les détails de cette application, son objectif est de fournir une interface agréable à l'utilisateur et d'envoyer l'ensemble des informations en Bluetooth à l'Arduino.

Cette application a été développée avec AppInventor du MIT, c'est un environnement de développement en ligne et gratuit sous licence libre MIT. L'application permet une mise en page graphique. La programmation est fortement inspirée du langage C mais se fait graphiquement en utilisant des blocs.

AppInventor - Application Android - Mise en Page
AppInventor - Application Android - Mise en Page
AppInventor - Application Android - Programmation par blocs
AppInventor - Application Android - Programmation par blocs

Création du boitier

Le boitier est imprimé en 3D, pour ceci il a fallu le dessiner. J'ai opté pour le logiciel FreeCAD (La version gratuite est très complète). Ensuite l'impression a été effectuée avec l'imprimante 3D Dagoma DiscoEasy200.

Le boitier est imprimé en PLA blanc puisqu’ensuite il sera  poncé puis peint. Le capot est imprimé en PLA translucide, il sera juste poncé.

Dessin du Boitier sous FreeCAD
Dessin du boitier sous FreeCAD
Impression du Boitier avec l'imprimante 3D Dagoma DiscoEasy200
Impression du boitier avec l'imprimante 3D Dagoma DiscoEasy200
Résultat de l'impression 3D
Résultat de l'impression 3D

Assemblage

Assemblage en cours
Assemblage en cours
La Lampe est terminée, le capot s'emboite : avec les frictions il tient tout seul
La Lampe est terminée, le capot s'emboite, avec les frictions il tient tout seul

Fichiers sources

L’ensemble des sources est sous GitHub : https://github.com/Projets-du-dimanche/Simulateur_Aube

 

Fichiers sources Arduino : .ino  .cpp .h

Fichier freeCAD : .FCStd

Fichier d’installation de l'application Android : .apk

Fichier d'importation du projet sous AppInventor : .aia



Écrire commentaire

Commentaires: 2
  • #1

    Jérémie (samedi, 04 novembre 2017 08:29)

    Bravo, très joli projet et surtout très bien documenté !

  • #2

    Clément (dimanche, 26 novembre 2023 08:17)

    Merci pour le partage !

    Ps: Une petite coquille à corriger en début de page: 60 mA pour les leds et non 06mA.