Spisu treści:
- Krok 1: Ustaw kartę SD i Raspberry PI
- Krok 2: Skonfiguruj biblioteki WeatherHAT
- Krok 3: Instalacja Weather-api i skryptu GetWeather
- Krok 4: Zaktualizowane informacje dla: Openweathermap API
Wideo: Prosty wyświetlacz pogody za pomocą Raspberry PI i Cyntech WeatherHAT: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
* 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
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
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
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:
System monitorowania pogody za pomocą czujnika Raspberry Pi3 i DHT11: 4 kroki
System monitorowania pogody za pomocą czujnika Raspberry Pi3 i DHT11: W tym samouczku pokażę ci, jak podłączyć DHT11 do Raspberry Pi i wyprowadzić odczyty wilgotności i temperatury na wyświetlacz LCD. Czujnik temperatury i wilgotności DHT11 to ładny mały moduł który zapewnia cyfrową temperaturę i wilgotność
Widżet wyświetlania pogody online za pomocą ESP8266: 4 kroki
Widżet wyświetlania pogody online za pomocą ESP8266: Kilka tygodni temu dowiedzieliśmy się, jak zbudować system wyświetlania pogody online, który uzyskiwał informacje o pogodzie dla konkretnego miasta i wyświetlał je na module OLED. Do tego projektu użyliśmy płytki Arduino Nano 33 IoT, która jest nową płytą t
Wyświetlacz LCD I2C / IIC - Konwertuj wyświetlacz LCD SPI na wyświetlacz LCD I2C: 5 kroków
Wyświetlacz LCD I2C / IIC | Konwertuj wyświetlacz LCD SPI na wyświetlacz LCD I2C: używanie wyświetlacza LCD spi wymaga zbyt wielu połączeń, co jest naprawdę trudne, więc znalazłem moduł, który może przekonwertować wyświetlacz LCD i2c na wyświetlacz LCD spi, więc zaczynamy
Wyświetlacz e-papierowy monitora pogody IoT - ESP8266 podłączony do Internetu: 7 kroków
Wyświetlacz e-papierowy monitora pogody IoT | Połączony z Internetem ESP8266: Wyświetlacz E-Paper wyświetli informacje o pogodzie, zsynchronizowane z OpenWeatherMap API (przez Wi-Fi). Sercem projektu jest ESP8266/32.Hej, co słychać chłopaki? Akarsh tutaj z CETech.Dzisiaj zrobimy projekt, który jest monitorem pogody, który
Jak zrobić miniaturowy wyświetlacz stanu pogody: 4 kroki
Jak zrobić miniaturowy wyświetlacz stanu pogody: O projekcieMikrokontroler może być jednocześnie zabawą i rozrywką, dodaj trochę łączności z Internetem dla prawdziwego Internetu rzeczy! Pozwolę sobie pokazać, jak udało mi się stworzyć mini wyświetlacz pogodowy za pomocą wyświetlacza matrycowego 8x8 i