Indholdsfortegnelse:

Vejrdata ved hjælp af Google Sheets og Google Script: 7 trin
Vejrdata ved hjælp af Google Sheets og Google Script: 7 trin

Video: Vejrdata ved hjælp af Google Sheets og Google Script: 7 trin

Video: Vejrdata ved hjælp af Google Sheets og Google Script: 7 trin
Video: Импорт данных из Google Sheets в Excel – Проще простого! 2024, November
Anonim
Vejrdata ved hjælp af Google Sheets og Google Script
Vejrdata ved hjælp af Google Sheets og Google Script

I denne Blogtut sender vi aflæsningerne af SHT25 -sensoren til Google -ark ved hjælp af Adafruit huzzah ESP8266, som hjælper med at sende dataene til internettet.

  • At sende data til google arkcelle er meget nyttig og grundlæggende måde, som gemmer dataene i tabelform online.
  • I stedet for at bruge nogen form for speciel bro som at skubbe en boks eller MQTT NODE RED eller en anden form for REST API, sender vi dataene ved hjælp af google script, der let modtager data fra sensoren ved hjælp af script Link leveret af google script -applikation efter udgivelse
  • Vi kan bruge scriptet til at sende data fra Google -ark, dokumenter eller endda til Google Drive.
  • Bare ikke ende her yderligere, du kan forbinde Google-arkene med enhver webbaseret applikation, som deler dataene med brugerne, som de ville
  • Der skal ikke betales ekstra gebyrer i modsætning til de andre online -servere her, og du kan gemme data op til 10 GB maksimum på brugerkontoen og kan bruge
  • En af de bedste bestræbelser er, at du nemt kan lære at forbinde data til internettet med denne form for realtidsapplikation.
  • Vi vil bruge I2C-forbindelsen, der udfører master-slave-protokollen til at dele dataene med Google-ark på en fleksibel måde.
  • I2C -protokolplatformen forbinder sensorhardwaren og fungerer med omkring 256 sensorer ad gangen ved kun at bruge 2 kablet pull up til at overføre sensordata i 8 bits hardware

Trin 1: Hardware

Adafruit Feather HUZZAH -sæt

Adafruit Feather Huzzah Board

Adafruit I2C integreret og USB -adapter

SHT25 temperatur- og luftfugtighedssensor

I2C kabel

Trin 2: Sådan fungerer ting

Det er meget enkelt at hente aflæsningerne af realtidsdata fra sensorer gennem ESP8266 og sende dataene til forskellige Cloud-platforme.

Vi kommer til at bruge Wire.h bibliotek i Arduino IDE til at oprette den to kabelforbundne kommunikation mellem Adafruit Huzzah Board og SHT25 sensor I2C modul og I2C kabel.

Bemærk: For at undgå den komplekse ledningsstruktur, vil jeg bruge I2C -adapteren til Adafruit Huzzah designet til at forbinde I2C -sensoren.

For at nybegynderen kan konfigurere Esp8266, skal yo gennemgå ESP8266 -opsætningen

Initialiser først bibliotekerne:

  • Wire bibliotek
  • ESP8266WiFi
  • WiFiClientSecure

Trin 3: I2C -modulets udførelsesproces i Arduino IDE

Efter initialisering af biblioteker definerer vi I2C -processen, der skal bruges til at hente sensoraflæsningerne, der konverterer dem og flytte 8 -bits data i henhold til kravene:

Initialiser registre i to -tråds I2C -protokol for I2C -sensormodulet

#define Addr 0x40

  • Start I2C -transmission og initialiser registre og anmod om 2 bytes data, hvorfra vi vil læse sensordata.
  • Hvis der vil være 2 bytes data, skal du læse sensordataene og ved hjælp af de nedenstående formler konverterer vi de ønskede værdier

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

Udskriv værdierne på en seriel skærm

Trin 4: ESP8266 -forbindelse med WiFi og Google -regneark

Efter udførelsen af I2C -moduler lærer vi om, hvordan man henter dataene og ved hjælp af WiFi -biblioteker og vært -id samt API -nøgler til at sende dataene til Google -ark.

  • Definer WiFi -legitimationsoplysninger globalt i ESP8266, som hjælper os med at forbinde kortet med internet
  • Da vi skal bruge HTTP -klienten og vil definere HTTPS = 443 -protokollen til sikring af HTTP -stien, da scriptet kun fungerer i den sikre sti.
  • Initialiser værtsdetaljerne i kode

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

const int httpsPort = 443;

String SCRIPT_ID = "nævne script -id'et som nævnt i snaps";

Bemærk: Script -id er nævnt i "webapps -URL", mens Gscript -kode vil blive offentliggjort, bare kopier og indsæt det nedenstående id og initialiser i ovenstående kommandoer

  • Ved også at bruge volatile med variabel vil vi initialisere variabel globalt, som henter dataene fra I2C -modulet og sender det til URL -scriptet, som yderligere sender dataene til destinationen.
  • Ved hjælp af ESP8266 WiFi Library vil vi kunne forbinde kortet med internet
  • Sensordataene bliver hostet til en lokal server efter hvert 5. sekund.
  • Ved hjælp af URL -script vil dataene blive hostet til Google script publiceret link Aktiv side efter hvert 15. sekund.

Trin 5: Automatiser Google Sheet ved hjælp af GScript Editor

Automatiser Google Sheet ved hjælp af GScript Editor
Automatiser Google Sheet ved hjælp af GScript Editor
Automatiser Google Sheet ved hjælp af GScript Editor
Automatiser Google Sheet ved hjælp af GScript Editor
Automatiser Google Sheet ved hjælp af GScript Editor
Automatiser Google Sheet ved hjælp af GScript Editor

Da vi alle har en Google -konto til at logge ind på Google -ark med din konto

  • Nævn de værdier, du skal få fra sensoren, der er forbundet med ESP8266
  • Gå til Værktøjer> Scripteditor
  • Brug "Doget" -funktionen til at modtage begivenhederne
  • I "Doget" -funktionen til at initialisere regnearks API -nøglen samt forbinde det aktive ark, hvor du vil sende sensorværdierne
  • Ved hjælp af automatiseringsfunktionen, der er nævnt i koden, til nemt at repræsentere dataene i rækker og kolonner.
  • Gem endelig dataene, og klik på "Publicer" >> Klik på "Implementér som webapps"
  • Sørg for, at når der er nogen ændringer for at vælge "projektversionen" >> "Ny" >> tryk på "opdater"

Den aktuelle webapp -webadresse vises som nedenfor:

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

bruges yderligere i ESP8266 -kode til at hente data fra sensorer

Vi vil bruge HTTPS Get -anmodningen til at forbinde dataene til det host -id, der er nævnt i gscript -editoren, hvor vi kodede vores data yderligere for at oprette forbindelse til Google -ark.

funktion doGet (e) {Logger.log (JSON.stringify (e)); // se parametre var result = 'Ok'; // antage succes hvis (e.parameter == 'undefined') {result = 'Ingen parametre'; } ellers {var sheet_id = ''; // Regnearks -ID var sheet = SpreadsheetApp.openById (sheet_id).getActiveSheet (); var newRow = sheet.getLastRow () + 1; var rowData = ; } Logger.log (JSON.stringify (rowData)); // Skriv ny række under var newRange = sheet.getRange (newRow, 1, 1, rowData.length); newRange.setValues ([rowData]); }

Trin 6: Begrænsninger:

Begrænsninger
Begrænsninger
  • Dette projekt er kun begrænset til at gemme dataene fra I2C -sensoren i Google -ark
  • Vi bruger HTTPS GET -anmodning til at modtage værdierne via I2C -funktioner
  • Vi skal ændre værdien i strengformat og derefter sende dataene til gscript URL -link.

Trin 7: Kode, kreditter, reference

Github -kode:

github.com/varul29/SHT25_GoogleSheets_Goog…

Reference

I2C -kode:

Vejledning til Google Script:

Embedded Store:

Selvstudieblog:

Anbefalede: