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.
1 | var id = '11DaCrAGtFplNqW5VJOsvTELR2oHoyJ9bhiCbrfwertz'; // ID der Tabelle
|
2 |
|
3 | function doGet(e) { // GET Parameter Empfangen
|
4 |
|
5 | if (e.parameter == undefined) { // Wenn keine Parametr über GET Empfangen
|
6 | result = 'Parameter fehlen';
|
7 | }
|
8 | else {
|
9 | var sheet = SpreadsheetApp.openById(id).getActiveSheet(); // Zuweisung des Tabellendokuments und AktiverTabelle einer Variable
|
10 | var newRow = sheet.getLastRow() + 1; // Letzte beschriebene Zeile + 1
|
11 | var rowData = []; // Array anlegen
|
12 | rowData[0] = new Date(); // Timestamp in Spalte A Erste Elemet des Arrays rowData
|
13 |
|
14 | for (var param in e.parameter) { // Alle empfangenen Parametr Durchgenen
|
15 | var value = e.parameter[param]; // Werte einlesen
|
16 | rowData[parseInt(param)] = value; // Werte in Array Speichern. Position bestimmt die Zahl im Parametr
|
17 | }
|
18 |
|
19 | // Lege neue Zeile an in der Länge des Arrays mit Werten
|
20 | var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
|
21 | newRange.setValues([rowData]); // Zeile mit Daten aus Array befüllen
|
22 | var result = 'Ok'// Text des Anworts
|
23 | }
|
24 |
|
25 | // Antwort als Text an Browser senden
|
26 | return ContentService.createTextOutput(result);
|
27 | }
|
Anleitung: Google Script als Web-App einrichten
http://esp32-server.de/google-sheets/#Script