Inhoudsopgave:

Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT - Ajarnpa
Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT - Ajarnpa

Video: Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT - Ajarnpa

Video: Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT - Ajarnpa
Video: Snel de juiste weergave in Illustrator 2024, November
Anonim
Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT
Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT
Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT
Eenvoudige weerweergave met Raspberry PI en Cyntech WeatherHAT

* In 2019 veranderde Yahoo zijn API, en dit werkte niet meer. Ik was niet op de hoogte van de wijziging. In september 2020 is dit project geüpdatet om de OPENWEATHERMAP API te gebruiken. Zie de bijgewerkte sectie hieronder, de rest van deze informatie is echter nog steeds goed. Bedankt voor het kijken en bedankt dat je me op de hoogte hebt gesteld van de Yahoo-wijziging. *

Onlangs kocht ik een Cyntech WeatherHAT, maar ik was een beetje teleurgesteld over het gebrek aan software ervoor.

De HAT zelf lijkt goed geconstrueerd, met 6 blauwe LED's in de vorm van regendruppels, 6 oranje LED's in de vorm van een bliksemschicht, 6 witte LED's in de vorm van een wolk. 1 (Volgens mij is het een RGB-LED) voor de ZON - deze wordt oranje weergegeven (dus ik kan het mis hebben dat het een RGB is). En 6 WS2812 LED's (Dit zijn RGB:-))

Cyntech heeft een handleiding om aan de slag te gaan, en zelfs dat is goed - het is eenvoudig om de HAT te installeren en te gebruiken.

Dus ik was gewoon verrast om niet echt software te zien (behalve de demo van Cyntech). Ik was net zo verrast dat niemand dit echt gebruikte - misschien willen mensen een "chique" scherm met temperaturen en al dat soort informatie. Voor mij is het leuk om gewoon naar een paar LED's te kijken en te weten - het is regent, of onweer, of bewolkt - als ik op dat moment meer informatie nodig heb, kan ik op mijn tablet of telefoon kijken.:-)

Een beetje meer - dit is echt mijn eerste keer dat ik python gebruik, ik ben er absoluut niet goed in. En ik weet zeker dat mensen die python echt kennen, me een betere manier zullen vertellen om dit te doen.

Laten we beginnen:

We hebben een SD-kaart nodig (minimaal 8 GB)

Een Raspberry PI (ik gebruik een Zero W) die internettoegang nodig heeft.

en we hebben de Cyntech weatherHAT nodig

Als je een Raspberry PI Zero W gebruikt, moet je ook een set headers op het bord kunnen solderen.

Anders zijn de vaardigheden die nodig zijn de mogelijkheid om software te gebruiken en de SD-kaart in te stellen.

Stap 1: Stel de SD-kaart en Raspberry PI in

Stel de SD-kaart en Raspberry PI in
Stel de SD-kaart en Raspberry PI in
Stel de SD-kaart en Raspberry PI in
Stel de SD-kaart en Raspberry PI in

Je moet de nieuwste Raspbian downloaden (ten tijde van deze instructable is dat Raspbian Stretch maart 2018 (2018-03-13))

www.raspberrypi.org/downloads/raspbian/

Ik heb de desktopeditie gebruikt, zelfs als ik mijn setup zonder hoofd uitvoer en de meeste dingen doe vanuit de CLI (opdrachtregelinterface) via ssh.

Volg de installatiehandleiding die u hier vindt:

www.raspberrypi.org/documentation/installa…

Nadat Etcher is voltooid, verwijdert u de SD-kaart en plaatst u deze opnieuw in de computer.

* U hoeft deze stap hieronder alleen uit te voeren als u van plan bent een headless-installatie uit te voeren

We moeten SSH en WIFI instellen voordat we de SD-kaart in de Raspberry PI gebruiken. Maak in de BOOT-partitie van de kaart een bestand met de naam "ssh" zonder de aanhalingstekens. er hoeft niets in dat bestand te staan. Wanneer de PI opstart, zal het dat bestand zien en SSH inschakelen.

We moeten ook een bestand maken met de naam "wpa_supplicant.conf". We moeten dit bestand bewerken met uw wifi-instellingen.

Het zou er ongeveer zo uit moeten zien:

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

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

* Je hoeft dit echt alleen te doen als je van plan bent een headless install te doen

Zodra dat is gebeurd, verwijdert u veilig de SD-kaart en plaatst u de Raspberry PI (zorg ervoor dat er geen stroom op de PI staat).

Bevestig de weatherHAT en zet de Raspberry PI aan.

Stap 2: Stel de WeatherHAT-bibliotheken in

De WeatherHAT-bibliotheken instellen
De WeatherHAT-bibliotheken instellen
De WeatherHAT-bibliotheken instellen
De WeatherHAT-bibliotheken instellen

Voor deze stap volgen we de gevonden handleiding Aan de slag

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

ALS je een headless installatie uitvoert, ssh [email protected]

Als je geen ssh-client hebt, is PUTTY een goede.

Als u een toetsenbord en monitor gebruikt, is de bovenstaande gids een goede om te volgen, u begint bij een GUI-bureaublad.

De belangrijke stappen hier zijn het installeren van de WS281x-bibliotheek en de WeatherHAT-bibliotheken, samen met de afhankelijkheid voor elk.

sudo apt-get update

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 installeren

Nu moeten we ervoor zorgen dat I2C is ingeschakeld.

sudo raspi-config

De handleiding is geschreven voor een oudere versie van raspi-config en zegt om naar "Geavanceerde opties" te gaan, die is vervangen door ik geloof "Interfaces"

Zodra u I2C inschakelt, moet u opnieuw opstarten.

Nu is het tijd om de HAT te testen

cd WeerHAT

sudo python cycle.py

Als alles goed is gegaan, zou je alle functies en een regenboog moeten zien.

ctrl-z stopt het programma.

*Speciale opmerkingen: ik heb geleerd dat de timing van de Raspberry PI 3 anders is en dat de regenboog mogelijk niet correct werkt. ALS u dit probleem heeft, leest u hier hoe u het kunt oplossen.

github.com/CyntechUK/WeatherHAT/issues/3

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

Zodra alles werkt, kunnen we doorgaan naar de volgende stap.

Update: (6 okt. 2020) Deze repository bevat nu mijn getWeather.py-script, dit is geweldig nieuws, want de interesse is weer aangewakkerd en er zullen zeker nieuwe dingen gebeuren.

Stap 3: Weather-api en GetWeather Script installeren

Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren
Weather-api en GetWeather Script installeren

Dus heb ik een PULL-verzoek ingediend bij CyntechUK voor mijn script - hopelijk accepteren ze het verzoek en kun je het downloaden van mijn repository overslaan. (misschien willen ze mijn code niet opnemen)

(6 okt. 2020) Het PULL-verzoek is goedgekeurd, mijn getWeather-script is nu opgenomen in de Weatherhat-repository.

**********Je kunt deze informatie nog steeds gebruiken als je wilt, maar getWeather.py is nu opgenomen in de weatherhat-repository ******************** ****************

Mijn opslagplaats is hier te vinden:

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

en mijn script heet getWeather.py

ALS ze het pull-verzoek accepteren, heb je dit script al - zo niet, dan moet je de repository klonen.

typ in je homedirectory (/home/pi):

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

dit zal de repository klonen in een map met de naam getWeather, vervolgens moeten we de getWeather-tak uitchecken.

cd getWeather

git checkout getWeather

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

U moet naar de weatherHAT-map gaan die eerder is gekloond en

We moeten het getWeather.py-script voor uw locatie bewerken.

nano getWeather.py

Je zou een regel moeten zien die begint met

locatie en eindigt met lookup(45042) - Dit is mijn postcode, ik heb ontdekt dat het niet zo goed werkt als je zou denken

en de regel er recht boven die is becommentarieerd werkt beter met een plaatsnaam. Dat is degene die u waarschijnlijk wilt gebruiken. Dus geef commentaar op de postcoderegel (#) en verwijder commentaar en wijzig uw stadsnaam.

*********** OUDE YAHOO INFORMATIE - Niet langer vereist ***********

We moeten nog een bibliotheek installeren om dit te laten werken, weather-api, een wrapper voor de Yahoo Weather API.

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

De installatie is eenvoudig -

pip installeer weer-api

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

Nu kunnen we het script uitvoeren:

sudo python getWeather.py &

De & laat het script op de achtergrond draaien. Het script slaapt ongeveer 5 minuten en controleert vervolgens Yahoo Weather of er iets is veranderd - als dat zo is, wordt het scherm bijgewerkt. De tijd van 5 minuten kan worden gewijzigd, deze staat onderaan het script.

slapen (60 * 5)

Je zou een crontab-taak kunnen instellen (onthoud dat deze als root moet worden uitgevoerd) die het script bij elke keer opstarten zal starten.

gebruik maken van:

sudo crontab -e

binnenkomen:

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

Ik denk dat dat zou moeten werken - ik heb cron nog niet op mijn systeem ingesteld.

Dat is het eigenlijk wel -

Zoals ik al zei, is dit een van mijn eerste python-programma's, en ik weet zeker dat iemand die meer weet, een betere manier zal zien om dit te doen.

Ik heb dit slechts beperkt getest - ik heb tot nu toe "Sneeuw", "Regen" en "Onweersbui" zien werken, Er zijn een aantal voorwaarden waarvan ik nog niet zeker weet hoe ik ermee om moet gaan - ik verwelkom ideeën.

Stap 4: Bijgewerkte informatie voor: Openweathermap API

In september 2020 heb ik het script bijgewerkt om de https://openweathermap.org API te gebruiken.

OPMERKING: dit was een "snelle" oplossing voor mij, en beperkt getest - (het is de afgelopen dagen bewolkt geweest en ik zie alleen de wolken en regen) - hoewel ik geloof dat ik alle omstandigheden heb opgevangen die gemakkelijk te scherm, is het mogelijk dat ik er een paar heb gemist vanwege hoe "snel" deze reparatie was gedaan. Dat gezegd hebbende, als je denkt dat er een probleem is, laat dan een reactie achter en als de tijd het toelaat zal ik ernaar kijken - of proberen je in de goede richting te wijzen. *

U moet zich aanmelden voor een API-sleutel met behulp van de bovenstaande link. Wanneer u het script bewerkt om uw stad te plaatsen, ziet u een plaats voor de sleutel. Kopieer en plak het gewoon, en je zou goed moeten zijn.

Andere notities:

Dit script gebruikt nu de "Actuele weergegevens API" informatie over die API is hier te vinden:

openweathermap.org/current Een ding om op te merken is dat je een stad, staat en land kunt gebruiken.

IE: de stad "Dayton" wordt "Dayton, OH, US" let op hoe de staat en de landcodes beide hoofdletters zijn, dit is verplicht. De API zegt dat het alleen "Dayton, OH" kan gebruiken, maar ik kreeg fouten in het script toen ik dit deed - en aangezien dit een snelle oplossing was, heb ik niet onderzocht waarom. DUS, ik raad aan om de "stad, staat, land" te gebruiken

ALS u om de een of andere reden geen goede informatie krijgt met behulp van een plaatsnaam, kunt u ook de stads-ID opzoeken, of de lengte- en breedtegraad of de postcode gebruiken. In elk geval moet de URL worden gewijzigd, als u op de link aan de rechterkant van de API-website klikt, krijgt u een voorbeeld van wat de URL zou moeten zijn.

U moet ook de URL in het script wijzigen.

Nog meer opmerkingen: 3 okt 2020

@Itsmedoofer wees erop dat ze de python-verzoeken van de bibliotheek moesten installeren met de nieuwe update. Ik weet niet zeker of ik dit wel nodig had (het is ook mogelijk dat ik het jaren geleden had geïnstalleerd, of dat verschillende versies van python standaard verschillende bibliotheken installeren). Dus als het script een fout geeft over python-verzoeken, is het eenvoudig op te lossen.

typ deze opdracht in de CLI: python -m pip install requests

en je zou goed moeten zijn.

Hopelijk zorgt dit ervoor dat dit een snelle oplossing was, en misschien kan ik op een dag, als de tijd het toelaat, eraan werken om het een beetje beter op te ruimen.

Update (6 okt. 2020) Het github pull-verzoek is geaccepteerd, de originele CyntechUK originele repository bevat nu dit script. https://github.com/CyntechUK/WeatherHAT De gebruiker Boeerb heeft enkele ideeën over hoe sommige van de voorwaarden die momenteel niet worden weergegeven, weer te geven, evenals enkele andere ideeën voor gebruik. Houd dat archief dus goed in de gaten. En hopelijk gebeuren er dingen.

Update: (8 okt. 2020) Open Weather Map heeft een korte tutorial over het instellen en gebruiken van de API, https://openweathermap.org/appid. Een goede plek om te beginnen.

Aanbevolen: