Sadržaj:
- Korak 1: Postavite SD karticu i Raspberry PI
- Korak 2: Postavite WeatherHAT knjižnice
- Korak 3: Instaliranje Weather-api i GetWeather Script
- Korak 4: Ažurirane informacije za: Openweathermap API
Video: Jednostavan prikaz vremena pomoću Raspberry PI i Cyntech WeatherHAT: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
* Godine 2019. Yahoo je promijenio API, i to je prestalo raditi. Nisam bio svjestan promjene. U rujnu 2020. ovaj je projekt ažuriran kako bi koristio API OPENWEATHERMAP. Pogledajte dolje ažurirani odjeljak, međutim, ostatak ovih informacija je ipak dobar. Hvala što ste pogledali i hvala što ste me obavijestili o promjeni Yahooa. *
Nedavno sam kupio Cyntech WeatherHAT, ali sam bio pomalo razočaran nedostatkom softvera za njega.
Čini se da je HAT koji je sam dobro izgrađen, sa 6 plavih LED dioda u obliku kapi kiše, 6 narančastih LED u obliku groma, 6 bijelih LED u obliku oblaka. 1 (ono što vjerujem je RGB LED) za SUN - prikazuje narančasto (pa možda griješim što je RGB). I 6 LED dioda WS2812 (ovo su RGB:-))
Cyntech ima vodič za početak, pa čak i to je dobro - jednostavno je instalirati i koristiti HAT.
Pa sam bio iznenađen što zapravo nisam vidio nikakav softver (osim demo koji je pružio Cyntech). Jednako sam se iznenadio što nisam našao nikoga tko ovo zaista koristi - Možda ljudi žele "fensi" zaslon s temperaturama i sve te vrste informacija. Za mene je lijepo samo pogledati nekoliko LED dioda i znati - pada kiša, ili grmljavina, ili oblačno - u tom trenutku, ako mi zatreba više informacija, mogu pogledati svoj tablet ili telefon.:-)
Još malo - ovo je stvarno prvi put da koristim python, nikako nisam u tome dobar. I siguran sam da će mi ljudi koji stvarno poznaju python reći bolji način za to.
Započnimo:
Trebamo SD karticu (najmanje 8 GB)
Raspberry PI (koristim Zero W) mora imati pristup internetu.
i trebamo Cyntech weatherHAT
Ako koristite Raspberry PI Zero W, morat ćete također moći lemiti set zaglavlja na ploču.
Inače su potrebne vještine sposobnost korištenja softvera i postavljanje SD kartice.
Korak 1: Postavite SD karticu i Raspberry PI
Morat ćete preuzeti najnoviji Raspbian (u vrijeme ovog uputstva, to je Raspbian Stretch ožujak 2018. (13.03.2018.))
www.raspberrypi.org/downloads/raspbian/
Koristio sam izdanje za stolna računala, čak i ako ja pokrećem svoje postavljanje bez glave, a većinu stvari radim iz CLI (sučelje naredbenog retka) preko ssh -a.
Slijedite vodič za postavljanje koji se nalazi ovdje:
www.raspberrypi.org/documentation/installa…
Nakon što Etcher završi, uklonite SD karticu i ponovno je umetnite u računalo.
* Ovaj korak doista trebate učiniti samo ako namjeravate instalirati bez glave
Moramo postaviti SSH i WIFI prije nego što upotrijebimo SD karticu u Raspberry PI. Na BOOT particiji kartice stvorite datoteku pod nazivom "ssh" bez navodnika. ništa ne mora biti u toj datoteci. Kad se PI podigne, vidjet će tu datoteku i uključiti SSH.
Također moramo stvoriti datoteku pod nazivom "wpa_supplicant.conf". Moramo urediti ovu datoteku s vašim WiFi postavkama.
To bi trebalo izgledati otprilike ovako:
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev
update_config = 1 network = {ssid = "yourwifiSSID" psk = "yourwifipassword" scan_ssid = 1}
* To doista trebate učiniti samo ako namjeravate instalirati bez glave
Nakon što to učinite, sigurno uklonite SD karticu i umetnite Raspberry PI (provjerite da nema napajanja na PI).
Priključite weatherHAT i uključite Raspberry PI.
Korak 2: Postavite WeatherHAT knjižnice
Za ovaj korak slijedit ćemo pronađeni Vodič za početak rada
guides.cyntech.co.uk/weatherhat/getting-sta…
AKO instalirate bez glave, pošaljite ssh [email protected]
Ako nemate ssh klijent - PUTTY je dobar.
Ako koristite tipkovnicu i monitor - gornji vodič je dobro slijediti, pokrenut će vas na radnoj površini sa grafičkim sučeljem.
Važni koraci ovdje su instaliranje knjižnice WS281x i knjižnica WeatherHAT, zajedno sa ovisnostima za svaku od njih.
sudo apt-get ažuriranje
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 install
Sada moramo provjeriti je li I2C uključen.
sudo raspi-config
Vodič je napisan za stariju verziju raspi-config i kaže da ide na "Napredne opcije" koje je zamijenjeno vjerujem "Sučelja"
Nakon što uključite I2C, morat ćete ponovno pokrenuti sustav.
Sada je vrijeme da isprobate HAT
cd WeatherHAT
sudo python cycle.py
Ako je sve prošlo dobro, trebali biste vidjeti sve značajke i dugu.
ctrl-z će zaustaviti program.
*Posebne napomene: Naučio sam da su vremena u malini PI 3 različita i da duga možda neće raditi ispravno. AKO imate ovaj problem, evo kako ga riješiti.
github.com/CyntechUK/WeatherHAT/issues/3
guides.cyntech.co.uk/raspberry-pi/assemblin…
Kad sve funkcionira, možemo nastaviti na sljedeći korak.
Ažuriranje: (6. listopada 2020.) Ovo spremište sada sadrži moju skriptu getWeather.py, ovo je sjajna vijest jer se interes ponovno razbuktao, a nove stvari će se dogoditi.
Korak 3: Instaliranje Weather-api i GetWeather Script
Dakle, postavio sam PULL zahtjev CyntechUK -u za moju skriptu - nadam se da će prihvatiti zahtjev, a vi možete preskočiti preuzimanje mog spremišta. (možda ti neće htjeti dodati moj kod)
(6. listopada 2020.) Zahtjev PULL je odobren, moja skripta getWeather sada je uključena u spremište Weatherhat.
********* Ako želite, još uvijek možete koristiti ove podatke, međutim getWeather.py je sada uključen u spremište weatherhat ******************* *****************
Moje spremište možete pronaći ovdje:
github.com/kd8bxp/WeatherHAT/tree/getWeath…
a moja skripta se zove getWeather.py
AKO prihvate zahtjev za povlačenje, već ćete imati ovu skriptu - ako ne, morat ćete klonirati spremište.
u svoj kućni imenik (/home/pi) upišite:
git clone https://github.com/kd8bxp/WeatherHAT.git getWeather
ovo će klonirati spremište u direktorij pod nazivom getWeather, zatim moramo provjeriti granu getWeather.
cd getWeather
git checkout getWeather
**********************************************************************
Morat ćete cd u direktorij weatherHAT koji je bio kloniran ranije i
Moramo urediti skriptu getWeather.py za vašu lokaciju.
nano getWeather.py
Trebali biste vidjeti redak koji počinje s
lokacija i završava pretraživanjem (45042) - Ovo je moj poštanski broj, otkrio sam da ne radi onako dobro kako biste mislili
a linija iznad nje koja je komentirana bolje radi s imenom grada. To je onaj koji vjerojatno želite koristiti. Zato komentirajte redak poštanskog broja (#) i uklonite komentar te promijenite naziv grada.
*********** STARI YAHOO PODACI - Više nisu potrebni ***********
Moramo instalirati još jednu biblioteku da bi ovo funkcioniralo, weather-api koji je omot za Yahoo weather API.
pypi.python.org/pypi/weather-api/0.0.5
Instalacija je jednostavna -
pip install weather-api
***********************************************************************************
Sada možemo pokrenuti skriptu:
sudo python getWeather.py &
& Će omogućiti skriptu da radi u pozadini. Skripta spava oko 5 minuta, a zatim provjerava Yahoo Weather je li se nešto promijenilo - ako je tako, ažurira zaslon. Vrijeme od 5 minuta se može promijeniti, nalazi se pri dnu skripte.
spavanje (60 * 5)
Mogli biste postaviti crontab posao (zapamtite da se ovo mora pokrenuti kao root) koji će pokrenuti skriptu pri svakom pokretanju.
koristiti:
sudo crontab -e
Unesi:
@reboot python /home/pi/weatherHAT/getWeather.py
Mislim da bi to trebalo funkcionirati - još nisam postavio cron na svom sustavu.
To je otprilike to -
Kao što sam rekao, ovo je jedan od mojih prvih programa za python i siguran sam da će netko tko zna više vidjeti bolji način za to.
Napravio sam samo ograničeno testiranje na ovome - do sada sam vidio kako rade "Snijeg", "Kiša" i "Grmljavina", Postoje neki uvjeti za koje još nisam siguran kako se nositi - pozdravljam ideje.
Korak 4: Ažurirane informacije za: Openweathermap API
U rujnu 2020. godine ažurirao sam skriptu za upotrebu https://openweathermap.org API.
NAPOMENA: Ovo je za mene bilo "brzo" rješenje i ograničeno testirano - (Bilo je oblačno posljednjih nekoliko dana, a vidim samo prikaz oblaka i kiše) - Iako vjerujem da sam uhvatio sve uvjete koje je lako zaslon, moguće je da sam propustio par zbog toga kako je ovo "brzo" učinjeno. S obzirom na to, ako mislite da postoji problem, ostavite komentar i dopustite vrijeme da to razmotrim - ili vas pokušam usmjeriti u pravom smjeru. *
Morat ćete se prijaviti za API ključ pomoću gornje veze. Kad uredite skriptu kako biste postavili svoj grad, vidjet ćete mjesto za ključ. Samo ga kopirajte i zalijepite i trebali biste biti dobri.
Ostale napomene:
Ova skripta sada koristi "Trenutni API vremenskih podataka". Podaci o tom API -ju mogu se pronaći ovdje:
openweathermap.org/current Treba napomenuti da možete koristiti grad, državu i državu.
IE: grad "Dayton" postaje "Dayton, OH, US". Primijetite kako su i država i pozivni brojevi velikih slova, to je potrebno. API kaže da može koristiti samo "Dayton, OH", ali dobio sam pogreške iz skripte kad sam to učinio - i budući da je ovo bilo brzo rješenje, nisam provjerio zašto. Dakle, preporučujem upotrebu "grad, država, država"
AKO iz nekog razloga ne dobijete dobre informacije pomoću naziva grada, možete potražiti i gradski ID ili upotrijebiti zemljopisnu širinu i dužinu ili poštanski broj. U svakom slučaju URL će se morati promijeniti, ako kliknete vezu s desne strane web stranice API -ja, to će dati primjer onog što bi trebao biti URL.
Morate promijeniti i URL u skripti.
Još više napomena: 3. listopada 2020
@Itsmedoofer je istaknuo da s novim ažuriranjem moraju instalirati python-zahtjeve knjižnice. Nisam siguran da mi je ovo trebalo (moguće je i da sam ga instalirao prije mnogo godina ili da su različite verzije pythona prema zadanim postavkama instalirale različite knjižnice). Dakle, ako skripta daje pogrešku u vezi s python-zahtjevima, jednostavno ju je popraviti.
upišite ovu naredbu u CLI: python -m pip install requests
i trebao bi biti dobar.
Nadam se da je to od tada, ovo je bilo brzo rješenje, a možda ću jednog dana dopustiti da mogu poraditi na tome da ga malo bolje očistim.
Ažuriranje (6. listopada 2020.) Zahtjev za povlačenje github -a je prihvaćen, originalno spremište CyntechUK sada uključuje ovu skriptu. https://github.com/CyntechUK/WeatherHAT Korisnik Boeerb ima neke ideje o tome kako prikazati neke uvjete koji se trenutno ne prikazuju, kao i neke druge ideje za upotrebu. Zato pripazite na to spremište. I nadamo se da će se stvari dogoditi.
Ažuriranje: (8. listopada 2020.) Open Weather Map ima kratki vodič o postavljanju i korištenju API -ja, https://openweathermap.org/appid Dobro mjesto za početak.
Preporučeni:
Widget za mrežni prikaz vremena pomoću ESP8266: 4 koraka
Widget za prikaz vremenskih uvjeta na mreži pomoću ESP8266: Prije nekoliko tjedana naučili smo kako izgraditi mrežni sustav za prikaz vremena koji je dobivao vremenske informacije za određeni grad i prikazivao ih na OLED modulu. Za taj projekt koristili smo Arduino Nano 33 IoT ploču, koja je nova ploča koja
Internet sat: Prikaz datuma i vremena s OLED -om pomoću ESP8266 NodeMCU s NTP protokolom: 6 koraka
Internet sat: Prikažite datum i vrijeme s OLED -om koristeći ESP8266 NodeMCU s NTP protokolom: Zdravo dečki, u ovim uputama napravit ćemo internetski sat koji će dobivati vrijeme s interneta pa za ovaj projekt neće trebati nikakav RTC za pokretanje, samo će mu trebati radna internetska veza A za ovaj projekt potreban vam je esp8266 koji će imati
Prikaz vlaka i vremena u Velikoj Britaniji: 5 koraka
Prikaz vlaka i vremena u Velikoj Britaniji: Ovo uputstvo je za polaske vlakova u Velikoj Britaniji i prikaz vremena. Koristila je bazu podataka National Rail OpenLDBWS za dobivanje informacija o polasku vlaka u stvarnom vremenu za određenu lokalnu željezničku postaju i njihovo prikazivanje. Koristi otvoreni vremenski okvir
Prikaz datuma, vremena i temperature pomoću XinaBox -a: 8 koraka
Prikaz datuma, vremena i temperature pomoću XinaBox -a: Cool OLED zaslon koji prikazuje datum, vrijeme i temperaturu u Celzijusima i Fahrenheitima pomoću Xinabox x čipova na temelju ESP8266
Arduino 3-u-1 prikaz vremena i vremena: 11 koraka
Arduino 3-u-1 prikaz vremena i vremena: Volim PIC mikrokontrolere i volim programiranje na asemblerskom jeziku. Zapravo, u posljednjih nekoliko godina na svojoj sam web stranici objavio oko 40 projekata na temelju te kombinacije. Nedavno sam naručivao neke dijelove iz jednog od mojih omiljenih američkih v