Spisu treści:

Dane pogodowe za pomocą Arkuszy Google i skryptu Google: 7 kroków
Dane pogodowe za pomocą Arkuszy Google i skryptu Google: 7 kroków

Wideo: Dane pogodowe za pomocą Arkuszy Google i skryptu Google: 7 kroków

Wideo: Dane pogodowe za pomocą Arkuszy Google i skryptu Google: 7 kroków
Wideo: Arkusz Google Spreadsheet - to, czego o nim nie wiesz 2024, Listopad
Anonim
Dane pogodowe za pomocą Arkuszy Google i Google Script
Dane pogodowe za pomocą Arkuszy Google i Google Script

W tym Blogtucie zamierzamy wysyłać odczyty czujnika SHT25 do arkuszy Google za pomocą Adafruit huzzah ESP8266, który pomaga przesyłać dane do Internetu.

  • Wysyłanie danych do komórki arkusza google jest bardzo użytecznym i podstawowym sposobem, który pozwala na zapisanie danych w formie tabelarycznej online.
  • Zamiast używać jakiegokolwiek specjalnego mostu, takiego jak pushing box lub MQTT NODE RED lub innego rodzaju REST API, będziemy przesyłać dane za pomocą skryptu Google, który z łatwością odbiera dane z czujnika za pomocą skryptu Link dostarczonego przez aplikacja skryptu google po opublikowaniu
  • Możemy użyć skryptu do wysłania danych z arkusza google, dokumentów, a nawet na dysk google.
  • Tylko nie kończ tutaj dalej, możesz połączyć arkusze google z dowolną aplikacją internetową, która udostępnia dane użytkownikom tak, jak chcieli
  • W przeciwieństwie do innych serwerów online tutaj nie trzeba płacić żadnych dodatkowych opłat, a na koncie użytkownika można przechowywać maksymalnie 10 GB danych i można z nich korzystać
  • Jednym z najlepszych starań jest łatwe nauczenie się łączenia danych z Internetem za pomocą tego rodzaju aplikacji działającej w czasie rzeczywistym.
  • Zamierzamy użyć połączenia I2C, które wykonuje protokół master-slave, aby elastycznie udostępniać dane arkuszom Google.
  • Platforma protokołu I2C łączy sprzęt czujnika i współpracuje z około 256 czujnikami jednocześnie, wykorzystując tylko 2 przewodowe podciąganie do przesyłania danych z czujnika w 8-bitowym sprzęcie

Krok 1: Sprzęt

Zestawy HUZZAH z piór Adafruit

Deska Huzzah z piór Adafruit

Zintegrowany Adafruit I2C i adapter USB

Czujnik temperatury i wilgotności SHT25

Kabel I2C

Krok 2: Jak działają rzeczy

Pobieranie odczytów danych z czujników w czasie rzeczywistym za pośrednictwem ESP8266 i wysyłanie danych do różnych platform Cloud jest bardzo proste.

Wykorzystamy bibliotekę Wire.h w Arduino IDE do stworzenia dwuprzewodowej komunikacji między płytą Adafruit Huzzah Board a modułem I2C czujnika SHT25 i kablem I2C.

Uwaga: Aby uniknąć skomplikowanej struktury okablowania, zamierzam użyć adaptera I2C do Adafruit Huzzah przeznaczonego do podłączenia czujnika I2C.

Aby nowicjusz mógł skonfigurować Esp8266, musisz przejść przez konfigurację ESP8266

Najpierw zainicjuj biblioteki:

  • Biblioteka przewodów
  • ESP8266WiFi
  • WiFiClientSecure

Krok 3: Proces wykonywania modułu I2C w Arduino IDE

Po inicjalizacji bibliotek zdefiniujemy proces I2C, który ma być używany do pobierania odczytów czujnika, konwertowania ich i przesuwania danych 8-bitowych zgodnie z wymaganiami:

Zainicjuj rejestry w dwuprzewodowym protokole I2C dla modułu czujnika I2C

#define Addr 0x40

  • Uruchom transmisję I2C i zainicjalizuj rejestry oraz poproś o 2 bajty danych, z których odczytamy dane z czujnika.
  • Jeśli dostępne będą 2 bajty danych, odczytaj dane z czujnika i korzystając z poniższych wzorów przeliczamy żądane wartości

wilgotność pływakowa = (((dane[0] * 256,0 + dane[1]) * 125,0) / 65536.0) - 6;

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

pływak fTemp = (cTemp * 1,8) + 32;

Wydrukuj wartości na ekranie monitora szeregowego

Krok 4: Połączenie ESP8266 z Wi-Fi i arkuszem kalkulacyjnym Google

Po wykonaniu modułów I2C dowiemy się, jak pobierać dane i wykorzystywać biblioteki WiFi i identyfikator hosta oraz klucze API do wysyłania danych do arkuszy Google.

  • Zdefiniuj poświadczenia Wi-Fi globalnie w ESP8266, co pomoże nam połączyć tablicę z Internetem
  • Ponieważ zamierzamy używać klienta HTTP i będziemy definiować protokół HTTPS = 443 do zabezpieczenia ścieżki HTTP, ponieważ skrypt będzie działał tylko w bezpiecznej ścieżce.
  • Zainicjuj dane hosta w kodzie

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

const int httpsPort = 443;

String SCRIPT_ID = "wspomnij o identyfikatorze skryptu wymienionym w snapach";

Uwaga: identyfikator skryptu jest wymieniony w „adresie URL aplikacji internetowych”, podczas gdy kod Gscript zostanie opublikowany, wystarczy skopiować i wkleić identyfikator wymieniony poniżej i zainicjować w powyższych poleceniach

  • Używając również volatile ze zmienną, zamierzamy zainicjować zmienną globalnie, która pobiera dane z modułu I2C i wysyła je do skryptu URL, który dalej prześle dane do miejsca docelowego.
  • Korzystając z biblioteki WiFi ESP8266 będziemy mogli połączyć płytkę z internetem
  • Dane czujnika będą hostowane na lokalnym serwerze co 5 sekund.
  • Za pomocą skryptu URL dane będą hostowane w skrypcie google publikowany link Aktywna strona po każdych 15 sekundach.

Krok 5: Zautomatyzuj Arkusz Google za pomocą Edytora GScript

Zautomatyzuj Arkusz Google za pomocą Edytora GScript
Zautomatyzuj Arkusz Google za pomocą Edytora GScript
Zautomatyzuj Arkusz Google za pomocą Edytora GScript
Zautomatyzuj Arkusz Google za pomocą Edytora GScript
Zautomatyzuj Arkusz Google za pomocą Edytora GScript
Zautomatyzuj Arkusz Google za pomocą Edytora GScript

Ponieważ wszyscy mamy konto google, aby zalogować się do arkusza google za pomocą swojego konta

  • Podaj wartości, które musisz uzyskać z czujnika połączonego z ESP8266
  • Przejdź do Narzędzia>Edytor skryptów
  • Użyj funkcji „Doget”, aby otrzymywać zdarzenia
  • W funkcji „Doget”, aby zainicjować klucz API arkusza kalkulacyjnego, a także podłączyć Aktywny arkusz, do którego chcesz przesłać wartości czujnika
  • Za pomocą funkcji automatyzacji, o której mowa w kodzie, do łatwego przedstawiania danych w wierszach i kolumnach.
  • Na koniec zapisz dane i kliknij „Opublikuj”>> Kliknij „Wdróż jako aplikacje internetowe”
  • Upewnij się, że za każdym razem, gdy nastąpią jakiekolwiek zmiany, wybierz „wersję projektu” >> „Nowa”>> naciśnij „aktualizacja”

Aktualny adres URL aplikacji internetowej będzie wyglądał jak poniżej:

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

dalej używany w kodzie ESP8266 do pobierania danych z czujników;

Połączenia hostingoweZamierzamy użyć żądania HTTPS Get, aby połączyć dane z identyfikatorem hosta wymienionym w edytorze gscript, gdzie zakodowaliśmy nasze dane dalej, aby połączyć się z arkuszem google.

funkcja doGet(e) { Logger.log(JSON.stringify(e)); // wyświetl parametry var wynik = 'Ok'; // zakładamy sukces if (e.parameter == 'undefined') { result = 'Brak parametrów'; } else { var id_arkusza = ''; // Identyfikator arkusza kalkulacyjnego var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet(); var nowyWier = arkusz.getLastRow() + 1; var danych wierszy = ; } Logger.log(JSON.stringify(rowData)); // Zapisz nowy wiersz poniżej var newRange = sheet.getRange(newRow, 1, 1, rowData.length); newRange.setValues([rowData]); }

Krok 6: Ograniczenia:

Ograniczenia
Ograniczenia
  • Ten projekt ogranicza się tylko do przechowywania danych czujnika I2C w arkuszach google
  • Używamy żądania HTTPS GET, aby otrzymać wartości za pomocą funkcji I2C
  • Musimy zmienić wartość w formacie string, a następnie przesłać dane do linku URL gscript.

Krok 7: Kod, kredyty, referencje

Kod Github:

github.com/varul29/SHT25_GoogleSheets_Goog…

Referencja

Kod I2C:

Samouczek Google Script:

Wbudowany sklep:

Blog samouczka:

Zalecana: