Afficheur WiFi de récupération de données

esp_display_station_cover


Pourquoi ce projet ?

Lors du concours Ambassadeur 2017 je vous présentais une mini-station météo WiFi connectée.
Le stockage des données via le site de https://thingspeak.com/.

Actuellement, le seul moyen de visualiser ces données est de se connecter au site avec son PC, sa tablette… Bref, rien de bien rapide d’un simple coup d’œil ! C’est vraiment très frustrant !

Pour pallier cette profonde frustration nous avons besoin d’un système autonome, connecté à un accès internet pour récupérer les données sur le site de thingspeak afin de les afficher.


Quel matériel ?

Nous allons maintenant décomposer ce projet en plusieurs briques :

  1. Le hardware
  2. Le schéma électronique
  3. Le firmware
  4. Fabrication et assemblage de l’afficheur
  5. Installation

Définition du projet

Le projet est un système d’afficheur WiFi connecté avec sonde température et humidité de l’air.

Comme dans le projet de la mini station météo nous utiliserons un ESP8266 de Espressif.
Le temps sera synchronisé via un serveur de temps par NTP, la correction pour l’heure d’été/hiver s’effectuera à l’aide d’un switch à deux positions.

L’ensemble capteur et afficheur fonctionne en I2C.

1 – Le hardware

  • Le cerveau du montage : le fameux chip ESP8266 ici, nous utiliserons le module ESP8266-Medium de Seeed Studio communément appelé l’ESP-04esp_cerveau
  • L’afficheur : c’est un oled SSD-1306 de 0,95 pouce, 128*64 pixel il fonctionne en I2C.
    esp_afficheur
  • Les capteurs : il est possible avec le code de ce projet de choisir pour le capteur température et humidité de l’air entre un HTU21D/SHT2x et un HDC1080.
  • Le HTU21D

Les autres composants du montage :

Les fournitures électroniques diverses :
Du fil, des barrettes 2.54 male / femelle, de la gaine thermo rétractable.

2 – Le schéma électronique

esp_schema_display

Peu de composants sont nécessaires au fonctionnement de ce projet, le schéma est assez simple.

  • Le bouton Sw Reset est pour le reset de l’ESP8266.
  • Le bouton Sw Flash est pour Flasher l’ESP8266.
  • Le bouton Sw WiFi Manager est pour configurer le WiFi de l’ESP8266.
  • Le bouton EH hour est  pour la sélection de la correction de l’heure d’été et d’hiver.

Le connecteur FTDI 3.3V Prog est pour le flashage et le debugge de l’ESP8266, attention il faut impérativement une tension <= à 3.3V car l’ESP8266 n’est pas 5V tolérant.

esp_afficheur_2

Afin que l’ESP8266 puisse fonctionner en mode faible consommation (deepSleep), vous devez strapper RESET et GPIO16 sur le module à l’aide d’une goutte de soudure (ici représenté en rouge). Ce qui nous permet aussi d’avoir accès au reset hard de l’ESP via notre bouton Sw Reset.

3 – Le firmware

Commencez par télécharger le firmware.

Les librairies utilisées sont disponibles via l’interface de gestion de librairie de l’IDE Arduino. Les librairies modifiées sont directement inclues dans le répertoire du firmware. N’oubliez pas de renseigner les valeurs de votre Channel à afficher :

const String THINGSPEAK_CHANNEL_ID = "202868"; // Avec votre Channel. const String THINGSPEAK_API_READ_KEY = "LJUEK2DYHC9TVJI4"; // Avec le Read Key du Channel.

Ces valeurs sont uniques pour chaque Channel, les vôtres seront donc différentes.

[one-half-first]esp_channel[/one-half-first]
[one-half]esp_api_keys[/one-half]

Pour cela connectez-vous à votre interface thingspeak, sélectionnez le Channel voulu.
Dans l’onglet API KEYS, nous allons récupérer la key =>Read API KEY, cette dernière va nous permettre de recevoir nos données du Channel voulu ici pour notre station météo.

Pour le flashage du module rien de plus simple : il suffit de l’alimenter et de connecter l’interface série (TX, RX, GND) via le connecteur FTDI 3.3V Prog.

Vous devez sélectionner les options de carte suivantes afin de compiler le source correctement et pouvoir flasher le module. Le numéro de port com étant différent selon votre configuration.

esp_flash_screen

Appuyez maintenant sur le bouton Sw Flash et le bouton Sw reset, relâchez le bouton Sw reset en maintenant le bouton Sw flash enfoncé.

L’ESP8266 est maintenant prêt pour le flashage. Cliquez maintenant sur l’icône téléversement de l’IDE Arduino. Après le téléversement terminé, vous devez appuyer à nouveau sur le bouton Sw reset afin de relancer l’ESP8266 dans son mode de fonctionnement normal.

Il est maintenant temps de configurer le WiFi :

Pour se connecter à son réseau WiFi, il faut appuyer sur les boutons Sw reset et Sw WiFi Manager puis relâcher le bouton Sw reset en maintenant le bouton Sw WiFi Manager enfoncé. Relâcher le bouton Sw WiFi Manager.

A l’aide d’un smartphone, PC ou tablette, il faut se connecter au réseau de notre projet (ici Mini-S).

La connexion effectuée, avec l’aide de vote navigateur préféré, connectez-vous à l’adresse suivante : http://192.168.4.1

Vous devriez obtenir la page d’accueil du WiFI Manager.
Cliquez maintenant sur Configure WiFi.
La liste des réseaux disponibles est alors affichée.
Cliquez sur celui auquel  vous souhaitez vous connecter, entrer le mot de passe.
Puis sauvegardez en cliquant sur SAVE.

esp_config_wifi

Le WiFi est maintenant configuré, l’ESP8266 redémarre et se connecte au réseau renseigné.

4 – Fabrication et assemblage de l’afficheur

Nous commencerons par la fabrication du PCB, en simple face pour faciliter sa réalisation.
Pour cela vous disposez des fichiers dans le .rar du projet. Cliquez-ici pour les récupérer

esp_pcb_1

  • Le câblage : si votre cuivre est nu je vous invite vivement à mettre un bout de scotch isolant en dessous de l’ESP-8266 avant de le câbler. Du polyimide/Kapton c’est bien.

esp_puce

esp_pcb_2

esp_pcb_3

  • Les boutons : ils seront usinés à l’aide du cnc, dans une plaque d’abs noir de 4mm d’épaisseur selon le plan suivant. (Toute cote en mm  tolérance ±0.1mm)

esp_bouton

esp_plaque_abs

  • Le boitier : il est en polycarbonate donc attention lors de l’usinage c’est cassant, collant ! Les trous pour les boutons sont au Ø4.2mm.

L’oblongs pour la sélection de l’heure été/hiver est au Ø3mm sur 6mm.

L’ouverture pour l’USB dépend de votre câble.

esp_boitier_1

Un coup de bombe noir à l’intérieur pour obtenir un look glossy (optionnel !)
Placer maintenant les boutons et le PCB dans le fond du boiter.

esp_boitier_2

Puis monter la sonde,  ici  un HDC1080 avec un chapeau de  protection en PTFE avec l’embase SMA pour notre antenne.

esp_boitier_3

Ensuite mettre en place l’afficheur.

Enfin l’antenne et la face avant.

esp_boitier_4

Attention lors de la peinture de la face avant n’oublier pas de masquer avec un adhésif l’emplacement de l’afficheur.

5 – Installation

Mettre le switch de correction de l’heure dans la position souhaitée.
Brancher maintenant le câble USB afin d’alimenter notre projet.

[one-third-first]
L’écran de connexion s’afficheesp_display_connection[/one-third-first]
[one-third]
les données se synchronisentesp_display_synchro[/one-third]
[one-third]
l’afficheur est maintenant prêtesp_display_done[/one-third]

Dans la boucle principale du programme, les différents écrans défilent.

[one-third-first]esp_afficheur_lcd_1[/one-third-first]
[one-third]esp_afficheur_lcd_2[/one-third]
[one-third]esp_afficheur_lcd_3[/one-third]

 


Évolutions envisagées

  • Côté hardware :
    Ajouter une batterie et un chargeur pour rendre l’afficheur portable.
  • Côté firmware :
    Il serait bon afin de ne pas avoir à re-flasher le module, d’ajouter dans l’interface de configuration (WiFi manager) :

    • La gestion du fuseau horaire et de l’heure d’été/hiver
    • La gestion des écrans (clé, intervalle, etc…)
    • La gestion des différents capteurs.
    • Le stockage des données locales sur thingspeak.
    • La gestion d’une alarme ?
    • Utiliser l’afficheur comme un thermostat ?

Vidéo du projet

Laisser un commentaire