Dark Sky API менен аба ырайы тактасын куруңуз: 5 кадам (сүрөттөр менен)
Dark Sky API менен аба ырайы тактасын куруңуз: 5 кадам (сүрөттөр менен)
Anonim
Image
Image

Dark Sky аба ырайын божомолдоого жана визуалдаштырууга адистешкен. Dark Skyдун эң сонун жагы - бул алардын аба -ырайы APIси, биз дүйнөнүн дээрлик каалаган жеринен аба ырайы маалыматын алуу үчүн колдоно алабыз. Бул жөн эле аба ырайы жамгырлуу же күнөстүү эмес, температура, шүүдүрүм чекити, шамалдын ылдамдыгы, нымдуулук, жаан -чачын, басым, UV индекси жана башкалар, каалаган жерде, каалаган убакта оңой жеткиликтүү.

Келгиле, Dark Skyдун супер жөнөкөй API колдонууну үйрөнөлү. Эгерде сиз API'лерди жаңы колдонуп жатсаңыз, анда мен сизге бул оңой болорун убада кылам! Эгер сиз буга чейин API'дерди колдонгон болсоңуз, анда биз сиз колдонгон код менен сизге жаңы нерсени үйрөтө алабыз деп үмүттөнөм.

Бул долбоор үчүн сизге эмне керек:

  • Dark Sky API аккаунту
  • Баштапкы мамлекеттик эсеп
  • Raspberry Pi же ноутбук

1 -кадам: Баштоо

Биз кодду чогултуу жана маалыматты уюштуруу үчүн биз буга чейин көптөгөн жумуштарды жасадык. Биз жөн гана жолдо бир нече өзгөртүүлөрдү киргизишиңиз керек. Эгерде сиз бир аз кыйынчылыкты кааласаңыз, анда биздин кодго кээ бир өзгөртүүлөрдү киргизиңиз жана аба ырайы тууралуу кандай маалымат жөнөтүлөт, чексиз мүмкүнчүлүктөр бар!

Биз сиз үчүн даярдаган нерселердин бардыгын алуу үчүн, GitHubдан репозиторийди клондошуңуз керек болот. GitHub - бул сыяктуу долбоорлорду сактоого, кайра карап чыгууга жана башкарууга мүмкүндүк берген кызмат. Сиз бул скриптти атайын түзмөктө иштеткиңиз келет. Raspberry Pi - бул үйрөткүч сыяктуу тиркемелерди иштетүү үчүн эң сонун вариант.

Репозиторийди клондоштуруу үчүн, биздин Pi терминалына же сиздин компьютериңизге SSH'ге кирген компьютер терминалына кирип, бул буйрукту териңиз:

$ git клону

Enter баскычын басыңыз жана бул маалыматты көрөсүз:

"Даркский" клондолууда…

алыскы: Объекттерди эсептөө: 2, бүттү. алыскы: Бардыгы 2 (дельта 0), кайра колдонулган 0 (дельта 0), кайра пакеттелген 2 Объектиден чыгаруу: 100% (2/2), бүттү. Байланыш текшерилүүдө… бүттү.

Муну көргөндөн кийин, куттуктайбыз, сиз GitHub Repo -ну ийгиликтүү клондодуңуз жана бул долбоорду куруу үчүн керектүү файлдардын бардыгын алдыңыз. Кийинки кадамга өтүүдөн мурун, келгиле, бул каталогду изилдеп, бир нече негизги буйрук сабынын буйруктарын үйрөнөлү.

Терминалга төмөнкү буйрукту териңиз:

$ ls

Бул буйрук сиз турган каталогдо бар нерселердин бардыгын тизмектейт. Бул тизме биздин GitHub репо каталогубузга "darksky" деген ат менен ийгиликтүү клондолгонун көрсөтөт. Келгиле, ошол каталогдо эмне бар экенин карап көрөлү. Каталогго өтүү үчүн "cd" терип, анан баргыңыз келген каталогдун атын терүү жетиштүү.

Бул учурда, биз жазабыз:

$ cd darksky

Enter баскандан кийин, биз азыр караңгы каталогдо экенибизди көрөсүз. Келгиле, пиңизге кандай файлдарды орнотконубузду көрүү үчүн дагы "ls" терип көрөлү.

README.md darksky.py…

Бул жерде бизде readme документи жана python файлдары бар экенин көрөбүз. Келгиле, "nano" буйругун колдонуу менен darksky.pyди карап көрөлү. Нано буйругу нано текст редакторун ачууга мүмкүндүк берет, анда бизде бул долбоордун ар бир сегментине биздин бардык питон кодубуз бар. Улантыңыз жана териңиз:

$ nano darksky.py

Бул жерде сиз бул долбоор үчүн биз даярдаган коддун бардыгын көрө аласыз. Биз азырынча бул документке эч кандай өзгөртүүлөрдү киргизбейбиз, бирок ары -бери жылдырып, кийинчерээк бул окуу куралыбызда эмне кылаарыбызды көрө аласыз.

2 -кадам: Dark Sky API'син колдонуу

Баштапкы мамлекет
Баштапкы мамлекет

Dark Sky API колдонуу үчүн, адегенде өзүңүздүн API ачкычыңыз керек. Кабатыр болбоңуз, API ачкычын алуу тез жана бекер. Болгону веб -сайтка кирип, "Бекер аракет кыл" баскычын басып, каттоо эсебин түзүңүз.

  • Сиз күн сайын 1 000 API чалуусун акысыз аласыз. Акысыз күнүмдүк чектен ашкан ар бир API сурамы $ 0.0001 турат.
  • Бул чек автоматтык түрдө күн сайын UTC түн ортосуна чейин калыбына келтирилет.
  • Forecast Request кийинки аптадагы учурдагы аба ырайын кайтарып берет.
  • Time Machine өтүнүчү өткөн же келечектеги бир күнгө байкалган же болжолдонгон аба ырайынын шарттарын кайтарып берет.

Сиздин жашыруун Dark Sky API ачкычыңыз мындай болот: 0123456789abcdef9876543210fedcba.

Сиз төмөнкү форматта браузериңизге URL жазуу менен Dark Skyго API чалуусун жасай аласыз:

api.darksky.net/forecast/ [ачкыч]/ [узундук], [узундук]

"Ачкычты" Dark Sky API ачкычыңызга жана узундукка/кеңдикке каалаган нерсеңизге алмаштырыңыз. Google Карталарына барып, жайгашкан жериңизди издөө менен өзүңүздүн узундук жана кеңдикти таба аласыз. Бул баалуулуктар URLде болот. Көчүрүү жана караңгы асмандагы URL дарегиңизге кирүү ачкычыңыз жана баалуулуктарыңыз менен чаптаңыз.

Муну кылгандан кийин, сиз мындай нерсени көрөсүз:

күн "," nearestStormDistance ": 57," nearestStormBearing ": 15," precipIntensity ": 0," precipProbability ": 0," температура ": 53.9," айкын температура ": 53.9," dewPoint ": 29.59," нымдуулук ": 0.39, "басым": 1022.45, "windSpeed": 3.87, "windGust": 9.25, "windBearing": 259, "cloudCover": 0.01, "uvIndex": 3, "көрүнүү": 7.8, "озон": 309.71}, "мүнөт сайын": {"резюме": "Саат үчүн ачык.", "сөлөкөтү": "ачык күн", "маалымат": [{"убакыт": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…

Окуу бир аз оор жана кыйын болушу мүмкүн, андыктан мен сунуштаган нерсе JSON форматтоочунун жардамы менен маалыматтарды окууга ыңгайлуу кылат. Сиз муну кылганда, ал мындай болот:

объект {9}

кеңдик: 37.8267 узундук: -122.4233 убакыт алкагы: Америка/Los_Angeles учурда {19} убакыт: 1550615286 кыскача: Таза сөлөкөт: ачык -күндүн эң жакыныStormDistance: 57 nearestStormBearing: 15 precipIntensity: 0 precipProbability: 0 температура: 53.9 айкынTemperature: 53.9 dewPoint: 29.5 0,39 басым: 1022,45 шамал Ылдамдыгы: 3,87 шамал Шамал: 9,25 шамал Подшипник: 259 булутКабык: 0,01 uvИндекс: 3 көрүнүү: 7,8 озон: 309,71

Сиз жаңы эле API чалуу кылдыңыз! Көрдүңүзбү, бул канчалык жеңил болгон? Сизге коддун бир сабын жазуунун деле кажети жок болчу. Эми сиз APIлерди өздөштүргөнүңүздөн кийин, биз маалымат агымынын бөлүгүнө өтө алабыз.

3 -кадам: Баштапкы абал

Биз аба -ырайы тууралуу бардык маалыматыбызды булут кызматына өткөрүп берүүнү каалайбыз жана бул кызмат биздин маалыматтарды ноутбуктан же мобилдик түзмөктөн кире турган жакшы панельге айландырууну каалайбыз. Биздин маалыматтар баруучу жайга муктаж. Биз ошол мамлекет катары Баштапкы Мамлекетти колдонобуз.

1 -кадам: Баштапкы мамлекеттик эсепке катталуу

Https://iot.app.initialstate.com дарегине өтүп, жаңы каттоо эсебин түзүңүз. Сиз 14 күндүк акысыз сынамык версияга ээ болосуз жана edu электрондук почтасы барлар акысыз студенттик планга каттала алышат.

2 -кадам: ISStreamer орнотуу

Баштапкы абал Python модулун Raspberry Piге орнотуңуз. Буйрук сабында төмөнкү буйрукту аткарыңыз:

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

3 -кадам: Automagic кылыңыз 2 -кадамдан кийин сиз экранга төмөнкү чыгарылышка окшош нерсени көрөсүз:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: ISStreamer Python Easy орнотуусун баштоо! Бул орнотуу үчүн бир нече мүнөт талап кылынышы мүмкүн, кофе алыңыз:) Бирок кайра келүүнү унутпаңыз, кийинчерээк суроолорум болот! Табылган easy_install: setuptools 1.1.6 Табылган пип: pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip негизги версиясы: 1 pip minor version: 5 ISStreamer табылды, жаңыртылууда … Талап мурунтан эле жаңыртылган: ISStreamer /Library/Python/2.7/site-packages Тазалоо… Сиз автоматтык түрдө мисал скриптин алууну каалайсызбы? [y/N] Мисалды кайда сактагыңыз келет? [демейки:./is_example.py] Кайсы Баштапкы Колдонмону колдонуп жатканыңызды тандаңыз: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com 1 же 2 -тандоону киргизиңиз: iot.appка кириңиз.initialstate.com колдонуучунун аты: iot.app.initialstate.com сырсөзүн киргизиңиз:

Сценарийди автоматтык түрдө алгыңыз келеби деп сурашканда, ооба деп "y" коюп, скриптиңизди демейки жерде сактоо үчүн enter басыңыз. Кайсы колдонмону колдонуп жатканыңыз тууралуу суроо үчүн, 2ди тандаңыз (эгер сиз 2018 -жылдын ноябрына чейин катталбасаңыз) жана колдонуучу атыңыз менен сырсөзүңүздү киргизиңиз.

4 -кадам: Мисал скриптин иштетүү

Статистикалык сценарийди баштапкы абалдагы эсебиңизге маалымат агымын түзө аларыбызга ынануу үчүн иштетиңиз. Төмөнкү буйрукту жазыңыз:

$ python is_example.py

6 -кадам: Мисал маалыматтар

Веб -браузериңиздеги баштапкы абалга кайтыңыз. "Python Stream Example" деп аталган жаңы маалымат чакасы журналдын текчесинде сол тарапта көрүнүшү керек болчу (баракты жаңыртууңуз керек болушу мүмкүн). Маалыматыңызды көрүү үчүн бул чаканы басыңыз.

4 -кадам: Dark Sky Weather Dashboard

Dark Sky Weather Dashboard
Dark Sky Weather Dashboard

Эми кызыктуу бөлүгү үчүн. Биз Dark Sky APIнин жардамы менен аба ырайынын тактасын түзүп, биз тандаган жердин аба ырайынын тарыхын тартып алууга даярбыз. Бул үчүн биз Python скриптин колдонобуз: https://github.com/initialstate/darksky/blob/master/darksky.py. Бул скрипт жөн гана API ачкычын колдонуп Dark Sky APIге чалып, көрсөтүлгөн убакыт аралыгында аба ырайы тууралуу маалыматты алат. Ал ошондой эле бул маалыматты Dark State аба ырайынын тактасын түзүүгө мүмкүндүк бере турган Баштапкы Мамлекеттин эсебине жөнөтөт.

Сиз бул скриптти Piңизге көчүрө аласыз же буга чейин клондогон GitHub репозиторийи аркылуу кире аласыз. Сиз муну дарк каталогуна которуу аркылуу жасай аласыз:

$ cd darksky

Бул жерден биз аба ырайынын тактасын түзүү үчүн иштете турган python файлына кире аласыз. Аны иштетүүдөн мурун, сиз каалаган параметрлерди коюп, ачкычтарыңызды салышыңыз керек. Nano darksky.py файлына терүү менен:

$ nano darksky.py

Андан кийин скрипттин жогору жагындагы бөлүмдү түзөтүңүз:

# --------- Колдонуучунун жөндөөлөрү ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "КАРА СКАЙ" API АЧКЫЧЫН БУЛ ЖЕРДЕ "BUCKET_NAME =": partly_sunny: " + CITY +" Аба ырайы "BUCKET_KEYCESS =" ds1 " АЧКЫЧ БУЛ ЖЕРДЕ "ОКУУЛАРДЫН_МИНУТТАРЫ = 15 # ---------------------------------

Сиз каалаган GPS координаттарын жана шаардын атын коюуңуз керек. Ошондой эле Dark Sky API ачкычыңызды жана Initial State аккаунтуңузга кирүү ачкычын киргизишиңиз керек, же сиздин маалыматтар эч жакка кетпейт. MINUTES_BETWEEN_READS параметри скриптиңиз аба ырайы тууралуу маалымат алуу үчүн Dark Sky API'ин канчалык көп сурамжылаарын аныктайт. 15 мүнөт узак мөөнөттүү жакшы интервалды камсыз кылат. Кыска мөөнөттүү тестирлөө үчүн муну 0,5 мүнөткө койсоңуз болот. Өзгөртүүлөрдү киргизиңиз, андан кийин чыгуу жана сактоо үчүн control+X киргизиңиз.

Параметрлериңизди койгондон кийин, сиз скриптиңизди иштетүүгө даярсыз:

$ python darksky.py

Эгерде сиз өзүңүздүн Пиңизге кирсеңиз жана бул скриптти узак убакыт бою үзгүлтүксүз калтыргыңыз келсе, nohup буйругун (асып коюуга болбойт) төмөнкүдөй колдоно аласыз:

$ nohup python darksky.py &

Бул скрипт аба ырайы маалыматын окуп, баштапкы абалга жөнөтүүдөн бир аз көптү кылат. Бул скрипт куралдар панелин бир аз кооз кылуу үчүн Initial Stateтин куралдарына орнотулган эмодзилердин колдоосунан пайдаланат. Учурдагы -> сүрөтчөсүнөн аба ырайынын статусун алып, аны weather_icon функциясында эмодзи токенине айландыруу үчүн колдонулган логиканы көрө аласыз. Moon_icon функциясындагы айдын фазасы үчүн жана wind_dir_icon функциясындагы шамалдын багыты үчүн окшош бир нерсе болот.

5 -кадам: Жыйынтык

Жыйынтык
Жыйынтык
Жыйынтык
Жыйынтык

Баштапкы мамлекеттик каттоо эсебиңизге барып, маалыматыңызды караңыз. Мен бардык пайыздык маанилеримди жаа өлчөгүчтөргө, жаан -чачынды суюктукка жана температураны температура өлчөгүчкө алмаштырдым. Сиз плиткалардын каалаган түрүнө өзгөртө аласыз жана өлчөгүчтөр жана сызык диаграммалары үчүн түстөрүңүздү тандай аласыз. Сиз панелиңизди караңгы же жарык кылып, акыркы продуктту iFrame аркылуу вебсайтка киргизе аласыз.

Эгерде сиз панелдин макетин жалпыга ачык бөлүштүрүүдөн панел катары колдонууну кааласаңыз, бул жердеги көрсөтмөлөрдү аткаруу менен макетиңизди маалымат пакетиңизге импорттой аласыз. Сиз көбүрөөк контекстти берүү үчүн панелге фондук сүрөттү кошо аласыз.

Биздин тактабыздын жалпыга ачык URL дареги

Эми сиз Dark Sky API'ни үйрөндүңүз, мүмкүнчүлүктөр чексиз! Баштоо үчүн изилдөө үчүн онлайнда чексиз акысыз API бар.

Сунушталууда: