Tuto DIY : construisez votre guirlande connectée Stranger Things

Sébastien FRIESS
Mar 11 · 4 min read

Dans le cadre du DevFest Lille 2019, l’équipe Lilloise de SFEIR s’est fixée pour objectif de construire sa propre guirlande connectée pour parler avec le monde à l’envers.

Par Sébastien FRIESS et Tanguy BAUDRIN

Image for post
Image for post
Résultat final

Itération 0

Première étape cadrer le sujet : Permettre d’énoncer des mots à une Google Home et voir la guirlande les épeler.

Ce dont vous aurez besoin :

Architecture

Fort de notre expérience Google Cloud Platform chez SFEIR, il était impensable d’utiliser un autre produit pour notre backend. Le backend de notre projet s’articulait autour des composants et contraintes suivantes :

  • Go for the win
  • Une Cloud Function pour la mise à jour Over The Air (OTA) de notre microcontrôleur
  • Une Cloud Function de réception de l’énoncé en provenance de la Google Home et qui actionne la guirlande
  • Un bus IoT Core pour l’enregistrement, la sécurisation et la communication avec les devices IoT, ici notre ESP8266
  • Le firmware à proprement parler de notre microcontrôleur

Le schéma suivant présente l’assemblage de toutes ces briques logicielles :

Image for post
Image for post
Architecture générale

Fonctionnement

Firmware

Au niveau du microcontrôleur ESP8266, nous avons utilisé les librairies suivantes :

  • Google Cloud IoT Arduino, pas officiellement supportée par Google, mais permet de faciliter la gestion de la communication entre le microcontrôleur et GCP
  • Adafruit NeoPixel pour pouvoir piloter les différentes LED de notre guirlande.

Et quelques librairies utilitaires :

  • WifiManager permet de gérer facilement la connexion à un nouveau réseau wifi avec la mise en place d’un mode point d’accès avec portail captif
  • ArduinoJson pour la gestion du format JSON

D’abord, différentes étapes utilitaires requises à l’initialisation du microcontrôleur sont effectuées :

Une fois ces étapes réalisées, nous entrons dans la boucle de fonction du microcontrôleur qui fera les actions suivantes :

  • S’il n’y a pas eu de messages à traiter depuis 15 min, passage en mode “veille”, avec affichage de lettres aléatoires (une toute les deux secondes)
  • Si un nouveau message arrive sur le topic MQTT des messages, découpage du mot, et pour chacune des lettres affichage de la LED correspondante
  • Si un nouveau message arrive sur le topic MQTT de configuration, mise à jour de la configuration et/ou mise à jour du firmware via la Cloud Fonction dédiée

Pour afficher une lettre sur la guirlande, les actions suivantes doivent être réalisées :

Réalisation

Concernant la réalisation à proprement parler, voici les étapes réalisées :

Image for post
Image for post
Opération peinture
Image for post
Image for post
Peinture finale
Image for post
Image for post
Découpe et étamage de la guirlande

Ressources

Améliorations possibles

  • Amélioration de l’identification et sécurisation de l’OTA
  • Migration du firmware de l’ESP vers Go grâce au projet Gobot
  • Protection de l’ESP par un boitier imprimé en 3D

Remerciement

CodeShake

Learnings and insights from SFEIR community.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store