Spisu treści:
- Krok 1: Pierwsze kroki
- Krok 2: Korzystanie z API Dark Sky
- Krok 3: Stan początkowy
- Krok 4: Pulpit nawigacyjny ciemnego nieba
- Krok 5: Wniosek
Wideo: Zbuduj tablicę pogody za pomocą interfejsu Dark Sky API: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Dark Sky specjalizuje się w prognozowaniu pogody i wizualizacji. Najfajniejszym aspektem Dark Sky jest interfejs API pogody, którego możemy użyć do pobrania danych pogodowych z niemal dowolnego miejsca na świecie. Nie tylko pogoda jest deszczowa lub słoneczna, ale także temperatura, punkt rosy, porywisty wiatr, wilgotność, opady, ciśnienie, wskaźnik UV i wiele innych – wszystko to jest łatwo dostępne w dowolnym miejscu i czasie.
Nauczmy się korzystać z super prostego interfejsu API Dark Sky. Jeśli jesteś nowy w korzystaniu z API, obiecuję, że będzie to naprawdę proste! A jeśli używałeś wcześniej API, mam nadzieję, że możemy nauczyć Cię czegoś nowego za pomocą kodu, którego użyliśmy.
Czego potrzebujesz do tego projektu:
- Konto Dark Sky API
- Początkowe konto stanu
- Raspberry Pi lub laptop
Krok 1: Pierwsze kroki
Włożyliśmy już dużo pracy w przygotowanie kodu i uporządkowanie informacji. Będziemy potrzebować tylko kilku zmian po drodze. Jeśli chcesz trochę wyzwania, wprowadź zmiany w naszym kodzie i jakie dane pogodowe są przesyłane, możliwości są nieograniczone!
Aby pobrać wszystkie rzeczy, które dla Ciebie przygotowaliśmy, musisz sklonować repozytorium z GitHub. GitHub to usługa, która pozwala nam przechowywać, weryfikować i zarządzać takimi projektami. Będziesz chciał uruchomić ten skrypt na dedykowanym urządzeniu. Raspberry Pi to idealna opcja do uruchamiania aplikacji takich jak ten samouczek.
Aby sklonować repozytorium, wystarczy wejść do naszego terminala Pi lub terminalu komputera, który jest połączony przez SSH z twoim pi i wpisać to polecenie:
$ git clone
Naciśnij Enter, a zobaczysz te informacje:
Klonowanie do „ciemnego”…
remote: Liczenie obiektów: 2, gotowe. zdalne: Razem 2 (delta 0), ponownie wykorzystane 0 (delta 0), ponownie wykorzystane 2 Rozpakowywanie obiektów: 100% (2/2), gotowe. Sprawdzam łączność… gotowe.
Gdy to zobaczysz, gratulacje, pomyślnie sklonowałeś repozytorium GitHub i masz wszystkie niezbędne pliki do zbudowania tego projektu. Zanim przejdziemy do następnego kroku, poświęćmy trochę czasu na zbadanie tego katalogu i nauczenie się kilku podstawowych poleceń wiersza poleceń.
Wpisz poniższe polecenie w swoim terminalu:
$ ls
To polecenie wyświetla wszystko, co jest dostępne w katalogu, w którym aktualnie się znajdujesz. Ta lista pokazuje, że nasze repozytorium GitHub zostało pomyślnie sklonowane do naszego katalogu pod nazwą "darksky". Rzućmy okiem na zawartość tego katalogu. Aby przejść do katalogu, wystarczy wpisać „cd”, a następnie wpisać nazwę katalogu, do którego chcesz przejść.
W takim przypadku wpiszemy:
$ cd darksky
Gdy naciśniemy Enter, zobaczysz, że jesteśmy teraz w katalogu darksky. Wpiszmy ponownie „ls”, aby zobaczyć, jakie pliki zainstalowaliśmy na naszym pi.
README.md darksky.py…
Tutaj widzimy, że mamy nasz dokument readme i pliki Pythona. Rzućmy okiem na darksky.py za pomocą polecenia „nano”. Polecenie nano pozwala nam otworzyć edytor tekstu nano, w którym mamy cały nasz kod Pythona dla każdego segmentu tego projektu. Śmiało i wpisz:
$ nano darksky.py
Tutaj możesz zobaczyć cały kod, który przygotowaliśmy dla Ciebie dla tego projektu. Nie zamierzamy jeszcze wprowadzać żadnych zmian w tym dokumencie, ale możesz przewijać i zobaczyć, co będziemy robić w dalszej części tego samouczka.
Krok 2: Korzystanie z API Dark Sky
Aby korzystać z API Dark Sky, najpierw potrzebujesz własnego klucza API. Nie martw się, uzyskanie klucza API jest szybkie i bezpłatne. Wystarczy wejść na stronę i kliknąć „Wypróbuj za darmo”, aby utworzyć konto.
- Otrzymujesz 1000 wywołań API za darmo każdego dnia. Każde żądanie API przekraczające bezpłatny dzienny limit kosztuje 0,0001 USD.
- Ten limit jest automatycznie resetowany każdego dnia o północy czasu UTC.
- Prognozy Prognozy zwraca aktualną prognozę pogody na następny tydzień.
- Żądanie Time Machine zwraca obserwowane lub prognozowane warunki pogodowe dla daty z przeszłości lub przyszłości.
Twój tajny klucz API Dark Sky będzie wyglądał mniej więcej tak: 0123456789abcdef9876543210fedcba.
Możesz wykonać wywołanie API do Dark Sky, wpisując adres URL w przeglądarce w następującym formacie:
api.darksky.net/forecast/[klucz]/[szerokość geograficzna], [długość geograficzna]
Zastąp „klucz” swoim kluczem Dark Sky API, a długość/szerokość geograficzną na cokolwiek chcesz. Swoją długość i szerokość geograficzną możesz znaleźć, przechodząc do Map Google i wyszukując swoją lokalizację. Te wartości będą znajdować się w adresie URL. Skopiuj i wklej powyższy adres URL ciemnego nieba z kluczem dostępu i wartościami dodanymi do paska adresu.
Gdy to zrobisz, zobaczysz coś takiego:
day", "nearestStormDistance":57, "nearestStormBearing":15, "precipIntensity":0, "precipProbability":0, "temperature":53.9, "appparentTemperature":53.9, "dewPoint":29.59, "humidity":0.39, "pressure":1022.45, "windSpeed":3.87, "windGust":9.25, "windBearing":259, "cloudCover":0.01, "uvIndex":3, "visibility":7.8, "ozone":309.71}, "minutely":{"summary":"Wyczyść godzinę.", "icon":"clear-day", "data":[{"time":1550615280, "precipIntensity":0, "precipProbability":0 }, …
Może to być trochę przytłaczające i trudne do odczytania, więc zalecam użycie formatera JSON, aby dane były bardziej czytelne. Kiedy to zrobisz, będzie wyglądać mniej więcej tak:
obiekt {9}
szerokość geograficzna: 37.8267 długość geograficzna: -122.4233 strefa czasowa: America/Los_Angeles aktualnie {19} czas: 1550615286 podsumowanie: Wyczyść ikonę: pogodny dzień najbliższyStormDistance: 57 najbliższyStormBearing: 15 opad Intensywność: 0 opad Prawdopodobieństwo: 0 Temperatura: 53,9 pozornaTemperatura: 53,9 Punkt rosy: 29,59 Wilgotność: 0,39 Ciśnienie: 1022,45 Wiatr Prędkość: 3,87 Wiatr Podmuch: 9,25 WiatrNos: 259 Zachmurzenie: 0,01 uvIndex: 3 Widoczność: 7,8 Ozon: 309.71
Właśnie wykonałeś wywołanie API! Widzisz jakie to było proste? Nie musiałeś nawet pisać ani jednej linii kodu. Teraz, gdy już opanowałeś API, możemy przejść do części strumieniowania danych.
Krok 3: Stan początkowy
Chcemy przesyłać strumieniowo wszystkie nasze dane pogodowe do usługi w chmurze, aby ta usługa przekształciła nasze dane w ładny pulpit nawigacyjny, do którego możemy uzyskać dostęp z naszego laptopa lub urządzenia mobilnego. Nasze dane potrzebują miejsca docelowego. Jako miejsce docelowe użyjemy stanu początkowego.
Krok 1: Zarejestruj się, aby uzyskać początkowe konto państwowe
Przejdź do https://iot.app.initialstate.com i utwórz nowe konto. Otrzymujesz 14-dniowy bezpłatny okres próbny i każdy, kto ma adres e-mail edu, może zarejestrować się w bezpłatnym planie studenckim.
Krok 2: Zainstaluj ISStreamer
Zainstaluj moduł Pythona stanu początkowego na swoim Raspberry Pi. W wierszu polecenia uruchom następujące polecenie:
$ cd /home/pi/$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Krok 3: Zrób Automagic. Po kroku 2 zobaczysz na ekranie coś podobnego do następującego:
pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Początek ISStreamer Python Łatwa instalacja! Instalacja może potrwać kilka minut, napij się kawy:) Ale nie zapomnij wrócić, będę miał pytania później! Znaleziono easy_install: setuptools 1.1.6 Znaleziono pip: pip 1.5.6 z /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7) pip wersja główna: 1 pip wersja podrzędna: 5 Znaleziono ISStreamer, aktualizuję… Wymaganie już aktualne: ISStreamer w /Library/Python/2.7/site-packages Porządkowanie… Czy chcesz automagicznie uzyskać przykładowy skrypt? [t/N] Gdzie chcesz zapisać przykład? [domyślnie:./is_example.py] Wybierz, której aplikacji stanu początkowego używasz: 1. app.initialstate.com 2. [NOWOŚĆ!] iot.app.initialstate.com Wybierz 1 lub 2: Wpisz iot.app Nazwa użytkownika.initialstate.com: Wprowadź hasło iot.app.initialstate.com:
Na pytanie, czy chcesz automagicznie uzyskać przykładowy skrypt, wpisz „y” jako tak i naciśnij enter, aby zapisać skrypt w domyślnej lokalizacji. W przypadku pytania o to, której aplikacji używasz, wybierz 2 (chyba że zarejestrowałeś się przed listopadem 2018 r.) i wprowadź swoją nazwę użytkownika i hasło.
Krok 4: Uruchom przykładowy skrypt
Uruchom skrypt testowy, aby upewnić się, że możemy utworzyć strumień danych na Twoje konto stanu początkowego. Napisz następujące polecenie:
$ python is_example.py
Krok 6: Przykładowe dane
Wróć do swojego konta stanu początkowego w przeglądarce internetowej. Po lewej stronie na półce dziennika powinien pojawić się nowy zasobnik danych o nazwie „Przykład strumienia Pythona” (może być konieczne odświeżenie strony). Kliknij ten zasobnik, aby wyświetlić swoje dane.
Krok 4: Pulpit nawigacyjny ciemnego nieba
Teraz czas na zabawną część. Jesteśmy gotowi, aby zacząć korzystać z interfejsu Dark Sky API, aby stworzyć pulpit pogodowy i przechwycić historię pogody dla wybranej przez nas lokalizacji. W tym celu użyjemy skryptu Pythona: https://github.com/initialstate/darksky/blob/master/darksky.py. Ten skrypt po prostu wywołuje interfejs API Dark Sky za pomocą klucza API i pobiera informacje o pogodzie w określonym przedziale czasu. Przesyła również te dane na twoje konto stanu początkowego, co pozwoli ci stworzyć pulpit pogodowy Dark Sky.
Możesz skopiować ten skrypt do swojego Pi lub uzyskać do niego dostęp za pośrednictwem repozytorium GitHub, które sklonowaliśmy wcześniej. Możesz to zrobić, przechodząc do katalogu darksky, wpisując:
$ cd darksky
Stąd będziesz mógł uzyskać dostęp do pliku Pythona, który uruchomimy, aby utworzyć nasz pulpit nawigacyjny pogody. Zanim go uruchomisz, musisz ustawić żądane parametry i włożyć klucze. Nano do pliku darksky.py wpisując:
$ nano darksky.py
Następnie edytuj sekcję u góry skryptu:
# --------- Ustawienia użytkownika ---------
CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "TUTAJ UMIEŚĆ SWÓJ KLUCZ API DARK SKY" BUCKET_NAME = ":partly_sunny: " + CITY + " Weather" BUCKET_KEY = "ds1" ACCESS_INTED KEY = "UMIEŚĆ KLUCZA DOSTĘPU KLUCZ TUTAJ" MINUTES_BETWEEN_READS = 15 # ---------------------------------
Musisz ustawić żądane współrzędne GPS i nazwę miasta. Musisz również wstawić swój klucz Dark Sky API i klucz dostępu do konta Stanu początkowego, w przeciwnym razie Twoje dane nigdzie nie trafią. Parametr MINUTES_BETWEEN_READS określa, jak często skrypt będzie odpytywać interfejs API Dark Sky w celu uzyskania informacji o pogodzie. 15 minut zapewnia miłą przerwę długoterminową. Na potrzeby testów krótkoterminowych możesz ustawić to na 0,5 minuty. Wprowadź zmiany, a następnie naciśnij control + X, aby wyjść i zapisać.
Po ustawieniu parametrów możesz uruchomić skrypt:
$ pyton darksky.py
Jeśli ssh's do swojego Pi i chcesz pozostawić ten skrypt nieprzerwany przez długi czas, możesz użyć polecenia nohup (bez rozłączenia) w następujący sposób:
$ nohup pyton darksky.py &
Ten skrypt zrobi coś więcej niż tylko odczytanie danych pogodowych i wysłanie ich do stanu początkowego. Ten skrypt będzie korzystał z obsługi emoji wbudowanej w narzędzia stanu początkowego, aby pulpit nawigacyjny był nieco fajniejszy. Możesz zobaczyć logikę użytą do pobrania stanu pogody z ikony aktualnie -> i przekonwertowania go na token emoji w funkcji weather_icon. Coś podobnego dzieje się z fazą księżyca w funkcji moon_icon i kierunkiem wiatru w funkcji wind_dir_icon.
Krok 5: Wniosek
Przejdź do swojego konta stanu początkowego i spójrz na swoje dane. Zmieniłem wszystkie wartości procentowe na mierniki łuku, opady na miernik cieczy, a temperaturę na miernik temperatury. Możesz zmienić na dowolny rodzaj kafelków i wybrać kolory dla wskaźników i wykresów liniowych. Możesz ustawić ciemny lub jasny pulpit nawigacyjny i osadzić produkt końcowy na stronie internetowej za pomocą osadzonego elementu iFrame.
Jeśli chcesz użyć układu pulpitu nawigacyjnego z udziału publicznego jako pulpitu nawigacyjnego, możesz zaimportować układ do zasobnika danych, postępując zgodnie z instrukcjami tutaj. Możesz dodać obraz tła do pulpitu nawigacyjnego, aby nadać mu więcej kontekstu.
Publiczny adres URL udostępniania naszego pulpitu nawigacyjnego to
Teraz, gdy opanowałeś API Dark Sky, możliwości są nieograniczone! Istnieje nieograniczona liczba bezpłatnych interfejsów API online do zbadania, więc zacznij.
Zalecana:
Panel interfejsu API jakości powietrza AirVisual: 5 kroków
AirVisual Air Quality API Dashboard: AirVisual (https://www.airvisual.com) to strona internetowa, która dostarcza dane na temat jakości powietrza na całym świecie. Mają interfejs API, którego użyjemy do uzyskania danych o jakości powietrza do wysłania do pulpitu nawigacyjnego. Będziemy współdziałać z tym interfejsem API podobnie jak w przypadku
Dark Sky API PyPortal i tablica pogodowa: 6 kroków
Dark Sky API PyPortal i Weather Dashboard: Ten projekt jest kontynuacją tego, co zrobiliśmy wcześniej, Dark Sky API Weather Dashboard. Tym razem zamiast Raspberry Pi użyjemy Adafruit PyPortal do wyświetlenia danych pogodowych i przesłania tych danych do stanu początkowego. Dwa dashboardy do pracy jednego
Gesture Hawk: Robot sterowany gestami ręcznymi za pomocą interfejsu opartego na przetwarzaniu obrazu: 13 kroków (ze zdjęciami)
Gesture Hawk: Robot sterowany gestami ręcznymi przy użyciu interfejsu opartego na przetwarzaniu obrazu: Gesture Hawk został zaprezentowany w TechEvince 4.0 jako prosty interfejs człowiek-maszyna oparty na przetwarzaniu obrazu. Jego użyteczność polega na tym, że do sterowania zrobotyzowanym samochodem poruszającym się po różnych
Jak zrobić zdalnie sterowane urządzenie do usuwania kolców lub tablicę rozdzielczą za pomocą samodzielnego Atmega328P: 6 kroków (ze zdjęciami)
Jak zrobić zdalnie sterowany Spike Buster lub Switch Board przy użyciu samodzielnego Atmega328P: W tym projekcie pokażę, jak zbudować zdalnie sterowany Spike Buster lub Switch Board przy użyciu samodzielnego Atmega328P. Ten projekt jest zbudowany na niestandardowej płytce PCB z bardzo małą liczbą komponentów. Jeśli wolisz oglądać wideo, umieściłem to samo lub
Zbuduj własną tablicę rozwojową: 8 kroków (ze zdjęciami)
Zbuduj własną tablicę rozwojową: Ta instrukcja pokaże Ci, jak zbudować własną tablicę rozwojową od podstaw! Ta metoda jest prosta i nie wymaga żadnych zaawansowanych narzędzi, możesz to zrobić nawet przy kuchennym stole. Daje to również lepsze zrozumienie tego, w jaki sposób Ardruino i