Nos derniers articles

Vue tout

[Tuto] Contrôler un ESP32 via Google sheet avec Integromat

Posté sur: mars 24, 2021

Catégories: Arduino

Auteur: Fabien

Tags: integromat , hook , webhook , API , arduino , esp32 , Google , sheet , gsheet

Nous allons nous inspirer du tutoriel de remontée d'information par IFTTT pour créer cette fonctionnalité. Nous faisons ce test avec un ESP32.

Créer un scenario Integromat

Les 3 blocks de ce scenario Integromat sont:

  • Webhooks -> Custom Webhook : Permet de créer l'url à appeler
  • Google sheet -> Get a cell : Récupère l'information dans un Google sheet
  • Webhooks -> Webhook response : Permet de construire la réponse à envoyer

On peut tester directement l'url fourni par Integromat:

Coté Google Sheet, on a fait un menu déroullant pour vérrouiller son contenu à "ON" ou "OFF", ça évite les erreurs.

Créer le Sketch Arduino

Le logiciel Arduino est basé sur les exemple de base httpsclient dédié à l'ESP32.


#include 
#include 

#define WIFI_SSID "Letmeknow"
#define	WIFI_PASSWORD "AAAAAAA"
#define INTEGROMAT_API_KEY "VOTREAPIKEY"
#define LEDPIN 15

const char* _ifttt_root_certificate = 
"-----BEGIN CERTIFICATE-----n" 
"MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx" 
"EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT" 
"EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp" 
"ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3" 
"MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH" 
"EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE" 
"CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD" 
"EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi" 
"MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD" 
"BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv" 
"K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e" 
"cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY" 
"pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n" 
"eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB" 
"AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV" 
"HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv" 
"9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v" 
"b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n" 
"b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG" 
"CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv" 
"MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz" 
"91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2" 
"RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi" 
"DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11" 
"GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x" 
"LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB" 
"-----END CERTIFICATE-----n";

String integromat_base = "https://hook.integromat.com";

void setup() {
  Serial.begin(115200);
  Serial.println("RUNNING");

  /*** Connexion au Wifi ***/
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to ");
  Serial.print(WIFI_SSID);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(100);
    Serial.print(".");
  }
  Serial.print("Connected! IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("MAC: ");
  Serial.println(WiFi.macAddress());

  /*** Création de la requête IFTTT ***/
  String donnee = String(random(100));
  String integromat_url = integromat_base + "/" + INTEGROMAT_API_KEY;
  Serial.println(integromat_url);
  HTTPClient http;
  http.begin(integromat_url, _ifttt_root_certificate);

  /*** Vérification du bon déroullement ***/
  int httpCode = http.GET();
  if (httpCode > 0) {
    Serial.printf("[HTTP] GET... code: %dn", httpCode);
    String buff = "";
    if(httpCode == HTTP_CODE_OK) {
      buff = http.getString();
      Serial.println(buff);
    }
    if(buff == "ON") {
      Serial.println("LED ON");
      digitalWrite(LEDPIN, HIGH);
    } else {
      Serial.println("LED OFF");
      digitalWrite(LEDPIN, LOW);
    }
  } else {
      Serial.printf("[HTTP] GET... failed, error: %sn", http.errorToString(httpCode).c_str());
  }
}

void loop() {
}

Tips #1 :Pensez bien à mettre votre SSID et mot de passe Wifi (AAAAAAA n'est pas notre mot de passe ????)
Tips #2 : Pour récupérer vos clés d'API VOTREAPIKEY, vous pouvez aller dans Webhooks

Enjoy

Et à chaque branchement de la carte, la LED s'allume ou pas selon l'état de la case associée dans Google Sheet.

Commentaires

laissez un commentaire

Se connecter