Innholdsfortegnelse:

Enkel værvisning ved bruk av Raspberry PI og Cyntech WeatherHAT: 4 trinn
Enkel værvisning ved bruk av Raspberry PI og Cyntech WeatherHAT: 4 trinn

Video: Enkel værvisning ved bruk av Raspberry PI og Cyntech WeatherHAT: 4 trinn

Video: Enkel værvisning ved bruk av Raspberry PI og Cyntech WeatherHAT: 4 trinn
Video: Lemfo K55 Smartwatch - Da Fit App - Android & iOS - IP68 Connected Watch - Unboxing 2024, Juni
Anonim
Enkel værvisning ved hjelp av Raspberry PI og Cyntech WeatherHAT
Enkel værvisning ved hjelp av Raspberry PI og Cyntech WeatherHAT
Enkel værvisning ved hjelp av Raspberry PI og Cyntech WeatherHAT
Enkel værvisning ved hjelp av Raspberry PI og Cyntech WeatherHAT

* I 2019 endret Yahoo sitt API, og dette sluttet å fungere. Jeg var ikke klar over endringen. I september 2020 ble dette prosjektet oppdatert for å bruke OPENWEATHERMAP API Se den oppdaterte delen nedenfor, resten av denne informasjonen er imidlertid fortsatt god. Takk for at du så, og takk for at du ga meg beskjed om Yahoo -endringen. *

Nylig kjøpte jeg en Cyntech WeatherHAT, men jeg var litt skuffet over mangelen på programvare for den.

HATEN ser ut til å være godt konstruert, med 6 blå lysdioder i form av regndråper, 6 oransje lysdioder i form av tordenbolt, 6 hvite lysdioder i form av en sky. 1 (Det jeg tror er en RGB -LED) for SOLEN - den viser oransje (så jeg kan ta feil om det er en RGB). Og 6 WS2812 lysdioder (disse er RGB:-))

Cyntech har en startguide, og selv det er bra - det er enkelt å installere og bruke HAT.

Så jeg ble bare overrasket over å ikke se noen programvare (annet enn demoen levert av Cyntech). Jeg var like overrasket over å ikke finne noen som virkelig bruker dette - Kanskje folk vil ha en "fancy" skjerm med temperaturer og all den slags informasjon. For meg er det hyggelig å bare se opp på noen få lysdioder og vite - det regner, eller tordenvær eller skyet - På det tidspunktet, hvis jeg trenger mer informasjon, kan jeg se på nettbrettet eller telefonen.:-)

Litt mer - dette er virkelig første gang jeg bruker python, jeg er på ingen måte god til det. Og jeg er sikker på at folk som virkelig kan python vil fortelle meg en bedre måte å gjøre dette på.

La oss komme i gang:

Vi trenger et SD -kort (minst 8 GB)

En Raspberry PI (jeg bruker en Zero W) den må ha internettilgang.

og vi trenger Cyntech weatherHAT

Hvis du bruker en Raspberry PI Zero W, må du også kunne lodde et sett med overskrifter til brettet.

Ellers er ferdighetene som trengs muligheten til å bruke programvare og sette opp SD -kortet.

Trinn 1: Sett inn SD -kortet og Raspberry PI

Sett SD -kortet og Raspberry PI
Sett SD -kortet og Raspberry PI
Sett SD -kortet og Raspberry PI
Sett SD -kortet og Raspberry PI

Du må laste ned den nyeste Raspbian (på tidspunktet for denne instruksjonsboken som er Raspbian Stretch mars 2018 (2018-03-13))

www.raspberrypi.org/downloads/raspbian/

Jeg brukte skrivebordsversjonen, selv om jeg kjører oppsettet mitt hodeløst, og gjør det meste fra CLI (kommandolinjegrensesnitt) over ssh.

Følg installasjonsguiden som finnes her:

www.raspberrypi.org/documentation/installa…

Etter at Etcher er ferdig, fjerner du SD -kortet og setter det inn igjen i datamaskinen.

* Du trenger egentlig bare å gjøre dette trinnet nedenfor hvis du planlegger å installere en hodeløs

Vi må konfigurere SSH og WIFI før vi bruker SD -kortet i Raspberry PI. I BOOT -partisjonen på kortet lager du en fil som heter "ssh" uten anførselstegn. ingenting trenger å være i den filen. Når PI starter, ser den filen og slår på SSH.

Vi må også lage en fil som heter "wpa_supplicant.conf". Vi må redigere denne filen med wifi -innstillingene dine.

Det skal se slik ut:

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

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

* Du trenger egentlig bare å gjøre dette hvis du planlegger å gjøre en hodeløs installasjon

Når det er gjort, fjern SD -kortet trygt og sett det i Raspberry PI (pass på at det ikke er strøm på PI).

Fest weatherHAT, og slå på Raspberry PI.

Trinn 2: Sett opp WeatherHAT -bibliotekene

Sett opp WeatherHAT Libraries
Sett opp WeatherHAT Libraries
Sett opp WeatherHAT Libraries
Sett opp WeatherHAT Libraries

For dette trinnet vil vi følge Komme i gang -guiden som ble funnet

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

HVIS du gjør en hodeløs installasjon, vil du ssh [email protected]

Hvis du ikke har en ssh -klient - er PUTTY en god.

Hvis du bruker et tastatur og en skjerm - guiden ovenfor er god å følge, den starter deg på et GUI -skrivebord.

De viktige trinnene her er å installere WS281x -biblioteket og WeatherHAT -bibliotekene, sammen med avhengigheten for hver.

sudo apt-get oppdatering

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

Nå må vi sørge for at I2C er slått på.

sudo raspi-config

Guiden er skrevet for en eldre versjon av raspi-config og sier å gå til "Avanserte alternativer" som har blitt erstattet av jeg tror "grensesnitt"

Når du slår på I2C må du starte på nytt.

Nå er det på tide å teste HATEN

cd WeatherHAT

sudo python cycle.py

Hvis alt gikk bra, bør du se alle funksjonene og en regnbue.

ctrl-z vil stoppe programmet.

*Spesielle notater: Jeg lærte at tidspunktene for Raspberry PI 3 er forskjellige og at regnbuen kanskje ikke fungerer som den skal. Hvis du har dette problemet her, er hvordan du løser det.

github.com/CyntechUK/WeatherHAT/issues/3

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

Når alt fungerer, kan vi fortsette til neste trinn.

Oppdatering: (6. oktober 2020) Dette depotet inneholder nå mitt getWeather.py -skript, dette er gode nyheter, ettersom interessen har vekket igjen, og nye ting vil skje.

Trinn 3: Installere Weather-api og GetWeather Script

Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script
Installere Weather-api og GetWeather Script

Så jeg la inn en PULL -forespørsel til CyntechUK for skriptet mitt - forhåpentligvis godtar de forespørselen, og du kan hoppe over nedlasting av depotet mitt. (de vil kanskje ikke inkludere koden min du)

(6. oktober 2020) PULL -forespørselen ble godkjent, mitt getWeather -skript er nå inkludert i Weatherhat -depotet.

********* Du kan fortsatt bruke denne informasjonen hvis du vil, men getWeather.py har blitt inkludert i værhattelageret nå ******************* ******************

Mitt depot finner du her:

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

og skriptet mitt heter getWeather.py

HVIS de godtar pull -forespørselen, har du allerede dette skriptet - hvis ikke må du klone depotet.

skriv i hjemmekatalogen (/home/pi):

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

dette vil klone depotet til en katalog som heter getWeather, neste gang må vi sjekke ut getWeather -grenen.

cd getWeather

git checkout getWeather

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

Du må cd inn i weatherHAT -katalogen som ble klonet tidligere og

Vi må redigere skriptet getWeather.py for posisjonen din.

nano getWeather.py

Du bør se en linje som starter med

plassering og slutter med oppslag (45042) - Dette er postnummeret mitt, jeg har funnet ut at det ikke fungerer så bra som du skulle tro

og linjen rett over det som er kommentert fungerer bedre med et bynavn. Det er den du sannsynligvis vil bruke. Så kommenter postnummerlinjen (#), og ikke kommenter og endre bynavnet ditt.

*********** GAMMEL YAHOO -INFORMASJON - Ikke lenger nødvendig ***********

Vi må installere et bibliotek til for at dette skal fungere, weather-api som er en innpakning for Yahoo weather API.

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

Installasjonen er enkel -

pip installer weather-api

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

Nå kan vi kjøre skriptet:

sudo python getWeather.py &

& Vil la skriptet kjøre i bakgrunnen. Skriptet sover i omtrent 5 minutter, og sjekker deretter Yahoo Weather hvis noe har endret seg - i så fall oppdaterer det skjermen. Den 5 minutter lange tiden kan endres, den er nær bunnen av manuset.

sove (60 * 5)

Du kan sette opp en crontab -jobb (husk at dette må kjøres som root) som starter skriptet ved hver oppstart.

bruk:

sudo crontab -e

Tast inn:

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

Jeg tror det burde fungere - jeg har ikke installert cron ennå på systemet mitt.

Det er ganske mye det -

Som jeg sa, er dette et av mine første python -programmer, og jeg er sikker på at noen som vet mer vil se en bedre måte å gjøre dette på.

Jeg har bare gjort begrenset test på dette - jeg har sett "Snow" "Rain" og "Thunderstorm" fungere så langt, Det er noen forhold som jeg ikke er sikker på hvordan jeg skal håndtere ennå - jeg tar gjerne imot ideer.

Trinn 4: Oppdatert informasjon for: Openweathermap API

I september 2020 oppdaterte jeg manuset for å bruke https://openweathermap.org API.

MERK: Dette var en "rask" løsning for meg, og begrenset testet - (Det har vært overskyet de siste dagene, og alt jeg ser er sky- og regndisplayet) - Mens jeg tror jeg har fanget alle forholdene som er enkle å display, er det mulig at jeg savnet et par på grunn av hvor "rask" denne løsningen ble gjort. Når det er sagt, hvis du tror det er et problem, vennligst legg igjen en kommentar og tid vil tillate. Jeg ser på det - eller prøv å peke deg i riktig retning. *

Du må registrere deg for en API -nøkkel ved hjelp av lenken ovenfor. Når du redigerer skriptet for å plassere byen din, ser du et sted for nøkkelen. Bare kopier og lim den inn, så skal du være flink.

Andre notater:

Dette skriptet bruker nå informasjonen om "Gjeldende værdata API" om det API -et du finner her:

openweathermap.org/current En ting å merke seg er at du kan bruke en by, stat og land.

IE: byen "Dayton" blir "Dayton, OH, USA", legg merke til hvordan staten og landskodene begge er store, dette er påkrevd. API -en sier at den bare kan bruke "Dayton, OH", men jeg fikk feil fra skriptet da jeg gjorde dette - og siden dette var en rask løsning, har jeg ikke undersøkt hvorfor. SÅ, jeg anbefaler å bruke "by, stat, land"

HVIS du av en eller annen grunn ikke får god informasjon ved å bruke et bynavn, kan du også slå opp by -ID -en, eller bruke breddegrad og lengdegrad eller postnummer. I hvert tilfelle må URL -en endres. Hvis du klikker på lenken på høyre side av API -nettstedet, vil den gi et eksempel på hva URL -en skal være.

Du må også endre nettadressen i skriptet.

Enda flere notater: 3. oktober 2020

@Itsmedoofer påpekte at de trengte å installere bibliotekets python-forespørsler med den nye oppdateringen. Jeg er ikke sikker på at jeg trengte dette (det er også mulig at jeg hadde det installert fra år siden, eller at forskjellige versjoner av python installerte forskjellige biblioteker som standard). Så hvis skriptet gir en feil om python-forespørsler, er det enkelt å fikse.

skriv inn denne kommandoen i CLI: python -m pip install -forespørsler

og du burde være flink.

Forhåpentligvis gjør dette siden dette var en rask løsning, og kanskje en dag kan jeg jobbe med å rydde opp litt bedre.

Oppdatering (6. oktober 2020) Github pull -forespørselen ble godtatt, det originale CyntechUK -originale depotet inneholder nå dette skriptet. https://github.com/CyntechUK/WeatherHAT Brukeren Boeerb har noen ideer om hvordan du viser noen av forholdene som for øyeblikket ikke vises, samt noen andre ideer for bruk. Så hold øye med det depotet. Og forhåpentligvis vil det skje ting.

Oppdatering: (8. oktober 2020) Open Weather Map har en kort opplæring om hvordan du konfigurerer og bruker API, https://openweathermap.org/appid Et godt sted å starte.

Anbefalt: