Inhoudsopgave:

Weergegevens met Google Spreadsheets en Google Script: 7 stappen
Weergegevens met Google Spreadsheets en Google Script: 7 stappen

Video: Weergegevens met Google Spreadsheets en Google Script: 7 stappen

Video: Weergegevens met Google Spreadsheets en Google Script: 7 stappen
Video: Een vervolgkeuzelijst maken in Google Spreadsheets 2024, Juli-
Anonim
Weergegevens met Google Spreadsheets en Google Script
Weergegevens met Google Spreadsheets en Google Script

In deze Blogtut gaan we de metingen van de SHT25-sensor naar Google Spreadsheets sturen met behulp van Adafruit huzzah ESP8266, wat helpt om de gegevens naar internet te sturen.

  • Het verzenden van gegevens naar de Google-bladcel is een zeer nuttige en eenvoudige manier om de gegevens online in tabelvorm op te slaan.
  • In plaats van een speciale brug te gebruiken, zoals het duwen van een doos of MQTT NODE RED of een ander soort REST API, gaan we de gegevens verzenden met behulp van een google-script dat de gegevens gemakkelijk van de sensor ontvangt met behulp van script Link geleverd door de google script applicatie na publicatie
  • We kunnen de scripting gebruiken om de gegevens van Google Sheet, docs of zelfs naar Google Drive te verzenden.
  • U hoeft hier niet verder te eindigen, u kunt de Google-bladen verbinden met elke webgebaseerde toepassing waarmee u de gegevens deelt met gebruikers zoals ze dat willen
  • Geen extra kosten te betalen in tegenstelling tot de andere online servers hier en u kunt de gegevens tot maximaal 10 GB opslaan in het gebruikersaccount en kunt gebruiken
  • Een van de beste inspanningen is dat u gemakkelijk kunt leren hoe u de gegevens met internet kunt verbinden met dit soort realtime-applicaties.
  • We gaan de I2C-verbinding gebruiken die het master-slave-protocol uitvoert om de gegevens op een flexibele manier met Google Spreadsheets te delen.
  • Het I2C-protocolplatform verbindt de sensorhardware en werkt met ongeveer 256 sensoren tegelijk door slechts 2 bekabelde pull-up te gebruiken om de sensorgegevens in 8 bits hardware over te dragen

Stap 1: Hardware

Adafruit Feather HUZZAH Kits

Adafruit Feather Huzzah-bord

Adafruit I2C geïntegreerd en USB-adapter

SHT25 Temperatuur- en vochtigheidssensor

I2C-kabel

Stap 2: Hoe dingen werken

Het ophalen van de uitlezingen van realtime gegevens van sensoren via ESP8266 en het verzenden van de gegevens naar verschillende cloudplatforms is heel eenvoudig.

We gaan de Wire.h-bibliotheek in Arduino IDE gebruiken voor het creëren van de twee-bedrade communicatie tussen Adafruit Huzzah Board en SHT25-sensor I2C-module en I2C-kabel.

Opmerking: om de complexe bedradingsstructuur te vermijden, ga ik de I2C-adapter voor Adafruit Huzzah gebruiken die is ontworpen om de I2C-sensor aan te sluiten.

Om de nieuweling de Esp8266 in te stellen, moet je de ESP8266-configuratie doorlopen

Initialiseer eerst de bibliotheken:

  • Draadbibliotheek
  • ESP8266WiFi
  • WiFiClientSecure

Stap 3: Uitvoeringsproces I2C-module in Arduino IDE

Na het initialiseren van bibliotheken, zullen we het I2C-proces definiëren dat moet worden gebruikt om de sensormetingen op te halen, deze te converteren en de 8-bits gegevens te verschuiven volgens de vereisten:

Initialiseer de registers in tweedraads I2C-protocol voor de I2C-sensormodule

#define Addr 0x40

  • Start I2C-transmissie en initialiseer de registers en vraag om 2 bytes-gegevens van waaruit we de sensorgegevens zullen lezen.
  • Als er gegevens van 2 bytes beschikbaar zijn, lees dan de sensorgegevens en met behulp van de onderstaande formules converteren we de gewenste waarden

vlottervochtigheid = (((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;

float fTemp = (cTemp * 1.8) + 32;

Print de waarden in een serieel monitorscherm

Stap 4: ESP8266-verbinding met wifi en Google Spreadsheet

Na de uitvoering van I2C-modules gaan we leren hoe de gegevens kunnen worden opgehaald en door WiFi-bibliotheken en host-ID en API-sleutels te gebruiken om de gegevens naar Google Spreadsheets te verzenden.

  • Definieer wifi-inloggegevens wereldwijd in ESP8266, wat ons zal helpen om het bord met internet te verbinden
  • Omdat we de HTTP-client gaan gebruiken en het HTTPS = 443-protocol definiëren voor het beveiligen van het HTTP-pad, omdat het script alleen in het beveiligde pad werkt.
  • Initialiseer de hostgegevens in code

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

const int httpsPort = 443;

String SCRIPT_ID = "vermeld de script-ID zoals vermeld in snaps";

Opmerking: Script-ID wordt vermeld in "webapps-URL", terwijl Gscript-code wordt gepubliceerd, kopieer en plak gewoon de onderstaande id en initialiseer in bovenstaande opdrachten

  • We gebruiken ook vluchtig met variabele, we gaan de variabele globaal initialiseren die de gegevens van de I2C-module ophaalt en naar het URL-script stuurt dat de gegevens verder naar de bestemming zal sturen.
  • Met behulp van ESP8266 WiFi-bibliotheek kunnen we het bord verbinden met internet
  • De sensorgegevens worden na elke 5 seconden gehost op een lokale server.

  • Met behulp van het URL-script worden de gegevens na elke 15 seconden gehost op de door Google script gepubliceerde link Actieve pagina.

Stap 5: Automatiseer het Google-blad met GScript Editor

Automatiseer het Google-blad met GScript Editor
Automatiseer het Google-blad met GScript Editor
Automatiseer het Google-blad met GScript Editor
Automatiseer het Google-blad met GScript Editor
Automatiseer het Google-blad met GScript Editor
Automatiseer het Google-blad met GScript Editor

Omdat we allemaal een Google-account hebben om in te loggen op Google Sheet met uw account

  • Vermeld de waarden die u nodig hebt om van de sensor te krijgen die is aangesloten op ESP8266
  • Ga naar Extra>Scripteditor
  • Gebruik de functie "Doget" om de gebeurtenissen te ontvangen
  • In de functie "Doget" om de API-sleutel van de spreadsheet te initialiseren en om het actieve blad te verbinden waar u de sensorwaarden naartoe wilt sturen
  • Met behulp van de automatiseringsfunctie die in de code wordt vermeld, kunnen de gegevens eenvoudig in rijen en kolommen worden weergegeven.
  • Sla ten slotte de gegevens op en klik op "Publiceren">> Klik op "Deploy as web apps"
  • Zorg ervoor dat wanneer er een wijziging is om de "projectversie" >> "Nieuw">> te selecteren, op "update" drukt

De huidige web-app-URL wordt als volgt weergegeven:

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

verder gebruikt in ESP8266-code voor het ophalen van de gegevens van sensoren

Hostingverbindingen We gaan het HTTPS Get-verzoek gebruiken om de gegevens te verbinden met de host-ID die wordt vermeld in de gscript-editor waar we onze gegevens verder hebben gecodeerd om verbinding te maken met Google Sheet.

functie doGet(e) { Logger.log(JSON.stringify(e)); // bekijk parameters var resultaat = 'Ok'; // neem succes aan als (e.parameter == 'undefined') { result = 'No Parameters'; } else { var sheet_id = ''; // Spreadsheet-ID var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet(); var newRow = sheet.getLastRow() + 1; var rijData = ; } Logger.log(JSON.stringify(rowData)); // Schrijf een nieuwe rij onder var newRange = sheet.getRange (newRow, 1, 1, rowData.length); newRange.setValues([rijData]); }

Stap 6: Beperkingen:

Beperkingen
Beperkingen
  • Dit project is alleen beperkt tot het opslaan van de gegevens van de I2C-sensor in google sheets
  • We gebruiken HTTPS GET-verzoek om de waarden te ontvangen via I2C-functies
  • We moeten de waarde in tekenreeksindeling wijzigen en vervolgens de gegevens naar de gscript-URL-link sturen.

Stap 7: Code, Credits, Referentie

Github-code:

github.com/varul29/SHT25_GoogleSheets_Goog…

Verwijzing

I2C-code:

Google Script-zelfstudie:https://developers.google.com/apps-script/articles…

Ingesloten winkel:https://dcubestore.com/

Zelfstudieblog:

Aanbevolen: