Turinys:

Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“: 4 žingsniai
Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“: 4 žingsniai

Video: Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“: 4 žingsniai

Video: Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“: 4 žingsniai
Video: Автоматический календарь-планировщик смен в Excel 2024, Rugsėjis
Anonim
Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“
Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“
Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“
Paprastas oro rodymas naudojant „Raspberry PI“ir „Cyntech WeatherHAT“

* 2019 m. „Yahoo“pakeitė savo API ir tai nustojo veikti. Aš nežinojau apie pasikeitimą. 2020 m. Rugsėjo mėn. Šis projektas buvo atnaujintas, kad būtų galima naudoti „OPENWEATHERMAP“API. Žr. Toliau pateiktą atnaujintą skyrių, tačiau visa kita informacija vis dar yra gera. Dėkojame, kad žiūrite, ir ačiū, kad pranešėte man apie „Yahoo“pakeitimą. *

Neseniai įsigijau „Cyntech WeatherHAT“, tačiau buvau šiek tiek nusivylęs programinės įrangos trūkumu.

Atrodo, kad pati skrybėlė yra gerai sukonstruota: 6 mėlyni šviesos diodai lietaus lašų pavidalu, 6 oranžiniai šviesos diodai griaustinio pavidalo pavidalu, 6 balti šviesos diodai debesies pavidalu. 1 (manau, kad tai yra RGB šviesos diodas) SUN - jis rodomas oranžine spalva (todėl galiu klysti, nes tai RGB). Ir 6 WS2812 šviesos diodai (tai RGB:-))

„Cyntech“turi darbo pradžios vadovą ir netgi tai yra gerai - jį lengva įdiegti ir naudoti HAT.

Taigi aš tiesiog nustebau, kad iš tikrųjų nemačiau jokios programinės įrangos (išskyrus „Cyntech“pateiktą demonstracinę versiją). Buvau taip pat nustebęs, kad neradau, kad kas nors iš tikrųjų tuo naudotųsi - galbūt žmonės nori „išgalvoto“ekrano su temperatūra ir visa tokia informacija. Man malonu tiesiog pažvelgti į kelis šviesos diodus ir žinoti - lietus, perkūnija arba debesuota. Tuo metu, jei man reikia daugiau informacijos, galiu pažvelgti į planšetinį kompiuterį ar telefoną.:-)

Dar šiek tiek - tai tikrai pirmas kartas, kai naudojuosi „python“, man tai niekaip nesiseka. Ir esu tikras, kad žmonės, kurie tikrai žino python, pasakys man geresnį būdą tai padaryti.

Pradėkime:

Mums reikia SD kortelės (mažiausiai 8 GB)

„Raspberry PI“(aš naudoju „Zero W“) turi turėti prieigą prie interneto.

ir mums reikia „Cyntech“orųHAT

Jei naudojate „Raspberry PI Zero W“, prie plokštės taip pat turite sugebėti lituoti antraščių rinkinį.

Priešingu atveju reikia įgūdžių naudoti programinę įrangą ir nustatyti SD kortelę.

1 veiksmas: nustatykite SD kortelę ir Raspberry PI

Nustatykite SD kortelę ir Raspberry PI
Nustatykite SD kortelę ir Raspberry PI
Nustatykite SD kortelę ir Raspberry PI
Nustatykite SD kortelę ir Raspberry PI

Turėsite atsisiųsti naujausią „Raspbian“(šios instrukcijos metu, tai yra „Raspbian Stretch 2018 March“(2018-03-13))

www.raspberrypi.org/downloads/raspbian/

Aš naudoju darbalaukio leidimą, net ir aš savo sąranką atlieku be galvos, o daugumą dalykų darau iš CLI (komandinės eilutės sąsajos) per ssh.

Sekite čia pateiktą sąrankos vadovą:

www.raspberrypi.org/documentation/installa…

Baigę „Etcher“, išimkite SD kortelę ir vėl įdėkite ją į kompiuterį.

* Šį žingsnį iš tikrųjų turite atlikti tik tada, jei planuojate diegti be galvos

Prieš naudodami SD kortelę „Raspberry PI“, turime nustatyti SSH ir WIFI. Kortelės BOOT skaidinyje sukurkite failą pavadinimu „ssh“be kabučių. tame faile nieko neturi būti. Kai PI paleidžiamas, jis pamatys tą failą ir įjungs SSH.

Taip pat turime sukurti failą pavadinimu „wpa_supplicant.conf“. Turime redaguoti šį failą naudodami „Wi -Fi“nustatymus.

Tai turėtų atrodyti maždaug taip:

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

update_config = 1 tinklas = {ssid = "yourwifiSSID" psk = "yourwifipassword" scan_ssid = 1}

* Tai tikrai reikia padaryti tik tuo atveju, jei planuojate diegti be galvos

Kai tai bus padaryta, saugiai išimkite SD kortelę ir įdėkite į Raspberry PI (įsitikinkite, kad PI nėra įjungta).

Prijunkite „WeatherHAT“ir įjunkite „Raspberry PI“.

2 veiksmas: nustatykite „WeatherHAT“bibliotekas

Nustatykite „WeatherHAT“bibliotekas
Nustatykite „WeatherHAT“bibliotekas
Nustatykite „WeatherHAT“bibliotekas
Nustatykite „WeatherHAT“bibliotekas

Atlikdami šį veiksmą, vadovaukimės rastu darbo pradžios vadovu

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

Jei diegiate be galvos, norėsite ssh [email protected]

Jei neturite ssh kliento - PUTTY yra geras.

Jei naudojate klaviatūrą ir monitorių - aukščiau pateiktas vadovas yra tinkamas, jis pradedamas nuo GUI darbalaukio.

Svarbūs veiksmai yra įdiegti „WS281x“biblioteką ir „WeatherHAT“bibliotekas kartu su kiekvienos jų priklausomybe.

sudo apt-get atnaujinimas

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 klonas https://github.com/ jgarff/rpi_ws281x.git> cd rpi_ws281x scons cd python sudo python setup.py įdiegti

Dabar turime įsitikinti, kad I2C įjungtas.

sudo raspi-config

Vadovas parašytas senesnei raspi-config versijai ir sako, kad eikite į „Išplėstinės parinktys“, kuri buvo pakeista „Manau, kad„ sąsajos “

Kai įjungsite I2C, turėsite iš naujo paleisti.

Dabar atėjo laikas išbandyti skrybėlę

cd WeatherHAT

sudo python cycle.py

Jei viskas klostėsi gerai, turėtumėte pamatyti visas funkcijas ir vaivorykštę.

ctrl-z sustabdys programą.

*Specialios pastabos: sužinojau, kad „Raspberry PI 3“laikas skiriasi ir vaivorykštė gali veikti netinkamai. Jei turite šią problemą, tai kaip ją išspręsti.

github.com/CyntechUK/WeatherHAT/issues/3

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

Kai viskas veiks, galime pereiti prie kito žingsnio.

Atnaujinimas: (2020 m. Spalio 6 d.) Šioje saugykloje dabar yra mano „getWeather.py“scenarijus, tai puiki žinia, nes susidomėjimas vėl sužadintas ir naujų dalykų būtinai įvyks.

3 žingsnis: „Weather-api“ir „GetWeather Script“diegimas

„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas
„Weather-api“ir „GetWeather Script“diegimas

Taigi, aš pateikiau „PULL“užklausą „CyntechUK“dėl savo scenarijaus - tikiuosi, kad jie priims užklausą, ir jūs galite praleisti mano saugyklos atsisiuntimą. (jie gali nenorėti įtraukti mano kodo)

(2020 m. Spalio 6 d.) PULL užklausa buvo patvirtinta, mano „getWeather“scenarijus dabar įtrauktas į „Weatherhat“saugyklą.

********* Šią informaciją vis tiek galite naudoti, jei norite, tačiau „getWeather.py“dabar buvo įtraukta į „Weatherhat“saugyklą ******************* *****************

Mano saugyklą rasite čia:

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

o mano scenarijus vadinamas getWeather.py

Jei jie priima ištraukimo užklausą, jūs jau turite šį scenarijų - jei ne, turėsite klonuoti saugyklą.

savo namų kataloge (/home/pi) įveskite:

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

tai klonuos saugyklą į katalogą pavadinimu getWeather, toliau turime patikrinti „getWeather“šaką.

cd getWeather

git checkout getWeather

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

Turėsite įrašyti į „WeatherHAT“katalogą, kuris buvo klonuotas anksčiau ir

Turime redaguoti jūsų vietos scenarijų getWeather.py.

nano getWeather.py

Turėtumėte pamatyti eilutę, kuri prasideda

vieta ir baigiasi paieška (45042) - tai mano pašto kodas, pastebėjau, kad jis neveikia taip gerai, kaip jūs manote

o komentuojama eilutė tiesiai virš jos geriau veikia su miesto pavadinimu. Tai yra tas, kurį tikriausiai norite naudoti. Taigi komentuokite pašto kodo eilutę (#), nekomentuokite ir pakeiskite miesto pavadinimą.

*********** SENA YAHOO INFORMACIJA - Nereikia ilgiau ***********

Kad tai veiktų, turime įdiegti dar vieną biblioteką-„weather-api“, kuri yra „Yahoo“orų API paketas.

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

Įdiegti paprasta -

pip įdiegti weather-api

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

Dabar galime paleisti scenarijų:

sudo python getWeather.py &

& Leis scenarijui veikti fone. Scenarijus miega apie 5 minutes, o tada tikrina „Yahoo Weather“, ar kas nors pasikeitė - jei taip, jis atnaujina ekraną. 5 minučių laiką galima pakeisti, jis yra beveik scenarijaus apačioje.

miegoti (60 * 5)

Galite nustatyti „crontab“užduotį (atminkite, kad ją reikia paleisti kaip root), kuri paleis scenarijų kiekvieną kartą paleidžiant.

naudoti:

sudo crontab -e

įveskite:

@iš naujo paleiskite „python“/home/pi/weatherHAT/getWeather.py

Manau, kad tai turėtų veikti - dar nesu įdiegęs „cron“savo sistemoje.

Tai beveik tiek -

Kaip jau minėjau, tai yra viena iš mano pirmųjų „python“programų, ir esu tikras, kad daugiau žinantys pamatys geresnį būdą tai padaryti.

Aš tai išbandžiau tik ribotai - iki šiol mačiau, kaip veikia „Sniegas“, „Lietus“ir „Perkūnija“, Yra tam tikrų sąlygų, kurių dar nesu tikras, kaip elgtis - sveikinu idėjas.

4 veiksmas: atnaujinta informacija: „Openweathermap“API

2020 m. Rugsėjo mėn. Atnaujinau scenarijų, kad galėčiau naudoti https://openweathermap.org API.

PASTABA: man tai buvo „greitas“sprendimas ir išbandytas ribotai - (pastarosiomis dienomis buvo apsiniaukę, ir aš matau tik debesų ir lietaus ekraną) - Nors manau, kad susidūriau su visomis lengvai suprantamomis sąlygomis ekranas, gali būti, kad praleidau porą dėl to, kaip „greitai“buvo atliktas šis pataisymas. Tai sakant, jei manote, kad yra problema, palikite komentarą ir suteikite laiko, kurį išnagrinėsiu, arba pabandysiu nukreipti jus teisinga linkme. *

Turėsite prisiregistruoti gauti API raktą naudodami aukščiau esančią nuorodą. Kai redaguosite scenarijų, kad nurodytumėte savo miestą, pamatysite rakto vietą. Tiesiog nukopijuokite ir įklijuokite, ir jums turėtų būti gerai.

Kitos pastabos:

Šiame scenarijuje dabar naudojama „Dabartinių orų duomenų API“informacija apie tą API: čia

openweathermap.org/current Vienas dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad galite naudoti miestą, valstiją ir šalį.

IE: miestas „Deitonas“tampa „Deitonas, OH, JAV“, pastebėkite, kad valstybės ir šalies kodai yra didžiosios raidės, tai būtina. API sako, kad ji gali naudoti tik „Dayton, OH“, bet kai tai padariau, iš scenarijaus gavau klaidų - ir kadangi tai buvo greitas sprendimas, aš nenagrinėjau, kodėl. Taigi rekomenduoju naudoti „miestas, valstija, šalis“

JEI dėl kokių nors priežasčių negaunate geros informacijos naudodami miesto pavadinimą, taip pat galite ieškoti miesto ID arba naudoti platumos ir ilgumos arba pašto kodą. Kiekvienu atveju URL reikės pakeisti, jei spustelėsite nuorodą, esančią dešinėje API svetainės pusėje, ji parodys, koks turėtų būti URL.

Taip pat turite pakeisti scenarijaus URL.

Dar daugiau pastabų: 2020 m. Spalio 3 d

@Itsmedoofer nurodė, kad jiems reikia įdiegti bibliotekos „python“užklausas su naujuoju atnaujinimu. Nesu tikras, ar man to reikėjo (taip pat įmanoma, kad jį įdiegiau prieš daugelį metų arba skirtingos „python“versijos pagal numatytuosius nustatymus įdiegia skirtingas bibliotekas). Taigi, jei scenarijus pateikia klaidą dėl „python“užklausų, ją lengva ištaisyti.

įveskite šią komandą į CLI: python -m pip install request

ir tu turėtum būti geras.

Tikimės, kad tai padėjo, nes tai buvo greitas sprendimas ir galbūt vieną dieną leisiu šiek tiek geriau jį išvalyti.

Atnaujinimas (2020 m. Spalio 6 d.) „Github“traukimo užklausa buvo priimta, į pradinę „CyntechUK“saugyklą dabar įtrauktas šis scenarijus. https://github.com/CyntechUK/WeatherHAT Vartotojas „Boeerb“turi keletą idėjų, kaip parodyti kai kurias šiuo metu nerodomas sąlygas, taip pat kai kurias kitas naudojimo idėjas. Taigi stebėkite tą saugyklą. Ir tikiuosi, kad viskas įvyks.

Atnaujinimas: (2020 m. Spalio 8 d.) „Open Weather Map“yra trumpa API sąrankos ir naudojimo pamoka, https://openweathermap.org/appid Gera vieta pradėti.

Rekomenduojamas: