Spisu treści:

Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT: 4 kroki
Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT: 4 kroki

Wideo: Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT: 4 kroki

Wideo: Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT: 4 kroki
Wideo: Moim zadaniem jest obserwowanie lasu i dzieje się tu coś dziwnego. 2024, Wrzesień
Anonim
Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT
Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT
Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT
Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT

* W 2019 roku Yahoo zmieniło swoje API i przestało to działać. Nie wiedziałem o zmianie. We wrześniu 2020 r. ten projekt został zaktualizowany, aby korzystać z API OPENWEATHERMAP. Zobacz zaktualizowaną sekcję poniżej, reszta tych informacji jest jednak nadal dobra. Dziękuję za uwagę i za poinformowanie mnie o zmianie Yahoo. *

Niedawno kupiłem Cyntech WeatherHAT, ale byłem trochę rozczarowany brakiem oprogramowania do tego.

Sam HAT wydaje się być dobrze skonstruowany, z 6 niebieskimi diodami LED w postaci kropli deszczu, 6 pomarańczowymi diodami LED w postaci pioruna, 6 białymi diodami LED w postaci chmury. 1 (Uważam, że jest to dioda LED RGB) dla SUN - wyświetla kolor pomarańczowy (więc mogę się mylić co do tego, że jest to RGB). I 6 diod LED WS2812 (to RGB:-))

Cyntech ma przewodnik dla początkujących, a nawet to jest dobre – jest łatwy do zainstalowania i używania HAT.

Byłem więc zaskoczony, że tak naprawdę nie widziałem żadnego oprogramowania (innego niż demo dostarczone przez Cyntech). Byłem równie zaskoczony, że nie znalazłem nikogo, kto naprawdę tego używa – może ludzie chcą „wymyślnego” wyświetlacza z temperaturami i wszystkimi tego rodzaju informacjami. Dla mnie fajnie jest po prostu spojrzeć na kilka diod LED i wiedzieć – jest deszcz, burza z piorunami lub zachmurzenie – w tym momencie, jeśli potrzebuję więcej informacji, mogę spojrzeć na mój tablet lub telefon.:-)

Trochę więcej - to naprawdę mój pierwszy raz, kiedy używam Pythona, nie jestem w tym dobry. I jestem pewien, że ludzie, którzy naprawdę znają Pythona, podpowiedzą mi lepszy sposób na zrobienie tego.

Zacznijmy:

Potrzebujemy karty SD (co najmniej 8gb)

Raspberry PI (używam Zero W) musi mieć dostęp do Internetu.

i potrzebujemy kapelusza pogodowego Cyntech

Jeśli używasz Raspberry PI Zero W, będziesz potrzebować również możliwości przylutowania zestawu nagłówków do płytki.

W przeciwnym razie potrzebne umiejętności to umiejętność obsługi oprogramowania i konfiguracji karty SD.

Krok 1: Ustaw kartę SD i Raspberry PI

Ustaw kartę SD i Raspberry PI
Ustaw kartę SD i Raspberry PI
Ustaw kartę SD i Raspberry PI
Ustaw kartę SD i Raspberry PI

Będziesz musiał pobrać najnowszą wersję Raspbian (w czasie tej instrukcji, czyli Raspbian Stretch marzec 2018 (2018-03-13))

www.raspberrypi.org/downloads/raspbian/

Użyłem wersji na komputery stacjonarne, nawet jeśli uruchamiam moją konfigurację bez nagłówka i robię większość rzeczy z CLI (interfejs wiersza poleceń) przez ssh.

Postępuj zgodnie z przewodnikiem konfiguracji znajdującym się tutaj:

www.raspberrypi.org/documentation/installa…

Po zakończeniu Etchera wyjmij kartę SD i włóż ją ponownie do komputera.

* Naprawdę musisz wykonać ten krok tylko wtedy, gdy planujesz instalację bezgłową

Musimy skonfigurować SSH i WIFI, zanim użyjemy karty SD w Raspberry PI. Na partycji BOOT karty utwórz plik o nazwie „ssh” bez cudzysłowów. nic nie musi być w tym pliku. Gdy PI uruchomi się, zobaczy ten plik i włączy SSH.

Musimy również stworzyć plik o nazwie "wpa_supplicant.conf". Musimy edytować ten plik z ustawieniami Wi-Fi.

Powinno to wyglądać mniej więcej tak:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1 sieć={ ssid="twojewifiSSID" psk="twojewifihasło" scan_ssid=1 }

* Naprawdę musisz to zrobić tylko wtedy, gdy planujesz instalację bezgłową

Gdy to zrobisz, bezpiecznie wyjmij kartę SD i włóż Raspberry PI (upewnij się, że nie ma zasilania w PI).

Załóż weatherHAT i włącz Raspberry PI.

Krok 2: Skonfiguruj biblioteki WeatherHAT

Skonfiguruj biblioteki WeatherHAT
Skonfiguruj biblioteki WeatherHAT
Skonfiguruj biblioteki WeatherHAT
Skonfiguruj biblioteki WeatherHAT

W tym kroku będziemy postępować zgodnie ze znalezionym przewodnikiem dla początkujących

guides.cyntech.co.uk/weatherhat/getting-sta…

JEŚLI wykonujesz instalację bezgłową, będziesz chciał ssh [email protected]

Jeśli nie masz klienta ssh - PUTTY jest dobry.

Jeśli używasz klawiatury i monitora – powyższy przewodnik jest dobry do naśladowania, rozpoczyna się na pulpicie GUI.

Ważnymi krokami tutaj jest zainstalowanie biblioteki WS281x i bibliotek WeatherHAT, wraz z zależnością dla każdej z nich.

aktualizacja sudo apt-get

sudo apt-get upgrade -y sudo apt-get install build-essential python-dev git scons swig python-smbus git clone https://github.com/jgarff/rpi_ws281x.git > git clone https://github.com/ jgarff/rpi_ws281x.git > cd rpi_ws281x scons cd python sudo python setup.py zainstaluj

Teraz musimy się upewnić, że I2C jest włączone.

sudo raspi-config

Przewodnik jest napisany dla starszej wersji raspi-config i mówi, aby przejść do "Opcji zaawansowanych", które zostały zastąpione przez "Interfejsy"

Po włączeniu I2C będziesz musiał zrestartować.

Teraz czas przetestować HAT

cd WeatherHAT

sudo python cycle.py

Jeśli wszystko poszło dobrze, powinieneś zobaczyć wszystkie funkcje i tęczę.

Ctrl-z zatrzyma program.

*Uwagi specjalne: Dowiedziałem się, że czasy działania Raspberry PI 3 są różne i tęcza może nie działać poprawnie. JEŚLI masz ten problem, to jak go naprawić.

github.com/CyntechUK/WeatherHAT/issues/3

guides.cyntech.co.uk/raspberry-pi/assemblin…

Gdy wszystko działa, możemy przejść do następnego kroku.

Aktualizacja: (6 października 2020 r.) To repozytorium zawiera teraz mój skrypt getWeather.py, to świetna wiadomość, ponieważ zainteresowanie ponownie się pojawiło i na pewno wydarzą się nowe rzeczy.

Krok 3: Instalacja Weather-api i skryptu GetWeather

Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script
Instalowanie Weather-api i GetWeather Script

Wysłałem więc prośbę PULL do CyntechUK o mój skrypt - mam nadzieję, że zaakceptują prośbę i możesz pominąć pobieranie mojego repozytorium. (mogą nie chcieć dołączyć mojego kodu)

(6 października 2020 r.) Żądanie PULL zostało zatwierdzone, mój skrypt getWeather jest teraz zawarty w repozytorium Weatherhat.

*********Możesz nadal korzystać z tych informacji, jeśli chcesz, jednak getWeather.py został dołączony do repozytorium prognoz pogody ******************** *****************

Moje repozytorium można znaleźć tutaj:

github.com/kd8bxp/WeatherHAT/tree/getWeath…

a mój skrypt nazywa się getWeather.py

JEŚLI zaakceptują żądanie ściągnięcia, będziesz już mieć ten skrypt - jeśli nie, będziesz musiał sklonować repozytorium.

w twoim katalogu domowym (/home/pi) wpisz:

git klon https://github.com/kd8bxp/WeatherHAT.git getWeather

to sklonuje repozytorium do katalogu o nazwie getWeather, następnie musimy pobrać gałąź getWeather.

cd getWeather

git kasa getWeather

**********************************************************************

Będziesz musiał włożyć cd do katalogu weatherHAT, który został sklonowany wcześniej i

Musimy edytować skrypt getWeather.py dla Twojej lokalizacji.

nano getWeather.py

Powinieneś zobaczyć linię zaczynającą się od

lokalizacja i kończy się na lookup(45042) - To jest mój kod pocztowy, odkryłem, że nie działa tak dobrze, jak myślisz

a zakomentowana linia tuż nad nią działa lepiej z nazwą miasta. To jest ten, którego prawdopodobnie chcesz użyć. Więc skomentuj linię kodu pocztowego (#) i odkomentuj i zmień nazwę swojego miasta.

*********** STARA INFORMACJA YAHOO - Nie jest już wymagana ***********

Aby to zadziałało, musimy zainstalować jeszcze jedną bibliotekę, weather-api, która jest opakowaniem interfejsu Yahoo weather API.

pypi.python.org/pypi/weather-api/0.0.5

Instalacja jest łatwa -

pip zainstaluj weather-api

***********************************************************************************

Teraz możemy uruchomić skrypt:

sudo python getWeather.py &

& pozwoli skryptowi działać w tle. Skrypt śpi około 5 minut, a następnie sprawdza Yahoo Weather, czy coś się zmieniło - jeśli tak, aktualizuje wyświetlacz. Czas 5 minut można zmienić, znajduje się na dole skryptu.

sen (60*5)

Możesz skonfigurować zadanie crontab (pamiętaj, że musi być uruchomione jako root), które uruchomi skrypt przy każdym uruchomieniu.

posługiwać się:

sudo crontab -e

wejść:

@reboot python /home/pi/weatherHAT/getWeather.py

Myślę, że to powinno działać - nie skonfigurowałem jeszcze crona w moim systemie.

To prawie tyle -

Jak już wspomniałem, jest to jeden z moich pierwszych programów Pythona i jestem pewien, że ktoś, kto wie więcej, zobaczy lepszy sposób na zrobienie tego.

Zrobiłem tylko ograniczone testy na tym - widziałem do tej pory "Śnieg", "Deszcz" i "Burza", Są pewne warunki, z którymi jeszcze nie wiem, jak sobie poradzić - pomysły są mile widziane.

Krok 4: Zaktualizowane informacje dla: Openweathermap API

We wrześniu 2020 zaktualizowałem skrypt, aby korzystał z API

UWAGA: To była dla mnie „szybka” poprawka i ograniczona testowanie – (przez ostatnie kilka dni było zachmurzenie i wszystko, co widzę, to chmura i deszcz) – Chociaż wydaje mi się, że złapałem wszystkie warunki, które są łatwe do wyświetlacz, możliwe, że kilka przegapiłem z powodu "szybkiego" wykonania tej poprawki. Biorąc to pod uwagę, jeśli uważasz, że jest problem, zostaw komentarz, a czas pozwoli, zajmę się tym - lub spróbuj wskazać ci właściwy kierunek. *

Musisz zarejestrować się w celu uzyskania klucza API, korzystając z powyższego linku, kiedy edytujesz skrypt, aby umieścić swoje miasto, zobaczysz miejsce na klucz. Po prostu skopiuj i wklej i powinieneś być dobry.

Inne notatki:

Ten skrypt używa teraz informacji „Current weather data API” o tym interfejsie API, które można znaleźć tutaj:

openweathermap.org/current Należy zauważyć, że możesz użyć miasta, stanu i kraju.

IE: miasto „Dayton” staje się „Dayton, OH, US” zauważ, że kody stanu i kraju są pisane wielkimi literami, jest to wymagane. API mówi, że może używać tylko "Dayton, OH", ale podczas wykonywania tego skryptu pojawiły się błędy - a ponieważ była to szybka naprawa, nie zastanawiałem się, dlaczego. WIĘC polecam używać "miasto, województwo, kraj"

JEŚLI z jakiegoś powodu nie uzyskasz dobrych informacji przy użyciu nazwy miasta, możesz również wyszukać identyfikator miasta lub użyć szerokości i długości geograficznej lub kodu pocztowego. W każdym przypadku adres URL będzie musiał zostać zmieniony, jeśli klikniesz w link po prawej stronie witryny API, wyświetli się przykład tego, jaki powinien być adres URL.

Musisz również zmienić adres URL w skrypcie.

Jeszcze więcej notatek: 3.10.2020

@Itsmedoofer zwrócił uwagę, że muszą zainstalować biblioteki python-requests wraz z nową aktualizacją. Nie jestem pewien, czy tego potrzebowałem (możliwe, że zainstalowałem go lata temu lub różne wersje pythona domyślnie instalują różne biblioteki). Więc jeśli skrypt wyświetla błąd dotyczący żądań Pythona, można to łatwo naprawić.

wpisz to polecenie w CLI: python -m pip install request

i powinieneś być dobry.

Mam nadzieję, że od tego czasu była to szybka naprawa i może pewnego dnia pozwoli mi to trochę lepiej posprzątać.

Aktualizacja (6 października 2020 r.) Żądanie ściągnięcia github zostało zaakceptowane, oryginalne oryginalne repozytorium CyntechUK zawiera teraz ten skrypt. https://github.com/CyntechUK/WeatherHAT Użytkownik Boeerb ma kilka pomysłów na wyświetlanie niektórych warunków, które obecnie nie są wyświetlane, a także kilka innych pomysłów na wykorzystanie. Więc miej oko na to repozytorium. I miejmy nadzieję, że coś się wydarzy.

Aktualizacja: (8 października 2020 r.) Open Weather Map zawiera krótki samouczek dotyczący konfigurowania i korzystania z interfejsu API, https://openweathermap.org/appid Dobre miejsce na rozpoczęcie.

Zalecana: