mikrocontroller.net

Forum: Projekte & Code ESP32 und Google Tabellen (Sheets), Script und Sketch


Autor: Mischa N. (mischaka)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Beispiel für direkte Messwert Übertragung von ESP32 in  Google Tabellen 
(Sheets)

Bei dem ESP8266 gab es die Möglichkeit mit Hilfe externe Bibliothek 
HTTPSRedirect mit Google über SSL zu kommunizieren. ESP32 hat schon 
passende Mittel dabei.  WiFiClientSecure.h ermöglicht eine HTTPS  SSL 
Verbindung direkt zum Google Tabellen (Sheets) herzustellen. Ok nicht 
ganz so direkt. Dazwischen soll noch ein Google Apps Script verwendet 
werden. Google Script kann von überall gestartet werden und in der GET 
(oder auch POST) Anfrage werden die Daten von ESP32 übertragen und von 
Google Script in die Google Tabelle eingetragen. Vorteil von dieser 
Methode ist, dass keine zusätzlichen Service verwendet werden. Kein 
IFTTT oder PushingBox ist nötig. Vorgehensweise:

Google Tabelle erzeugen (Tabellen ID Merken)
Google Apps Script (JavaScript) anlegen und als Web-App einrichten
In ESP32 Beispiel Sketch  das Web-App-URL eintragen.
var id = '11DaCrAGtFplNqW5VJOsvTELR2oHoyJ9bhiCbrfwertz';  // ID der Tabelle

function doGet(e) {                 // GET Parameter Empfangen

  if (e.parameter == undefined) {   // Wenn keine Parametr über GET Empfangen
    result = 'Parameter fehlen';
  }
  else {
    var sheet = SpreadsheetApp.openById(id).getActiveSheet(); // Zuweisung des Tabellendokuments und AktiverTabelle einer Variable
    var newRow = sheet.getLastRow() + 1;  // Letzte beschriebene Zeile + 1 
    var rowData = [];        // Array anlegen
    rowData[0] = new Date(); // Timestamp in Spalte A Erste Elemet des Arrays rowData
    
    for (var param in e.parameter) {    // Alle empfangenen Parametr Durchgenen
      var value = e.parameter[param];   // Werte einlesen
      rowData[parseInt(param)] = value; // Werte in Array Speichern. Position bestimmt die Zahl im Parametr
    } 
    
    // Lege neue Zeile an in der Länge des Arrays mit Werten
    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
    newRange.setValues([rowData]);    // Zeile  mit Daten aus Array befüllen
    var result =  'Ok'// Text des Anworts
  }

  // Antwort als Text an Browser senden
  return ContentService.createTextOutput(result);
}

Anleitung: Google Script als Web-App einrichten 
http://esp32-server.de/google-sheets/#Script

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.