Amzer Box

De MediaWiki UOF
Aller à la navigation Aller à la recherche

Amzer Box: Station météo connectée avec OpenWeather

AmzerBox.jpg

Introduction

Ce document est un tutoriel s’adressant à toute personne souhaitant créer une station météo, cette station météo affiche des informations météorologiques sur la ville de Brest. Ces informations sont : la température en degrés Celsius, la vitesse du vent en nœud, et une description du temps, exemple: légère pluie, brume, etc.

Pour réaliser cette station météo, il faut utiliser les informations proposées par le site Open Weather, qui met à disposition des données en libre accès. Ces données sont récupérées par l’API(Application Programming Interface) du site Open Weather, elles sont ensuite affichées sur un écran de type LCD, par l’intermédiaire d’une carte FireBeetle Board-ESP32.

Peu de connaissances en informatique et en électronique sont requises pour réaliser l’afficheur. Dans ce document vous retrouverez toutes les étapes nécessaires à la réalisation de la station météo connectée.

Liste du Matériel électronique

  • Carte FireBeetle Board-ESP32(CH340C)
  • Un afficheur de type Grove-16x2 LCD (White on Blue) du fabriquant Seeed
  • Fils de câblages
  • Batterie 3,7V 400 mAh
  • Cable USB-Micro USB pour recharger la batterie et programmer FireBeetle Board-’ESP32

Liste des Ressources Informatiques

  • IDE Arduino
  • Pilote pour la FireBeetle Board-ESP32
  • Librairie Wifi.h
  • Librairie ArduinoJson.h
  • Librairie HttpClient.h
  • Libraire rgb_lcd.h

Architecture électronique

Un schéma du circuit électronique présentant le montage du système

Architecture électronique Amzer Box.png

Couleur des câbles à respecter pour relier le FireBeetle Board-ESP32 à l’écran LCD

Noir GND
Rouge VCC
Blanc SDA
Jaune SCL

Algorithme du programme

Cette section présente l'algorithme du programme

Algorithme Amzer Box.png

Tutoriel pour la programmation

Ces étapes permettent d’installer le programme source, sur la FireBeetle Board- ESP32.

  • 1ere étape: Installer Arduino IDE et connecter la FireBeetle Board-ESP32 à l’IDE, pour ce faire il est nécessaire de télécharger un pilote(https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all) permettant à la carte FireBeetle de communiquer avec le port usb d’un ordinateur.
  • 2éme étape: S’assurer que la carte est reconnue par l’IDE. Une fois le pilote installé des manipulations sur l’IDE Arduino sont à faire.

(Tutoriel à ce lien : http://electroniqueamateur.blogspot.com/2019/07/programmer-lesp32-avec-lide-arduino.html).

  • 3ème étape: Ouvrir les fichiers sources dans l’IDE, et suivre les commentaires. Les fichiers sources, présent dans la documentation sont : apiopenweather.ino et credentials.h.

Utilisation de l’API-OpenWeather avec un FireBeetle Board-ESP32

Ces étapes, permettent d’écrire le programme pour l’utilisation de l’API OpenWeather et l’affichage sur l’écran LCD.

  • 1ére étape: Récupérer l’url permettant d’accéder à l’API OpenWeather ainsi que la clé API. Pour ce faire :
  1. se rendre à se lien : https://openweathermap.org/current et récuperer la ligne url souhaiter.
  2. Pour obtenir une API Key il faut se créer un compte sur le site et une API Key sera attribuée. Par exemple pour récupérer les informations de Brest en français l’url sera la suivante https://api.openweathermap.org/data/2.5/weather?q=Brest,fr&appid={VotreAPIKey}&units=metric&lang=fr”
  1. Premièrement déclarer une variable de type HTTPClient: HTTPClient http;
  2. ensuite interroger les serveurs OpenWeather avec la ligne de commande:http.begin(“URL DE VOTRE API OpenWeather”);
  3. Et finalement stocker votre résultat dans une variable de type int:int reponseAPI= http.GET();
  4. Il est possible de vérifier les données reçues avec :Serial.println(reponseAPI);
  • 3éme étape: Deserialisation, à l’aide de la bibliothèque ArduinoJson.h. Cette étape permet d’organiser sous forme de variable la réponse de l’API (elle était en quelque sorte compacter avant cette étape) pour permettre une utilisation par la FireBeetle Board-ESP32 notamment l’affichage. En se rendant sur le site https://arduinojson.org/v6/assistant/ un générateur de code est disponible pour la réalisation de cette étape. Une fois sur le site il faut :
  • Etape 1: Configuration, dans Processor sélectionner “ESP32” dans Mode “Deserialize” et dans Input Type “String”.
  • Étape 2: Dans la zone texte copier coller le document JSON de votre API, autrement dit en ouvrant un navigateur web et en mettant votre url d’API, lancer une recherche et copier le texte s’affichant.
  • Étape 3: Information sur l’espace que les données récupérées via l’API utiliseront.
  • Étape 4: Obtention des lignes de commandes à insérer dans l’IDE Arduino. Pour plus de détails sur quelles données garder et comment intégrer ces commandes dans le programme voir le programme source.
  • 4éme étape: Affichage sur l’écran LCD en utilisant la bibliothèque rgb_lcd.h, (tutoriel à ce lien :https://simple-circuit.com/arduino-grove-lcd-i2c-1602-example/ sur comment connecter l’écran à l’ESP32), il est important de bien préciser l’origine en utilisant la fonction lcd.setcursor(colonnes, lignes) et d’effacer l’écran à l’aide de lcd.clear() afin d’éviter des conflits d’affichages (voir programme source pour plus de précision). Ensuite afficher les variables sur l’écran en utilisant la fonction : lcd.print(votre_variable);

Tutoriel pour l'assemblage de la boite

Cette section est dédiée à l’assemblage de la boîte de la station météo. Le plan est disponible dans la documentation.

  • Produire les différentes parti de la boîte à l'aide des plan fournit en documentation., à noter que le nuage doit être couper et non graver.(à l'aide par, exemple de la La découpeuse Laser
  • Une fois toutes les pièces obtenues, les assembler à l'aide par exemple d'un pistolet à colle, excepter le couvercle.
  • Mettre l'écran dans l'encoche prévu à cet effet, percer un trou pour l'interrupteur et coincer la FireBeetle Board-ESP32 dans le nuage.
  • Vous pouvez coincer la Firebeetle et l'écran à l'aide calle en bois.
  • Fixer le couvercle avec des vis.

Références

Liens Wiki

Auteurs

Amzer Box réaliser par Ange Leyrit et Harrison Misy, étudiant en L2 Informatique à l'Université de Bretagne Occidental dans le cadre d'un stage, au sein de l'UBO Open Factory, supervisé par Mathieu Cariou.