Projet "1 O'Clock" Reveil connecté

Projet « 1 O’Clock » Reveil connecté

Projet « 1 O’Clock » Reveil connecté

Le Projet 1Oclock est réalisé dans le cadre d’un concours organisé par Conrad. Je décide de m’atteler à la réalisation d’un réveil connecté.

Présentation

L’objet du  Projet 1Oclock est de réaliser un objet connecté, et utile. Le réveil matin avec simulateur d’aube ayant subit une obsolescence programmée, il me falait donc un remplacant.

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 leds. 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 1mo de stockage, 128ko de ram, et gère en natif le wifi, les connexions etc.

Liste de course

  • 1 Atmega328p + 2 condos 22pf + Quartz 16mHz (ou Arduino)
  • 1 bande de leds WS2812
  • 1 puce wifi ESP8266
  • 1 alimentation 5V 2A
  • 1 horloge Rtc (facultatif)
  • 1 ecran TFT 1.8 pouces
  • du fil, de l’étain et tout ce qui peut être utile….

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 micro-controleurs.

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

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

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

Programmation

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

how-to-program-esp8266-using-arduino-ide-breadboard-setup-2

Comment connecter l’adaptateur série à l’ESP8266

 

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 auquels elle peut se connecter. Choisisser le votre et taper 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 enregister et récupérer la clé dans votre profile:

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";
 C'est tout !

Branchement

Côté Arduino

Les LEDS sont une bande de leds 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

20161217_164427Avant de tout bien brancher, les tests sur la breadboard ….

 

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 !

Images

Il y a un dossier ‘resources’ qui contient les images à placer sur une carte SD pour afficher les icones de la météo :

m h s v r

Il faut des images bmp de 60x60px (encodés en 8 bits)

Boitier

Là, c’est un gros boulot… Il faut stocker tout ça dans un boitier. Personnellement, j’ai commencé à fabriquer la coque de l’écran dans du MDF de 3mm, avec des couches empilées. Le bandeau de leds est disposé autour de cet écran.

20161217_161532 20161217_161539

20161217_164356

Il reste à stocker l’arduino et l’ESP8266. Là, c’est au gout de chacun…

20161217_164304

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *







WP to LinkedIn Auto Publish Powered By : XYZScripts.com