Réalisation d’un réveil connecté

Réalisation d’un réveil connecté

Présentation du projet

L’objet du projet 1Oclock est de réaliser un objet connecté et utile. Le réveil matin avec simulateur d’aube ayant subi une obsolescence programmée, il me fallait donc un remplaçant.

Le cahier des charges

– DIY
– Affichage de l’heure / réveil
– Affichage de la météo
– Simulateur d’aube
– Opensource

Pour la plateforme, Arduino est tout indiqué pour la partie affichage et la gestion des LED.

La gestion du WiFi (connexion, météo, mise à jour, etc.) étant trop gourmande pour la mémoire de l’Arduino (2ko…) j’ai réparti les tâches avec un ESP8266.

Ce petit module WiFi peu cher a 1 Mo de stockage, 128 Ko de ram, et gère en natif le WiFi, les connexions, etc.

  1. Architecture



    Du coup, l’architecture est la suivante :



    ESP8266 : WiFi, récupération de la météo et de l’heure
    Arduino : Affichage TFT, gestion des LEDS.



    Petit problème : comment faire communiquer ces deux éléments ?



    J’ai donc créé un protocole de communication passant par les ports série des deux microcontrôleurs.



    Chaque message est constitué de caractères d’instruction, et le reste de la chaîne sert de données.



    ExemplesAH16 => heure de l’alarme = 16
    WCQ =W Weather condition = Q (les codes sont dans le code source…)



    Avec ce protocole simple à analyser, les deux systèmes peuvent communiquer tranquillement….
  2. Programmation



    La programmation de la puce ESP8266 se fait à l’aide d’un adaptateur Serie/USB.



    Pour taper le code, l’IDE d’Arduino gère cette puce, donc pas de souci ici.



    Pour les codes sources, ils sont hébergés sur un git : https://framagit.org/thomashocedez/oneoclock



    Le sketch « iot_clock.ino » concerne la partie « Arduino » du code : affichage de l’écran, et leds rgb.



    Le dossier « iot_clock_esp8266 » contient le code à envoyer à l’ESP8266.



    La connexion WiFi étant gérée par « WifiManager », il suffira de vous connecter directement à la puce, qui vous proposera la liste des réseaux WiFi auxquels elle peut se connecter.

    Choisissez le vôtre et tapez votre mot de passe. Dans Settings.h quelques lignes à modifier pour vous : la partie METEO est gérée via le site WeatherUnderround, qui propose une API gratuite, il faut donc vous y enregistrer et récupérer la clé dans votre profil :
    https://www.wunderground.com/member/registration



    const String WUNDERGRROUND_API_KEY = “votrecléàchanger”;

    const String WUNDERGRROUND_LANGUAGE = “FR”;

    const String WUNDERGROUND_COUNTRY = “FR”;

    const String WUNDERGROUND_CITY = “Lille”;
  3. Branchements




    Les LED sont une bande de LED de WS2812, donc l’alimentation est en 5v et la ligne de données est sur le PIN5 de l’Arduino.



    Bande LED :




    LEDs -> Arduino 5

    Tft :

    TFT SCLK -> Arduino 13

    TFT MOSI -> Arduino 11

    TFT CS -> Arduino 10

    TFT RST -> Arduino 9

    TFT DC -> Arduino 8



    Carte SD :



    SD CS -> Arduino 4



    Horloge :



    RTC SCL -> Arduino A5

    RTC SDA -> Arduino A4
    ESP8266/Arduino : RX -> TX TX -> RX GPIO2 -> VCC (5v) CHPD -> 3.3V RST -> VCC



    Avant de tout bien brancher, les tests sur la breadboard …
  4. Un peu plus loin



    Quitte à pousser le bouchon plus loin, autant s’affranchir de l’Arduino et de passer directement avec un Atmega328P.

    Il s’agit de la puce au centre de l’Arduino. Cette étape n’est pas obligatoire, mais ça fini un peu le projet !
  5. Images



    Il y a un dossier “ressources” qui contient les images à placer sur une carte SD pour afficher les icônes de la météo : Il faut des images bmp de 60x60px (encodés en 8 bits)
  6. Boîtier



    Là, c’est un gros boulot… Il faut stocker tout ça dans un boîtier. Personnellement, j’ai commencé à fabriquer la coque de l’écran dans du MDF de 3mm, avec des couches empilées. Le bandeau de LED est disposé autour de cet écran.
Réalisé par
Posté le
Univers
IoT
Temps de fabrication
2h
Niveau de difficulté
Avancé
Matériel(s)
1
Arduino
1
ATMEGA 328
2
Condensateur 22pf
1
Quartz 16 mHz
1
Ruban LED
1
Puce WiFi ESP8266
1
Alimentation 5 V
1
Ecran TFT
1
Horloge RTC

Aucun commentaire. Soyez le premier à en écrire un !

Vous devez être connecté pour laisser un commentaire.