Sukurkite orų prietaisų skydelį naudodami „Dark Sky“API: 5 žingsniai (su paveikslėliais)
Sukurkite orų prietaisų skydelį naudodami „Dark Sky“API: 5 žingsniai (su paveikslėliais)
Anonim
Image
Image

„Dark Sky“specializuojasi orų prognozavimo ir vizualizavimo srityse. Šauniausias „Dark Sky“aspektas yra jų orų API, kurią galime naudoti norėdami gauti orų duomenis iš beveik bet kurios pasaulio vietos. Tai ne tik lietingas ar saulėtas oras, bet ir temperatūra, rasos taškas, vėjo gūsis, drėgmė, krituliai, slėgis, UV indeksas ir dar daugiau - viskas lengvai pasiekiama, kur tik norite ir kada tik norite.

Išmokime naudotis itin paprasta „Dark Sky“API. Jei dar nesinaudojote API, pažadu, kad tai bus tikrai paprasta! Ir jei anksčiau naudojote API, tikiuosi, kad mes galime išmokyti jus ko nors naujo naudodami mūsų naudojamą kodą.

Ko jums reikės šiam projektui:

  • „Dark Sky“API paskyra
  • Pradinė valstybės sąskaita
  • Raspberry Pi arba nešiojamas kompiuteris

1 žingsnis: Darbo pradžia

Mes jau įdėjome daug pastangų, kad galėtumėte sudėti kodą ir sutvarkyti informaciją. Mums tereikia atlikti keletą pakeitimų. Jei norite šiek tiek iššūkio, pakeiskite mūsų kodą ir siunčiamus orų duomenis, yra neribotos galimybės!

Norėdami gauti viską, ką mes jums paruošėme, turėsite klonuoti saugyklą iš „GitHub“. „GitHub“yra paslauga, leidžianti saugoti, peržiūrėti ir valdyti tokius projektus. Šį scenarijų norėsite paleisti tam skirtame įrenginyje. „Raspberry Pi“yra puiki galimybė paleisti tokias programas kaip ši pamoka.

Norėdami klonuoti saugyklą, viskas, ką mums reikia padaryti, yra eiti į mūsų Pi terminalą arba jūsų kompiuterių terminalą, kuris yra SSH, įveskite jūsų pi ir įveskite šią komandą:

$ git klonas

Paspauskite „Enter“ir pamatysite šią informaciją:

Klonavimas į „tamsų“…

nuotolinis: skaičiuojami objektai: 2, padaryta. nuotolinis: iš viso 2 (delta 0), pakartotinai panaudota 0 (delta 0), pakartotinai naudojama pakuotėje 2 Išpakavimo objektai: 100% (2/2), padaryta. Tikrinamas ryšys … padaryta.

Kai tai pamatysite, sveikiname, sėkmingai klonavote „GitHub Repo“ir turite visus reikalingus failus šiam projektui sukurti. Prieš pereidami prie kito žingsnio, skirkime šiek tiek laiko tyrinėti šį katalogą ir išmokti keletą pagrindinių komandinės eilutės komandų.

Įveskite žemiau esančią komandą į savo terminalą:

$ ls

Šioje komandoje išvardijama visa, kas yra kataloge, kuriame šiuo metu esate. Šis sąrašas rodo, kad mūsų „GitHub Repo“buvo sėkmingai klonuotas į mūsų katalogą pavadinimu „darksky“. Pažiūrėkime, kas yra tame kataloge. Norėdami pereiti į katalogą, jums tereikia įvesti „cd“ir įvesti katalogo, į kurį norite eiti, pavadinimą.

Šiuo atveju įvesime:

$ cd tamsus

Kai paspausime Enter, pamatysite, kad dabar esame tamsiame kataloge. Dar kartą įveskime „ls“, kad pamatytume, kokius failus įdiegėme „pi“.

README.md darksky.py…

Čia matome, kad turime savo „readme“dokumentą ir „python“failus. Pažvelkime į darksky.py naudodami komandą „nano“. „Nano“komanda leidžia mums atidaryti „nano“teksto redaktorių, kuriame turime visą savo python kodą kiekvienam šio projekto segmentui. Pirmyn ir įveskite:

$ nano darksky.py

Čia galite pamatyti visą kodą, kurį paruošėme jums šiam projektui. Kol kas šio dokumento nepakeisime, bet nesivaržykite slinkti ir pamatyti, ką darysime vėliau šioje pamokoje.

2 veiksmas: „Dark Sky“API naudojimas

Pradinė būsena
Pradinė būsena

Norėdami naudoti „Dark Sky“API, pirmiausia turite turėti savo API raktą. Nesijaudinkite, API raktas gaunamas greitai ir nemokamai. Viskas, ką jums reikia padaryti, tai eiti į svetainę ir spustelėti „Išbandyti nemokamai“, kad sukurtumėte paskyrą.

  • Kiekvieną dieną nemokamai gausite 1 000 API skambučių. Kiekviena API užklausa viršijant nemokamą dienos limitą kainuoja 0,0001 USD.
  • Ši riba automatiškai iš naujo nustatoma kiekvieną dieną vidurnaktį UTC.
  • Prognozės užklausa grąžina dabartinę kitos savaitės orų prognozę.
  • Laiko mašinos užklausa grąžina stebėtas ar prognozuojamas oro sąlygas praeities ar ateities datai.

Jūsų slaptas „Dark Sky“API raktas atrodys maždaug taip: 0123456789abcdef9876543210fedcba.

API skambinti galite į „Dark Sky“, įvesdami URL į savo naršyklę tokiu formatu:

api.darksky.net/forecast/[key]/[latitude], [ilguma]

Pakeiskite „raktą“savo „Dark Sky“API raktu ir ilgumą/platumą bet kuo. Savo ilgumą ir platumą galite rasti apsilankę „Google“žemėlapiuose ir ieškodami savo vietos. Šios vertės bus URL. Nukopijuokite ir įklijuokite aukščiau esantį tamsaus dangaus URL su prieigos raktu ir vertėmis, pridėtomis į adreso juostą.

Kai tai padarysite, pamatysite kažką panašaus:

diena "," artimiausiaStormDistance ": 57," artimiausiaStormBearing ": 15," rainIntensity ": 0," rainProbability ": 0," temperatūra ": 53,9," akivaizdi temperatūra ": 53,9," rasos taškas ": 29,59," drėgmė ": 0,39, "slėgis": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "matomumas": 7,8, "ozonas": 309,71}, "minute": {"summary": "Valyti valandą.", "icon": "clear-day", "data": [{"time": 1550615280, "rainIntensity": 0, "fellProbability": 0 },…

Tai gali būti šiek tiek per daug ir sunku skaityti, todėl rekomenduoju naudoti „JSON Formatter“, kad duomenys būtų lengviau skaitomi. Kai tai padarysite, jis atrodys maždaug taip:

objektas {9}

platuma: 37.8267 ilguma: -122.4233 laiko juosta: Amerika/Los_Angeles {19} laikas: 1550615286 santrauka: Išvalyti piktogramą: artimiausia giedra dienaStormDistance: 57 artimiausiasStormBearing: 15 kritulių 0,39 slėgis: 1022,45 vėjas Greitis: 3,87 vėjas Pūtimas: 9,25 vėjas Guolis: 259 debesis Dangtis: 0,01 uv Indeksas: 3 matomumas: 7,8 ozonas: 309,71

Ką tik atlikote API skambutį! Matai, kaip tai buvo lengva? Jums net nereikėjo rašyti vienos kodo eilutės. Dabar, kai įvaldėte API, galime pereiti prie duomenų srautinio perdavimo dalies.

3 žingsnis: pradinė būsena

Mes norime srautiniu būdu perduoti visus savo orų duomenis į debesies paslaugą ir ta paslauga paversti mūsų duomenis į gražų prietaisų skydelį, kurį galime pasiekti iš savo nešiojamojo kompiuterio ar mobiliojo įrenginio. Mūsų duomenims reikia paskirties. Kaip tikslą naudosime pradinę būseną.

1 veiksmas: prisiregistruokite gauti pradinę valstybės sąskaitą

Eikite į https://iot.app.initialstate.com ir sukurkite naują paskyrą. Gaunate 14 dienų nemokamą bandomąją versiją ir kiekvienas, turintis edu el. Pašto adresą, gali užsiregistruoti gauti nemokamą studento planą.

2 veiksmas: įdiekite „ISStreamer“

Įdiekite pradinės būsenos „Python“modulį į „Raspberry Pi“. Komandų eilutėje paleiskite šią komandą:

$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Po 2 veiksmo ekrane pamatysite kažką panašaus į šią išvestį:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| Sudo bashPasword: Pradedant ISStreamer Python Lengvas diegimas! Tai gali užtrukti kelias minutes, kol bus įdiegta, išgerkite kavos:) Bet nepamirškite sugrįžti, vėliau turėsiu klausimų! Rasta easy_install: setuptools 1.1.6 Rasta pip: pip 1.5.6 iš /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pagrindinė versija: 1 pip minor versija: 5 ISStreamer rastas, atnaujinamas … Reikalavimas jau atnaujintas: ISStreamer /Library/Python/2.7/site-packages Valymas … Ar norite automatiškai gauti scenarijaus pavyzdį? [y/N] Kur norite išsaugoti pavyzdį? [numatytasis:./is_example.py] Pasirinkite, kurią pradinės būsenos programą naudojate: 1. app.initialstate.com 2. [NAUJIENA!].initialstate.com vartotojo vardas: įveskite iot.app.initialstate.com slaptažodį:

Kai jūsų paklaus, ar norite automatiškai gauti scenarijaus pavyzdį, pažymėkite „y“taip ir paspauskite „Enter“, kad išsaugotumėte scenarijų numatytoje vietoje. Jei norite sužinoti, kokią programą naudojate, pasirinkite 2 (nebent prisiregistravote iki 2018 m. Lapkričio mėn.) Ir įveskite savo vartotojo vardą ir slaptažodį.

4 veiksmas: paleiskite scenarijaus pavyzdį

Paleiskite bandomąjį scenarijų, kad įsitikintumėte, jog galime sukurti duomenų srautą į jūsų pradinės būsenos paskyrą. Parašykite šią komandą:

$ python is_example.py

6 veiksmas: duomenų pavyzdžiai

Grįžkite į pradinės būsenos paskyrą žiniatinklio naršyklėje. Kairėje žurnalo lentynoje turėtų būti rodomas naujas duomenų rinkinys, pavadintas „Python Stream Example“(gali tekti atnaujinti puslapį). Spustelėkite šį segmentą, kad peržiūrėtumėte savo duomenis.

4 žingsnis: „Dark Sky Weather“prietaisų skydelis

„Dark Sky Weather“prietaisų skydelis
„Dark Sky Weather“prietaisų skydelis

Dabar apie linksmąją dalį. Esame pasirengę pradėti naudoti „Dark Sky“API, kad sukurtume orų prietaisų skydelį ir užfiksuotume pasirinktos vietos orų istoriją. Norėdami tai padaryti, mes naudosime „Python“scenarijų: https://github.com/initialstate/darksky/blob/master/darksky.py. Šis scenarijus paprasčiausiai iškviečia „Dark Sky“API, naudodamas jūsų API raktą, ir nuskaito orų informaciją tam tikru laiko intervalu. Jis taip pat perduoda šiuos duomenis į jūsų pradinės būsenos paskyrą, kuri leis jums sukurti „Dark Sky“orų prietaisų skydelį.

Galite nukopijuoti šį scenarijų į savo „Pi“arba pasiekti jį per „GitHub“saugyklą, kurią anksčiau klonavome. Tai galite padaryti pakeitę savo tamsųjį katalogą įvesdami:

$ cd tamsus

Iš čia galėsite pasiekti „python“failą, kurį paleisime kurdami orų informacijos suvestinę. Prieš paleisdami turite nustatyti norimus parametrus ir įterpti raktus. Nano į darksky.py failą įvesdami:

$ nano darksky.py

Tada redaguokite skiltį šalia scenarijaus viršaus:

# --------- Vartotojo nustatymai ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "ĮDĖKITE DARK SKY API KEY HERE" BUCKET_NAME = ": részben_sunny:" + CITY + "Orai" BUCKET_KEY = "ds1" ACCESS RASKITE ČIA "MINUTES_BETWEEN_READS = 15 # ---------------------------------

Turite nustatyti norimas GPS koordinates ir miesto pavadinimą. Taip pat turite įterpti „Dark Sky“API raktą ir pradinės būsenos paskyros prieigos raktą, kitaip jūsų duomenys niekur nedings. Parametras MINUTES_BETWEEN_READS nustatys, kaip dažnai scenarijus apklaus „Dark Sky“API, kad gautų informacijos apie orą. 15 minučių suteikia ilgą intervalą. Norėdami atlikti trumpalaikius bandymus, galite nustatyti 0,5 minutės. Atlikite pakeitimus, tada įveskite ir įrašykite „Control“+X.

Nustatę parametrus, esate pasiruošę paleisti scenarijų:

$ python darksky.py

Jei įsijungiate savo „Pi“ir norite, kad šis scenarijus ilgą laiką nenutrūktų, galite naudoti komandą „nohup“(be pakabinimo) taip:

$ nohup python darksky.py &

Šis scenarijus padarys šiek tiek daugiau nei tiesiog perskaitys orų duomenis ir nusiųs juos į pradinę būseną. Šis scenarijus pasinaudos jaustukų palaikymu, integruotu į „Initial State“įrankius, kad prietaisų skydelis būtų šiek tiek šaunesnis. Galite pamatyti logiką, naudojamą orų būsenai paimti iš šiuo metu -> piktogramos ir paversti jaustukų žetonu funkcijoje weather_icon. Kažkas panašaus atsitinka mėnulio fazei naudojant funkciją moon_icon ir vėjo krypčiai funkcijoje wind_dir_icon.

5 žingsnis: Išvada

Išvada
Išvada
Išvada
Išvada

Eikite į savo pradinės būsenos paskyrą ir peržiūrėkite savo duomenis. Aš pakeičiau visas savo procentines vertes į lanko matuoklius, kritulių kiekį į skysčio matuoklį ir temperatūrą į temperatūros matuoklį. Galite pakeisti bet kokio tipo plyteles ir pasirinkti spalvas matuokliams ir linijinėms diagramoms. Galite padaryti prietaisų skydelį tamsų ar šviesų ir įterpti galutinį produktą į svetainę naudodami įterpiamą „iFrame“.

Jei norite naudoti prietaisų skydelio išdėstymą iš viešos bendrinamos informacijos, galite importuoti maketą į savo duomenų grupę vadovaudamiesi čia pateiktomis instrukcijomis. Prie prietaisų skydelio galite pridėti fono paveikslėlį, kad suteiktumėte daugiau konteksto.

Mūsų informacijos suvestinės viešas bendrinimo URL yra

Dabar jūs įvaldėte „Dark Sky“API, galimybės yra begalinės! Internete yra neribotas kiekis nemokamų API, kurias reikia ištirti, todėl pradėkite.

Rekomenduojamas: