Údaje o počasí pomocí Tabulek Google a Google Script: 7 kroků
Údaje o počasí pomocí Tabulek Google a Google Script: 7 kroků
Anonim
Data o počasí pomocí Tabulek Google a Google Script
Data o počasí pomocí Tabulek Google a Google Script

V tomto Blogtutu odešleme hodnoty senzoru SHT25 do listů Google pomocí Adafruit huzzah ESP8266, který pomáhá odeslat data na internet.

  • Odesílání dat do buňky listu Google je velmi užitečný a základní způsob, jak ukládat data v tabulkové podobě online.
  • Namísto použití jakéhokoli druhu speciálního můstku, jako je zasunutí pole nebo MQTT NODE RED nebo jiného druhu REST API, budeme data odesílat pomocí skriptu Google, který snadno přijímá data ze snímače pomocí odkazu na skript, který poskytuje skriptová aplikace Google po publikování
  • Skriptování můžeme použít k odeslání dat z Google listu, dokumentů nebo dokonce na Google Drive.
  • Jen zde nekončete, můžete propojit listy Google s jakoukoli webovou aplikací, do které můžete sdílet data s uživateli tak, jak chtěli
  • Na rozdíl od ostatních online serverů zde není třeba platit žádné další poplatky a do uživatelského účtu můžete ukládat data až do maximální kapacity 10 GB a můžete je používat
  • Jedním z nejlepších úsilí je naučit se o připojení dat k internetu pomocí tohoto druhu aplikace v reálném čase snadno.
  • K flexibilnímu sdílení dat s listy Google použijeme připojení I2C, které provádí protokol master-slave.
  • Platforma protokolu I2C spojuje hardware senzoru a pracuje s přibližně 256 senzory najednou pomocí pouze 2 kabelových pull up pro přenos dat senzoru v 8 bitovém hardwaru

Krok 1: Hardware

Soupravy Adafruit Feather HUZZAH

Deska Adafruit Feather Huzzah

Integrovaný adaptér Adafruit I2C a USB

Senzor teploty a vlhkosti SHT25

Kabel I2C

Krok 2: Jak věci fungují

Načítání údajů ze senzorů v reálném čase prostřednictvím ESP8266 a odesílání dat na různé cloudové platformy je velmi jednoduché.

Pro vytvoření dvou kabelové komunikace mezi Adafruit Huzzah Board a modulem I2C senzoru SHT25 a kabelem I2C použijeme knihovnu Wire.h v Arduino IDE.

Poznámka: Abych se vyhnul složité struktuře zapojení, použiji adaptér I2C pro Adafruit Huzzah určený k připojení senzoru I2C.

Aby mohl nováček nastavit Esp8266, musí projít nastavením ESP8266

Nejprve inicializujte knihovny:

  • Drátěná knihovna
  • ESP8266 Wi -Fi
  • Zabezpečení klienta WiFi

Krok 3: Proces spuštění modulu I2C v Arduino IDE

Po inicializaci knihoven definujeme proces I2C, který bude použit k načtení naměřených hodnot ze snímače, jejich převodu a posunutí 8bitových dat podle požadavků:

Inicializujte registry ve dvouvodičovém protokolu I2C pro modul senzoru I2C

#define Addr 0x40

  • Spusťte přenos I2C a inicializujte registry a vyžádejte si 2 bajtová data, odkud budeme číst data ze senzorů.
  • Pokud budou k dispozici 2 bajtová data, přečtěte si data ze senzorů a pomocí níže uvedených vzorců převádíme požadované hodnoty

plovoucí vlhkost = (((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;

Vytiskněte hodnoty na obrazovce sériového monitoru

Krok 4: Připojení ESP8266 pomocí WiFi a tabulky Google

Po spuštění modulů I2C se naučíme, jak načíst data a pomocí WiFi knihoven a ID hostitele a klíčů API odeslat data do listů Google.

  • Globálně definujte pověření WiFi v ESP8266, což nám pomůže propojit desku s internetem
  • Protože budeme používat klienta HTTP a budeme definovat protokol HTTPS = 443 pro zabezpečení cesty HTTP, protože skript bude fungovat pouze v zabezpečené cestě.
  • Inicializujte podrobnosti o hostiteli v kódu

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

const int httpsPort = 443;

Řetězec SCRIPT_ID = "zmínit ID skriptu, jak je uvedeno v přichycení";

Poznámka: ID skriptu je uvedeno v „URL webových aplikací“, zatímco kód Gscript bude publikován, stačí zkopírovat a vložit níže uvedené ID a inicializovat výše uvedené příkazy

  • Také pomocí volatile with variable se chystáme globálně inicializovat proměnnou, která načte data z modulu I2C a odešle je do skriptu URL, který dále odešle data na místo určení.
  • Pomocí WiFi knihovny ESP8266 budeme moci připojit desku k internetu
  • Data ze senzoru budou hostována na místním serveru každých 5 sekund.
  • Pomocí skriptu URL budou data hostována na aktivní stránce publikované pomocí skriptu Google po každých 15 sekundách.

Krok 5: Automatizujte list Google pomocí editoru GScript

Automatizujte tabulku Google pomocí editoru GScript
Automatizujte tabulku Google pomocí editoru GScript
Automatizujte tabulku Google pomocí editoru GScript
Automatizujte tabulku Google pomocí editoru GScript
Automatizujte tabulku Google pomocí editoru GScript
Automatizujte tabulku Google pomocí editoru GScript

Protože všichni máme účet Google, pomocí kterého se můžete přihlásit do listu Google pomocí svého účtu

  • Uveďte hodnoty, které potřebujete získat ze snímače připojeného k ESP8266
  • Přejděte na Nástroje> Editor skriptů
  • K přijímání událostí použijte funkci „Doget“
  • Ve funkci „Doget“inicializujte klíč API tabulky a připojte aktivní list, kam chcete odeslat hodnoty senzorů
  • S pomocí funkce automatizace uvedené v kódu snadno reprezentovat data v řádcích a sloupcích.
  • Nakonec uložte data a klikněte na „Publikovat“>> Klikněte na „Nasadit jako webové aplikace“
  • Ujistěte se, že kdykoli dojde k nějaké změně, vyberte „verzi projektu“>> „Nové“>> stiskněte „aktualizovat“

Aktuální adresa URL webové aplikace se zobrazí takto:

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

dále použit v kódu ESP8266 pro načítání dat ze senzorů

Hostitelská připojení Budeme používat požadavek Získat HTTPS k připojení dat k ID hostitele uvedenému v editoru gscript, kde jsme naše data dále kódovali, abychom se spojili s listem Google.

funkce doGet (e) {Logger.log (JSON.stringify (e)); // zobrazit parametry var result = 'Ok'; // předpokládej úspěch if (e.parameter == 'undefined') {result = 'No Parameters'; } else {var sheet_id = ''; // ID tabulky var sheet = SpreadsheetApp.openById (sheet_id).getActiveSheet (); var newRow = sheet.getLastRow () + 1; var rowData = ; } Logger.log (JSON.stringify (rowData)); // Napište nový řádek pod var newRange = sheet.getRange (newRow, 1, 1, rowData.length); newRange.setValues ([rowData]); }

Krok 6: Omezení:

Omezení
Omezení
  • Tento projekt je omezen pouze na ukládání dat snímače I2C do listů Google
  • K přijímání hodnot prostřednictvím funkcí I2C používáme požadavek HTTPS GET
  • Musíme změnit hodnotu ve formátu řetězců a poté odeslat data na odkaz URL gscript.

Krok 7: Kód, kredity, reference

Kód Github:

github.com/varul29/SHT25_GoogleSheets_Goog…

Odkaz

Kód I2C:

Google Script Tutorial:

Vestavěný obchod:

Tutorial Blog: