Mini écran connecté : Différence entre versions

Ligne 104 : Ligne 104 :
 
*Puis cliquer sur '''Add Data'''
 
*Puis cliquer sur '''Add Data'''
 
*Écrivez un message
 
*Écrivez un message
 +
{{Info|Si un message est envoyé alors que l'écran n'est pas connecté, celui-ci sera ignoré. MQTT permet toutefois de garder en mémoire les messages avec la fonction Retain}}
  
 
<br />
 
<br />
 
|Step_Picture_00=Mini_écran_connecté_adafruit_io3.png
 
|Step_Picture_00=Mini_écran_connecté_adafruit_io3.png
 
|Step_Picture_01=Mini_écran_connecté_tft_io_test.jpg
 
|Step_Picture_01=Mini_écran_connecté_tft_io_test.jpg
 +
}}
 +
{{ {{tntn|Tuto Step}}
 +
|Step_Title=IFTTT - Afficher les notifications d'un téléphone
 +
|Step_Content=IFTTT est un service qui permet d'automatiser des tâches, Adafruit IO est compatible avec celui-ci.
 +
 +
{{Info|Si vous voulez utiliser IFTTT avec votre propre serveur, il y a des webhooks qui permettent de faire cela.}}
 +
 +
Nous allons voir comment afficher les notifications qu'un smartphone sur notre écran.
 +
 +
{{Warning|Bien que ce soit amusant comme projet, n'oubliez pas que vous aller donner accès à vos notifications à deux services sur internet.
 +
Même si les communications sont en théorie sécurisé, niveau vie privée c'est une très mauvaise idée.}}
 +
 +
* Créer un compte sur IFTTT
 +
* Installer l'application android
 +
 +
= if =
 +
 +
* Sur l'interface web d'IFTTT, cliquer sur '''My Applets'''
 +
* Cliquer sur '''New Applet'''
 +
* Choissisez le service '''Android Device'''
 +
* Choissisez '''Notification Received'''
 +
 +
= then =
 +
 +
* Choissisez Adafruit
 +
* Choissisez Send data to Adafruit IO
 +
* Dans Feed Name mettez notifications
 +
* Dans Data to save choissisez '''AppName''' et Notification '''Title'''
 +
{{Dont|L'ESP8266 va se déconnecter (puis se reconnecter) du serveur MQTT, si le message est trop long.}}<br />
 +
|Step_Picture_00=Mini_écran_connecté_ifttt.png
 
}}
 
}}
 
{{ {{tntn|Notes}}
 
{{ {{tntn|Notes}}

Version du 30 mars 2019 à 18:15

Auteur avatarRémi Sarrailh (µsini) | Dernière modification 9/12/2019 par Clementflipo

Mini écran connecté tft iftt wiki.png
Nous allons voir comment afficher des messages depuis un serveur MQTT sur un écran TFT.
Difficulté
Moyen
Durée
1 heure(s)
Catégories
Électronique, Maison
Coût
7 EUR (€)
Autres langues :
français
Licence : Attribution (CC BY)

Introduction

Précédemment, nous avons vu comment afficher une image sur un ST7789, un écran TFT à 3€. ( Afficher une image sur un écran ST7789 )

Nous allons exploiter cette connaissance pour faire un mini écran connecté.

  • Cette écran va afficher les messages reçu depuis un serveur MQTT
  • Les messages peuvent contenir des caractères accentués
  • La transmission sera chiffré
  • Afin d'éviter les attaques MITM (man in the middle), nous allons vérifier l'identité du serveur MQTT à l'aide de son certificat.

A partir de là nous pouvons même utiliser IFTT (ou tasker) afin de transmettre des informations du web / de notre installation domotique ou de notre téléphone sur le serveur MQTT.

Afin de simplifier la partie MQTT, nous allons utiliser Adafruit IO qui permet d'avoir un serveur MQTT gratuitement.

Vous pouvez bien évidemment utiliser votre propre serveur MQTT (la partie IFTT par contre ne marchera plus)

Matériaux

  • ESP8266
  • ST7789
  • Câble Wrapping 30 AWG

Outils

  • Fer à souder
  • Imprimante 3D

Étape 1 - Fabriquer l'écran connecté

Suivez le tutoriel sur l'écran ST7789, avant toute chose,

En résumé,

  • il faut installer la bibliothèque tft_espi
  • Changer le fichier User_Setup.h directement dans la bibliothèque
  • Reliez l'écran à l'esp8266

Afficher une image sur un écran ST7789





Étape 2 - Paramétrer Adafruit IO

  • Créer un compte sur Adafruit IO: https://io.adafruit.com/
  • Cliquer sur Feeds
  • Cliquer sur Actions / Create a New Feed
  • Dans Name mettez notifications




Étape 3 - Paramétrer les identifiants

Tout d'abord il nous faut récupérer le programme

Cette bibliothèque va nous permettre de communiquer avec notre serveur MQTT.

Dans le programme il y a un fichier arduino_secrets.h, c'est ici que nous allons stocker nos identifiants pour le Wi-Fi et le serveur MQTT

Les identifiants sur Adafruit IO se trouve en cliquant sur View AIO Key

  • Dans HOME_SSID mettez le nom de votre réseau WI-FI
  • Dans HOME_PASS mettez le mot de passe de votre réseau WI-FI
  • Dans ADAFRUIT_MQTT_USERNAME mettez le Username d'adafruit IO
  • Dans ADAFRUIT_MQTT_PASS mettez l'Active Key d'adafruit IO

Téléverser le croquis pour tester si tout marche bien.

Normalement vous devriez arriver jusqu'à l'écran Notifications

Vous pouvez vérifier sur le moniteur série (Baudrate : 115200) s'il y a un problème.


Étape 4 - Test depuis Adafruit IO

Adafruit IO nous permet de créer une donnée qui sera afficher sur l'écran.

  • Cliquer sur Feeds / Notifications
  • Puis cliquer sur Add Data
  • Écrivez un message
Si un message est envoyé alors que l'écran n'est pas connecté, celui-ci sera ignoré. MQTT permet toutefois de garder en mémoire les messages avec la fonction Retain




Étape 5 - IFTTT - Afficher les notifications d'un téléphone

IFTTT est un service qui permet d'automatiser des tâches, Adafruit IO est compatible avec celui-ci.

Si vous voulez utiliser IFTTT avec votre propre serveur, il y a des webhooks qui permettent de faire cela.

Nous allons voir comment afficher les notifications qu'un smartphone sur notre écran.

Bien que ce soit amusant comme projet, n'oubliez pas que vous aller donner accès à vos notifications à deux services sur internet. Même si les communications sont en théorie sécurisé, niveau vie privée c'est une très mauvaise idée.
  • Créer un compte sur IFTTT
  • Installer l'application android

if

  • Sur l'interface web d'IFTTT, cliquer sur My Applets
  • Cliquer sur New Applet
  • Choissisez le service Android Device
  • Choissisez Notification Received

then

  • Choissisez Adafruit
  • Choissisez Send data to Adafruit IO
  • Dans Feed Name mettez notifications
  • Dans Data to save choissisez AppName et Notification Title
L'ESP8266 va se déconnecter (puis se reconnecter) du serveur MQTT, si le message est trop long.




Commentaires

Draft