samedi 9 mai 2020

Écrire dans un document Google Docs avec ESP32 ou ESP8266

Je continue d'explorer l'utilisation des Google Apps Scripts pour établir une connexion entre un ESP32 ou un ESP8266 et les services de Google.

Dans l'expérience d'aujourd'hui, chaque fois qu'on pressera un bouton connecté à l'ESP, l'événement sera consigné à l'intérieur d'un document "Google Docs". Il va sans dire que ce projet pourra facilement être modifié afin de répondre à un besoin plus concret, comme tenir un registre de l'utilisation d'un appareil au moyen d'une carte RFID, etc.

Le circuit

Le circuit est constitué d'un bouton poussoir et d'une résistance pull-up, branché à la broche GPIO 4 d'un ESP8266 ou d'un ESP32. Le bouton est évidemment alimenté avec 3,3 V, le niveau logique des entrées de l'ESP8266 et de l'ESP32.

Schéma du circuit avec un Wemos Mini D1 (pour ce modèle, GPIO 4 est la broche D2):

Schéma du circuit avec un module ESP32:


Création d'un document Google Docs

Nous allons ensuite sur le site Google Docs afin de créer un nouveau document Google Docs dans lequel notre ESP consignera des informations.  Vous pouvez donner à ce document le nom que vous désirez, ça n'aura pas d'importance pour la suite.  Copiez l'URL de ce nouveau document, car nous en aurons besoin dans notre script.

Rédaction d'un Apps Script

Sur le site Google Apps Scripts, nous créons un nouveau projet. Là encore, son nom n'a pas d'importance.


Voici le script à coller dans votre nouveau projet. Attention: il faut remplacer l'URL par celui de votre document Google Docs (ligne 32). Vous pourriez également préférer un autre fuseau horaire pour l'affichage de la date et de l'heure ("Europe/Paris", par exemple, plutôt que "America/Montreal").

-

-

Ce script est constitué de deux fonctions: doGet reçoit les requêtes GET émises par l'ESP et lui retourne un message pour indiquer que tout a bien fonctionné, et ecritDansGoogleDoc se chargera d'ouvrir notre document Google Docs pour y consigner de l'information.

Déploiement du script en application web

Il faut ensuite faire les réglages qui permettront à notre script d'être accessible à partir du web. Pour ce faire, nous sélectionnons "Déployer en tant qu'application Web" dans le menu "Publier" de Google Scripts.


À la question "Who has access to the app", nous répondons "Anyone, even anonymous".


Nous devons ensuite autoriser notre script à jouer dans nos fichiers sur Google Drive...



À la fin du processus, une boîte de dialogue vous confirme le déploiement de votre script, et vous fournit l'URL de votre web app: il est important de copier cette adresse car nous l'utiliserons dans le sketch de l'ESP32 / ESP8266.


Si vous le désirez, vous pouvez tester votre script à partir du navigateur web en ajoutant, à la fin de l'URL de votre web app, les informations suivantes "?func=registre&quoi=bouton".

Rédaction d'un sketch pour l'ESP32 / ESP8266

Il ne reste plus qu'à téléverser dans votre ESP32 ou ESP8266 le sketch qui enverra une requête GET à notre web app chaque fois que nous appuierons sur le bouton.

S'il s'agit de votre première occasion de programmer un ESP32 ou un ESP8266 avec l'IDE Arduino, vous trouverez la marche à suivre ici pour l'ESP32, et ici pour l'ESP8266.

Avant d'utiliser ce sketch, il est important d'y mettre certaines informations importantes:

  • le nom et le mot de passe de votre réseau Wi-Fi (lignes 20 et 21)
  • l'URL de votre application web (ligne 77)
  • si vous utilisez un ESP8266: le fingerprint SHA1 de votre app script (ligne 27)

Pour récupérer ce fingerprint SHA1, allez sur la page de votre feuille de calcul ou de votre script avec un navigateur web, cliquez sur le cadenas à gauche de l'URL, et visionnez le certificat de sécurité de google.com. Copiez les octets correspondant au fingerprint SHA1 et copiez-le dans votre sketch. Cette information n'est pas nécessaire si vous utilisez un ESP32.


-

-

Si tout fonctionne correctement, le message "On a osé appuyer sur le bouton!!!, suivi de la date et de l'heure, s'affiche dans votre document Google Docs chaque fois que vous appuyez sur le bouton.

À lire aussi:

Dans un projet très similaire, nous avons consigné dans un document Google Sheets les mesures d'un capteur branché à l'ESP32 ou à l'ESP8266. Vous serez peut-être intéressés à consulter la liste des projets impliquant l'ESP32 ou l'ESP8266.

Yves Pelletier (TwitterFacebook)

1 commentaire:

  1. Bonjour,
    Quand j’appuie sur le bouton,j'obtiens ce message d'erreur : Connexion a script.google.com
    Echec de la connexion
    Merci de votre aide

    RépondreSupprimer