INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Dark Sky spesialiseer in weervoorspelling en visualisering. Die coolste aspek van Dark Sky is hul weer -API wat ons kan gebruik om die weerdata van byna oral ter wêreld op te haal. Dit is nie net reënerig of sonnig nie, maar temperatuur, dauwpunt, windstoot, humiditeit, neerslag, druk, UV -indeks en meer, alles maklik beskikbaar waar u wil, wanneer u wil.
Kom ons leer hoe om die super-eenvoudige API van Dark Sky te gebruik. As u nog nie die gebruik van API's gebruik het nie, dan belowe ek u dat dit baie maklik gaan wees! En as u al voorheen API's gebruik het, hoop ek dat ons u iets nuuts kan leer met die kode wat ons gebruik het.
Wat u benodig vir hierdie projek:
- Dark Sky API -rekening
- Aanvanklike staatsrekening
- Framboos Pi of skootrekenaar
Stap 1: Aan die gang
Ons het al baie van die beenwerk ingesit om die kode saam te stel en die inligting te organiseer. Ons het u net nodig om 'n paar aanpassings onderweg te maak. As u 'n bietjie uitdaging wil aanbring, moet u ons kode verander en watter weerdata gestuur word, is daar onbeperkte moontlikhede!
Om al die dinge wat ons vir u voorberei het, op te haal, moet u die bewaarplek van GitHub kloon. GitHub is 'n diens waarmee ons projekte soos hierdie kan stoor, hersien en bestuur. U sal hierdie skrif op 'n toegewyde toestel wil uitvoer. 'N Raspberry Pi is 'n uitstekende opsie om toepassings soos hierdie tutoriaal uit te voer.
Om die bewaarplek te kloon, is alles wat ons hoef te doen om na die terminale van ons Pi te gaan, of na u rekenaarterminale wat SSH is in u pi en tik hierdie opdrag:
$ git kloon
Tik op enter en u sien hierdie inligting:
Kloneer in 'darksky' …
afgeleë: Voorwerpe tel: 2, klaar. afgeleë: Totaal 2 (delta 0), hergebruik 0 (delta 0), hergebruik 2 Uitgepakte voorwerpe: 100% (2/2), klaar. Kontroleer tans verbinding … klaar.
As u dit eers sien, dan geluk, u het die GitHub Repo suksesvol gekloon en al die nodige lêers gehad om hierdie projek te bou. Voordat ons na die volgende stap gaan, neem ons 'n rukkie om in hierdie gids te verken en 'n paar basiese opdragreëlopdragte te leer.
Tik die onderstaande opdrag in u terminale in:
$ ls
Hierdie opdrag bevat alles wat beskikbaar is in die gids waarin u tans is. Hierdie lys toon dat ons GitHub Repo suksesvol in ons gids gekloon is onder die naam "darksky." Kom ons kyk na wat in die gids is. Om na 'n gids te gaan, tik u slegs 'cd' en tik die naam van die gids waarna u wil gaan.
In hierdie geval tik ons:
$ cd darksky
Sodra ons op enter druk, sal u sien dat ons nou in die darksky -gids is. Tik weer 'ls' om te sien watter lêers ons op ons pi geïnstalleer het.
README.md darksky.py …
Hier sien ons hoe ons ons lees -dokument en python -lêers het. Kom ons kyk na darksky.py met die opdrag "nano". Met die nano -opdrag kan ons die nano -teksredakteur oopmaak waar ons al ons python -kode vir elke segment van hierdie projek het. Gaan voort en tik:
$ nano darksky.py
Hier kan u al die kode sien wat ons vir u vir hierdie projek voorberei het. Ons gaan nog geen veranderinge aan hierdie dokument aanbring nie, maar blaai gerus rond en kyk wat ons later in hierdie tutoriaal gaan doen.
Stap 2: Gebruik die Dark Sky API
Om die Dark Sky API te gebruik, benodig u eers u eie API -sleutel. Moenie bekommerd wees nie, dit is vinnig en gratis om 'n API -sleutel te kry. Al wat u hoef te doen is om na die webwerf te gaan en op "Probeer gratis" te klik om 'n rekening te skep.
- U kry elke dag 1 000 API -oproepe gratis. Elke API -versoek oor die gratis daaglikse limiet kos $ 0,0001.
- Hierdie limiet word elke dag om middernag UTC outomaties teruggestel.
- Die Forecast Request gee die huidige weervoorspelling vir die volgende week weer.
- Die Time Machine Request gee die waargenome of voorspelde weersomstandighede vir 'n datum in die verlede of toekoms terug.
U geheime Dark Sky API -sleutel sal so lyk: 0123456789abcdef9876543210fedcba.
U kan 'n API -oproep na Dark Sky maak deur 'n URL in u blaaier in die volgende formaat in te tik:
api.darksky.net/forecast/phiakey]/[breedtegraad], [lengtegraad]
Vervang 'sleutel' met u Dark Sky API -sleutel en lengtegraad/breedtegraad met wat u wil. U kan u lengte- en breedtegraad vind deur na Google Maps te gaan en u ligging te soek. Die waardes sal in die URL verskyn. Kopieer en plak die bogenoemde donker lug -URL met u toegangsleutel en waardes in 'n adresbalk.
Sodra u dit gedoen het, sal u iets soos hierdie sien:
dag "," naasteStormDistance ": 57," naasteStormBearing ": 15," precipIntensity ": 0," precipProbability ": 0," temperatuur ": 53.9," skynbare temperatuur ": 53.9," dewPoint ": 29.59," humiditeit ": 0.39, "druk": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "sigbaarheid": 7,8, "osoon": 309,71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…
Dit kan 'n bietjie oorweldigend en moeilik wees om te lees, dus wat ek aanbeveel om te doen, is om 'n JSON -formatter te gebruik om die data leesbaarder te maak. As u dit doen, sal dit so lyk:
voorwerp {9}
breedtegraad: 37.8267 lengte: -122.4233 tydsone: Amerika/Los_Angeles tans {19} tyd: 1550615286 opsomming: Duidelike ikoon: helderdag naaste Stormafstand: 57 naaste Storm: 15 neerslag Intensiteit: 0 neerslag Waarskynlikheid: 0 temperatuur: 53,9 skynbaar Temperatuur: 53,9 dauwpunt: 29,59 humiditeit: 0.39 druk: 1022.45 wind Snelheid: 3.87 wind Storm: 9.25 wind Laai: 259 wolk Dekking: 0.01 uv Indeks: 3 sigbaarheid: 7.8 osoon: 309.71
U het pas 'n API -oproep gemaak! Sien jy hoe maklik dit was? U hoef nie eers 'n enkele reël kode te skryf nie. Noudat u die API's bemeester het, kan ons na die datastroomgedeelte gaan.
Stap 3: Aanvanklike toestand
Ons wil al ons weerdata na 'n wolkdiens stroom, en met hierdie diens kan ons ons data verander in 'n goeie dashboard waartoe ons toegang kan verkry vanaf ons skootrekenaar of mobiele toestel. Ons data benodig 'n bestemming. Ons sal die aanvanklike staat as die bestemming gebruik.
Stap 1: Registreer vir die aanvanklike staatrekening
Gaan na https://iot.app.initialstate.com en skep 'n nuwe rekening. U kry 'n gratis proeftydperk van 14 dae en almal met 'n edu -e -posadres kan registreer vir 'n gratis studenteplan.
Stap 2: Installeer die ISStreamer
Installeer die Initial State Python -module op u Raspberry Pi. Voer die volgende opdrag in die opdragprompt uit:
$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Stap 3: Maak 'n bietjie Automagic Na stap 2 sien u iets soortgelyk aan die volgende uitset op die skerm:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Begin met die installering van ISStreamer Python! Dit kan 'n paar minute neem om te installeer, koffie te drink:) Maar vergeet nie om terug te kom nie, ek het later vrae! Easy_install: setuptools 1.1.6 Gevind pip: pip 1.5.6 van /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hoof weergawe: 1 pip minor weergawe: 5 ISStreamer gevind, word opgedateer … Vereis reeds op datum: ISStreamer in /Library/Python/2.7/site-packages Maak skoon … Wil u outomaties 'n voorbeeldskrif kry? [j/n] Waar wil u die voorbeeld stoor? [standaard:./is_example.py] Kies asseblief watter aanvanklike staatsprogram u gebruik: 1. app.initialstate.com 2. [NUUT!] iot.app.initialstate.com Voer keuse 1 of 2 in: voer iot.app in.initialstate.com gebruikersnaam: Voer wagwoord iot.app.initialstate.com in:
As u gevra word of u 'n voorbeeldskrip outomaties wil kry, sit "y" vir ja, en druk op enter om u script op die standaardlokasie te stoor. Vir die vraag oor watter program u gebruik, kies 2 (tensy u voor November 2018 aangemeld het) en voer u gebruikersnaam en wagwoord in.
Stap 4: Begin die voorbeeldskrip
Begin die toetsskrif om seker te maak dat ons 'n datastroom na u aanvanklike staatrekening kan skep. Skryf die volgende opdrag:
$ python is_voorbeeld.py
Stap 6: Voorbeelddata
Gaan terug na u aanvanklike staatrekening in u webblaaier. 'N Nuwe data -emmer met die naam "Python Stream -voorbeeld" moes links in u logblad verskyn (u moet die bladsy moontlik herlaai). Klik op hierdie emmer om u data te sien.
Stap 4: Dark Sky Weather Dashboard
Nou vir die lekker deel. Ons is gereed om die Dark Sky API te begin gebruik om 'n weerpaneelbord te skep en die weergeskiedenis van die plek wat ons kies, vas te lê. Om dit te doen, gaan ons die Python -script gebruik: https://github.com/initialstate/darksky/blob/master/darksky.py. Hierdie skrif noem eenvoudig die Dark Sky API met u API -sleutel en haal die weerinligting oor 'n bepaalde tydsinterval op. Dit stroom ook die data na u aanvanklike staatrekening, waarmee u 'n Dark Sky -weerpaneelbord kan skep.
U kan hierdie skrif óf na u Pi kopieer, óf toegang verkry via die GitHub -bewaarplek wat ons vroeër gekloon het. U kan dit doen deur in u darksky -gids te verander deur te tik:
$ cd darksky
Van hier af het u toegang tot die python -lêer wat ons sal uitvoer om ons weerpaneelbord te skep. Voordat u dit uitvoer, moet u die gewenste parameters instel en u sleutels invoeg. Nano in die darksky.py -lêer deur te tik:
$ nano darksky.py
Wysig dan die gedeelte bo -aan die skrif:
# --------- Gebruikersinstellings ---------
CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "PLAAS U DONKE SKY -API SLEUTEL HIER" BUCKET_NAME = ": deels_sonnig:" + STAD + "Weer" BUCKET_KEY = "ds1" ACCACECKEY = SLEUTEL HIER "MINUTES_BETWEEN_READS = 15 # ---------------------------------
U moet die gewenste GPS -koördinate en stadsnaam instel. U moet ook u Dark Sky API -sleutel en toegangsleutel vir u aanvanklike staat inbring, anders gaan u data nêrens heen nie. Die parameter MINUTES_BETWEEN_READS bepaal hoe gereeld u script die Dark Sky -API vir weerinligting sal ondersoek. 15 minute bied 'n goeie langtermyninterval. Ter wille van korttermyntoetse kan u dit op 0,5 minute stel. Maak u veranderinge, voer dan beheer+X in om af te sluit en te stoor.
Sodra u parameters ingestel is, is u gereed om u script uit te voer:
$ python darksky.py
As u na u Pi gaan en hierdie script vir 'n lang tyd ononderbroke wil laat werk, kan u die nohup-opdrag (geen ophanging) soos volg gebruik:
$ nohup python darksky.py &
Hierdie skrif gaan 'n bietjie meer doen as om net die weerdata te lees en dit na die oorspronklike toestand te stuur. Hierdie script sal gebruik maak van die emoji -ondersteuning wat by die Initial State se gereedskap ingebou is om die paneelbord 'n bietjie cooler te maak. U kan die logika wat gebruik word om die weerstatus van die huidige -> ikoon te sien, omskakel na 'n emoji -token in die weather_icon -funksie. Iets soortgelyks gebeur vir die maanfase in die moon_icon -funksie en windrigting in die wind_dir_icon -funksie.
Stap 5: Gevolgtrekking
Gaan na u aanvanklike staatrekening en kyk na u data. Ek het al my persentasie waardes verander na boogmeters, die neerslag na 'n vloeistofmeter en die temperatuur na 'n temperatuurmeter. U kan verander na enige tipe teël en u kleure kies vir die meters en lyngrafieke. U kan u dashboard donker of lig maak en die finale produk op 'n webwerf insluit met behulp van 'n inbed -iFrame.
As u die paneelborduitleg van 'n openbare aandeel as u paneelbord wil gebruik, kan u 'n uitleg in u data -emmer invoer deur die instruksies hier te volg. U kan 'n agtergrondprent by u dashboard voeg om dit meer konteks te gee.
Die openbare deel -URL vir ons paneelbord is
As u die Dark Sky API bemeester het, is die moontlikhede eindeloos! Daar is 'n onbeperkte hoeveelheid gratis API's aanlyn om te verken, dus begin.
Aanbeveel:
Bou 'n energiemonitor -toestel met behulp van 'n deeltjieelektron: 5 stappe (met foto's)
Bou 'n energiemonitor -toestel met behulp van 'n deeltjie -elektron: in die meeste besighede beskou ons energie as 'n besigheidsuitgawe. Die rekening verskyn in ons pos of e -posse en ons betaal dit voor die kansellasiedatum. Met die opkoms van IoT en slim toestelle, begin Energy 'n nuwe plek inneem in 'n onderneming
Bou 'n tenkvolumleser in minder as $ 30 met behulp van ESP32: 5 stappe (met foto's)
Bou 'n tenkvolumleser in minder as $ 30 met behulp van ESP32: The Internet of Things het baie voorheen ingewikkelde toesteltoepassings in die huise van baie handwerkbrouers en wynmakers gebring. Toepassings met niveausensors word al dekades lank gebruik in groot raffinaderye, waterbehandelingsaanlegte en chemies
Bou 'n gemotoriseerde dinosourus met behulp van plastiek, in 55 minute of minder !: 11 stappe (met foto's)
Bou 'n gemotoriseerde dinosourus met behulp van plastiek asblik, binne 55 minute of minder !: Hallo. My naam is Mario en ek bou graag dinge met asblik. 'N Week gelede is ek genooi om deel te neem aan 'n oggendprogram van die nasionale TV -kanaal van Azerbeidjan, om te gesels oor die " Waste to Art " uitstalling. Die enigste voorwaarde? Ek het nie
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saaleffek sensor en 'n paar stukkies op Nodemcu - Deel 2 - Sagteware: 5 stappe (met foto's)
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saal -effektsensor en 'n paar stukkies op Nodemcu - Deel 2 - sagteware: inleiding Dit is die opvolger van die eerste pos "Hoe om u eie windmeter te bou met behulp van rietskakelaars, saal -effek sensor en 'n paar stukkies" op Nodemcu - Deel 1 - Hardeware " - waar ek wys hoe om die windsnelheid en rigtingmeting saam te stel
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saal -effek sensor en 'n paar stukkies op Nodemcu. - Deel 1 - Hardeware: 8 stappe (met foto's)
Hoe om u eie windmeter te bou met behulp van rietskakelaars, saal -effek sensor en 'n paar stukkies op Nodemcu. - Deel 1 - Hardeware: Inleiding Sedert ek begin het met die studie van Arduino en die Maker Culture, het ek graag nuttige toestelle gebou met rommel- en afvalstukkies, soos botteldoppe, stukke PVC, blikkies, ens. Ek gee graag 'n tweede lewe vir enige stuk of 'n maat