Inhaltsverzeichnis:

Wetterdaten mit Google Sheets und Google Script - Gunook
Wetterdaten mit Google Sheets und Google Script - Gunook

Video: Wetterdaten mit Google Sheets und Google Script - Gunook

Video: Wetterdaten mit Google Sheets und Google Script - Gunook
Video: Beyoncé - Dance for You (Video) 2024, Juli
Anonim
Wetterdaten mit Google Sheets und Google Script
Wetterdaten mit Google Sheets und Google Script

In diesem Blogtut werden wir die Messwerte des SHT25-Sensors mit Adafruit huzzah ESP8266 an Google Sheets senden, die dabei helfen, die Daten an das Internet zu senden.

  • Das Senden von Daten an eine Google-Blatt-Zelle ist eine sehr nützliche und grundlegende Möglichkeit, die Daten in tabellarischer Form online zu speichern.
  • Anstatt eine spezielle Brücke wie das Drücken einer Box oder MQTT NODE RED oder eine andere Art von REST-API zu verwenden, senden wir die Daten mit einem Google-Skript, das die Daten einfach vom Sensor empfängt, indem es das Skript verwendet Link, das von der bereitgestellt wird Google-Skriptanwendung nach der Veröffentlichung
  • Wir können das Scripting verwenden, um die Daten von Google Sheet, Docs oder sogar an Google Drive zu senden.
  • Aber nicht weiter, Sie können die Google Sheets mit jeder webbasierten Anwendung verbinden, um die Daten mit den Benutzern so zu teilen, wie sie es wollten
  • Hier sind im Gegensatz zu den anderen Online-Servern keine zusätzlichen Gebühren zu zahlen und man kann die Daten bis zu 10 GB Maximum im Benutzerkonto speichern und nutzen
  • Eine der besten Bemühungen besteht darin, dass Sie mit dieser Art von Echtzeitanwendung leicht lernen können, wie Sie die Daten mit dem Internet verbinden.
  • Wir werden die I2C-Verbindung verwenden, die das Master-Slave-Protokoll ausführt, um die Daten flexibel mit Google Sheets zu teilen.
  • Die I2C-Protokollplattform verbindet die Sensorhardware und arbeitet mit etwa 256 Sensoren gleichzeitig, indem sie nur 2 kabelgebundene Pull-Ups verwendet, um die Sensordaten in 8-Bit-Hardware zu übertragen

Schritt 1: Hardware

Adafruit Feder HUZZAH Kits

Adafruit Feather Huzzah Board

Adafruit I2C integriert und USB-Adapter

SHT25 Temperatur- und Feuchtigkeitssensor

I2C-Kabel

Schritt 2: So funktioniert das Zeug

Das Abrufen der Messwerte von Echtzeitdaten von Sensoren über ESP8266 und das Senden der Daten an verschiedene Cloud-Plattformen ist sehr einfach.

Wir werden die Wire.h-Bibliothek in der Arduino IDE verwenden, um die zweidrahtige Kommunikation zwischen dem Adafruit Huzzah Board und dem SHT25-Sensor-I2C-Modul und dem I2C-Kabel zu erstellen.

Hinweis: Um die komplexe Verkabelungsstruktur zu vermeiden, werde ich den I2C-Adapter für Adafruit Huzzah verwenden, der zum Anschluss des I2C-Sensors entwickelt wurde.

Damit der Neuling den ESP8266 einrichten kann, muss er das ESP8266-Setup durchlaufen

Initialisieren Sie zuerst die Bibliotheken:

  • Drahtbibliothek
  • ESP8266WiFi
  • WiFiClientSecure

Schritt 3: I2C-Modul-Ausführungsprozess in Arduino IDE

Nach der Initialisierung der Bibliotheken definieren wir den I2C-Prozess, der verwendet werden soll, um die Sensormesswerte abzurufen, sie zu konvertieren und die 8-Bit-Daten gemäß den Anforderungen zu verschieben:

Initialisieren Sie die Register im Zweidraht-I2C-Protokoll für das I2C-Sensormodul

#define Addr 0x40

  • Starten Sie die I2C-Übertragung und initialisieren Sie die Register und fordern Sie 2 Byte Daten an, von denen wir die Sensordaten lesen.
  • Wenn 2 Byte Daten verfügbar sind, lesen Sie die Sensordaten und verwenden Sie die unten aufgeführten Formeln, um die gewünschten Werte umzuwandeln

Schwebefeuchte = (((data[0] * 256.0 + data[1]) * 125.0) / 65536.0) - 6;

float cTemp = (((data[0] * 256,0 + data[1]) * 175,72) / 65536,0) - 46,85;

Schwimmer fTemp = (cTemp * 1,8) + 32;

Drucken Sie die Werte in einem seriellen Monitorbildschirm

Schritt 4: ESP8266-Verbindung mit WiFi und Google Spreadsheet

Nach der Ausführung der I2C-Module lernen wir, wie man die Daten abruft und wie man WiFi-Bibliotheken und Host-ID sowie API-Schlüssel verwendet, um die Daten an Google Sheets zu senden.

  • Definieren Sie WLAN-Anmeldeinformationen global in ESP8266, die uns helfen, das Board mit dem Internet zu verbinden
  • Da wir den HTTP-Client verwenden und das HTTPS = 443-Protokoll zum Sichern des HTTP-Pfads definieren, da das Skript nur im sicheren Pfad funktioniert.
  • Initialisieren Sie die Hostdetails im Code

const char* host = "script.google.com";

const int httpsPort = 443;

String SCRIPT_ID = "Erwähnen Sie die Skript-ID wie in Snaps erwähnt";

Hinweis: Die Skript-ID wird in der "Web-Apps-URL" erwähnt, während der Gscript-Code veröffentlicht wird. Kopieren Sie einfach die unten genannte ID und fügen Sie sie in den obigen Befehlen ein

  • Auch mit volatile mit Variable werden wir die Variable global initialisieren, die die Daten vom I2C-Modul abruft und an das URL-Skript sendet, das die Daten weiter an das Ziel sendet.
  • Mit der ESP8266 WiFi Library können wir das Board mit dem Internet verbinden
  • Die Sensordaten werden alle 5 Sekunden auf einem lokalen Server gehostet.

  • Mit Hilfe des URL-Skripts werden die Daten alle 15 Sekunden auf der im Google-Skript veröffentlichten Link Aktive Seite gehostet.

Schritt 5: Automatisieren Sie das Google Sheet mit dem GScript Editor

Automatisieren Sie das Google Sheet mit dem GScript Editor
Automatisieren Sie das Google Sheet mit dem GScript Editor
Automatisieren Sie das Google Sheet mit dem GScript Editor
Automatisieren Sie das Google Sheet mit dem GScript Editor
Automatisieren Sie das Google Sheet mit dem GScript Editor
Automatisieren Sie das Google Sheet mit dem GScript Editor

Da wir alle ein Google-Konto haben, um sich mit Ihrem Konto bei Google Sheet anzumelden

  • Erwähnen Sie die Werte, die Sie von dem mit dem ESP8266 verbundenen Sensor erhalten müssen
  • Gehen Sie zu Extras>Skript-Editor
  • Verwenden Sie die Funktion „Doget“, um die Ereignisse zu empfangen
  • In der „Doget“-Funktion zum Initialisieren des Tabellenkalkulations-API-Schlüssels sowie zum Verbinden des Active Sheets, an das Sie die Sensorwerte senden möchten
  • Mit Hilfe der im Code erwähnten Automatisierungsfunktion können die Daten einfach in Zeilen und Spalten dargestellt werden.
  • Speichern Sie abschließend die Daten und klicken Sie auf „Veröffentlichen“>> Klicken Sie auf „Als Web-Apps bereitstellen“
  • Stellen Sie sicher, dass bei jeder Änderung die "Projektversion" >> "Neu">> "Aktualisieren" ausgewählt wird

Die aktuelle Web-App-URL wird wie folgt angezeigt:

script.google.com/macros/s/”GScript-ID”/exec:

wird weiter im ESP8266-Code zum Abrufen der Daten von Sensoren verwendet

Hosting-VerbindungenWir werden die HTTPS-Get-Anfrage verwenden, um die Daten mit der im gscript-Editor angegebenen Host-ID zu verbinden, wo wir unsere Daten weiter codiert haben, um eine Verbindung mit Google Sheet herzustellen.

Funktion doGet (e) { Logger.log (JSON.stringify (e)); // Parameter anzeigen var result = 'Ok'; // Erfolg annehmen if (e.parameter == 'undefined') { result = 'No Parameters'; } else { var blatt_id = ''; // Tabellenkalkulations-ID var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet(); var newRow = sheet.getLastRow() + 1; var rowData = ; } Logger.log(JSON.stringify(rowData)); // Neue Zeile darunter schreiben var newRange = sheet.getRange(newRow, 1, 1, rowData.length); newRange.setValues([rowData]); }

Schritt 6: Einschränkungen:

Einschränkungen
Einschränkungen
  • Dieses Projekt ist nur darauf beschränkt, die Daten des I2C-Sensors in Google Sheets zu speichern
  • Wir verwenden eine HTTPS GET-Anfrage, um die Werte über I2C-Funktionen zu erhalten
  • Wir müssen den Wert im String-Format ändern und dann die Daten an den gscript-URL-Link senden.

Schritt 7: Code, Credits, Referenz

Github-Code:

github.com/varul29/SHT25_GoogleSheets_Goog…

Referenz

I2C-Code:

Google Script-Tutorial:

Eingebetteter Store:

Tutorial-Blog:https://pdacontrolen.com/update-https-redirect-vers…

Empfohlen: