Съдържание:
- Стъпка 1: Първи стъпки
- Стъпка 2: Използване на Dark Sky API
- Стъпка 3: Първоначално състояние
- Стъпка 4: Табло за управление на времето в Dark Sky
- Стъпка 5: Заключение
Видео: Създайте табло за управление на времето, използвайки API на Dark Sky: 5 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Dark Sky е специализирана в прогнозиране на времето и визуализация. Най -готиният аспект на Dark Sky е техният API за времето, който можем да използваме за извличане на метеорологичните данни от почти всяка точка на света. Не само времето е дъждовно или слънчево, но и температурата, точката на оросяване, поривите на вятъра, влажността, валежите, налягането, UV индексът и др., Всички лесно достъпни където и да пожелаете, когато пожелаете.
Нека научим как да използваме супер-простия API на Dark Sky. Ако сте нов в използването на API, обещавам ви, че това ще бъде наистина лесно! И ако преди сте използвали API, надявам се, че можем да ви научим на нещо ново с кода, който сме използвали.
Какво ще ви е необходимо за този проект:
- Профил на Dark Sky API
- Първоначална държавна сметка
- Raspberry Pi или лаптоп
Стъпка 1: Първи стъпки
Вече сме положили много работа, за да съберете кода и да организирате информацията. Ще имаме нужда само да направите някои корекции по пътя. Ако искате малко предизвикателство, направете някои промени в нашия код и какви метеорологични данни се изпращат, има неограничени възможности!
За да извлечете всички неща, които сме ви подготвили, ще трябва да клонирате хранилището от GitHub. GitHub е услуга, която ни позволява да съхраняваме, преразглеждаме и управляваме проекти като този. Ще искате да стартирате този скрипт на специално устройство. Raspberry Pi е перфектен вариант за стартиране на приложения като този урок.
За да клонирате хранилището, всичко, което трябва да направим, е да отидем в терминала на нашия Pi или терминала на вашите компютри, който е SSH’d, във вашето pi и въведете тази команда:
$ git клонинг
Натиснете Enter и ще видите тази информация:
Клониране в „тъмно“…
дистанционно: Преброяване на обекти: 2, готово. дистанционно: Общо 2 (делта 0), повторно 0 (делта 0), опаковка повторно 2 Обекта на разопаковане: 100% (2/2), готово. Проверка на свързаността… готово.
След като видите това, тогава поздравления, успешно сте клонирали GitHub Repo и имате всички необходими файлове за изграждане на този проект. Преди да преминем към следващата стъпка, нека отделим малко време, за да проучим тази директория и да научим няколко основни команди от командния ред.
Въведете командата по -долу във вашия терминал:
$ ls
Тази команда изброява всичко налично в директорията, в която се намирате в момента. Този списък показва, че нашето GitHub Repo е успешно клонирано в нашата директория под името „darksky“. Нека да разгледаме какво има в тази директория. За да се преместите в директория, всичко, което трябва да направите, е да въведете „cd“и след това да въведете името на директорията, към която искате да отидете.
В този случай ще въведем:
$ cd тъмно
След като натиснем enter, ще видите, че сега сме в директорията darksky. Нека отново въведем „ls“, за да видим какви файлове сме инсталирали на нашия pi.
README.md darksky.py…
Тук виждаме, че имаме нашия readme документ и python файлове. Нека да разгледаме darksky.py с помощта на командата "nano". Командата nano ни позволява да отворим редактора на нано текст, където имаме целия си python код за всеки сегмент от този проект. Продължете и напишете:
$ nano darksky.py
Тук можете да видите целия код, който сме ви подготвили за този проект. Все още няма да правим промени в този документ, но не се колебайте да превъртите и да видите какво ще правим по -късно в този урок.
Стъпка 2: Използване на Dark Sky API
За да използвате API на Dark Sky, първо се нуждаете от собствен API ключ. Не се притеснявайте, получаването на ключ за API е бързо и безплатно. Всичко, което трябва да направите, е да отидете на уебсайта и да кликнете върху „Опитайте безплатно“, за да създадете акаунт.
- Получавате безплатно 1 000 API обаждания всеки ден. Всяка заявка за API над безплатния дневен лимит струва $ 0,0001.
- Това ограничение автоматично се нулира всеки ден в полунощ UTC.
- Искането за прогноза връща текущата прогноза за времето за следващата седмица.
- Заявката за машина на времето връща наблюдаваните или прогнозните метеорологични условия за дата в миналото или бъдещето.
Вашият секретен ключ за Dark Sky API ще изглежда така: 0123456789abcdef9876543210fedcba.
Можете да направите обаждане по API към Dark Sky, като въведете URL адрес в браузъра си в следния формат:
api.darksky.net/forecast/[key]/ [ширина], [дължина]
Заменете „ключ“с вашия ключ за Dark Sky API и дължина/ширина с каквото искате. Можете да намерите своята дължина и ширина, като отидете в Google Карти и потърсите местоположението си. Тези стойности ще бъдат в URL адреса. Копирайте и поставете горния URL адрес на тъмно небе с добавен ключ за достъп и стойности в адресната лента.
След като направите това, ще видите нещо подобно:
ден "," Най -близко разстояние от бурята ": 57," Най -близко разположение на бурята ": 15," преципитентензитет ": 0," вероятност от преципитация ": 0," температура ": 53,9," видима температура ": 53,9," точка на оросяване ": 29,59," влажност ": 0,39, "налягане": 1022.45, "windSpeed": 3.87, "windGust": 9.25, "windBearing": 259, "cloudCover": 0.01, "uvIndex": 3, "видимост": 7.8, "озон": 309.71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…
Това може да бъде малко преобладаващо и трудно за четене, затова препоръчвам да използвате JSON Formatter, за да направите данните по -четими. Когато направите това, това ще изглежда така:
обект {9}
географска ширина: 37,8267 дължина: -122,4233 часова зона: Америка/Los_Angeles в момента {19} час: 1550615286 обобщение: Изчистете иконата: най -близкият ден най -близка буря Разстояние: 57 най -близка буря Носеща: 15 валежи Интензивност: 0 валежи Вероятност: 0 температура: 53,9 видима Температура: 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 bashПарола: Започване на лесна инсталация на ISStreamer Python! Това може да отнеме няколко минути за инсталиране, вземете кафе:) Но не забравяйте да се върнете, ще имам въпроси по -късно! Намерено easy_install: setuptools 1.1.6 Намерено пип: пип 1.5.6 от /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) основна версия на пип: 1 пип второстепенна версия: 5 ISStreamer е намерен, актуализира се … Изискването вече е актуално: ISStreamer в /Library/Python/2.7/site-packages Почистване … Искате ли автоматично да получите примерен скрипт? [y/N] Къде искате да запишете примера? [по подразбиране:./is_example.py] Моля, изберете приложението за първоначално състояние, което използвате: 1. app.initialstate.com 2. [НОВО!] 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“, трябваше да се появи вляво в рафта ви за регистрация (може да се наложи да опресните страницата). Кликнете върху тази кофа, за да видите данните си.
Стъпка 4: Табло за управление на времето в Dark Sky
Сега за забавната част. Готови сме да започнем да използваме Dark Sky API, за да създадем табло за управление на времето и да уловим историята на времето за избраното от нас място. За да направим това, ще използваме скрипта Python: https://github.com/initialstate/darksky/blob/master/darksky.py. Този скрипт просто извиква Dark Sky API, използвайки вашия API ключ и извлича информация за времето за определен интервал от време. Той също така предава тези данни към вашия акаунт за първоначално състояние, което ще ви позволи да създадете табло за управление на времето Dark Sky.
Можете или да копирате този скрипт във вашия Pi, или да получите достъп до него чрез хранилището на GitHub, което клонирахме по -рано. Можете да направите това, като промените в директорията си darksky, като въведете:
$ cd тъмно
От тук ще имате достъп до файла python, който ще стартираме, за да създадем нашето табло за управление на времето. Преди да го стартирате, трябва да зададете желаните параметри и да вмъкнете ключовете си. Nano във файла darksky.py, като напишете:
$ nano darksky.py
След това редактирайте секцията в горната част на скрипта:
# --------- Потребителски настройки ---------
CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "ПОСТАВЕТЕ ТВОЯТ ТЕМЕН НЕБЕСЕН API КЛЮЧ ТУК" BUCKET_NAME = ": частично_ слънчев:" + CITY + "Време" BUCKET_KEY = "ds1 ACCESSY КЛЮЧ ТУК "MINUTES_BETWEEN_READS = 15 # ---------------------------------
Трябва да зададете желаните GPS координати и името на града. Трябва също да поставите своя ключ за Dark Sky API и ключ за достъп до първоначалното си състояние, или данните ви няма да отидат никъде. Параметърът MINUTES_BETWEEN_READS ще зададе колко често скриптът ви ще анкетира API на Dark Sky за информация за времето. 15 минути осигуряват добър интервал в дългосрочен план. За краткосрочно тестване можете да зададете това на 0,5 минути. Направете промените си, след това въведете control+X, за да излезете и запазите.
След като сте задали параметрите, сте готови да стартирате скрипта си:
$ python darksky.py
Ако влизате в своя Pi и искате да оставите този скрипт да работи непрекъснато за дълго време, можете да използвате командата nohup (без затваряне), както следва:
$ nohup python darksky.py &
Този скрипт ще направи малко повече от просто да прочете метеорологичните данни и да ги изпрати до първоначалното състояние. Този скрипт ще се възползва от поддръжката на емоджи, вградена в инструментите на Initial State, за да направи таблото за управление малко по -готино. Можете да видите логиката, използвана за вземане на състоянието на времето от иконата в момента -> и да я преобразувате в знак за емоджи във функцията weather_icon. Нещо подобно се случва за фазата на луната във функцията moon_icon и посоката на вятъра във функцията wind_dir_icon.
Стъпка 5: Заключение
Отидете в профила си за първоначално състояние и разгледайте данните си. Промених всичките си процентни стойности на дъгомер, валежите на течност и температурата на манометър. Можете да преминете към всякакъв вид плочки и да изберете цветовете си за габарити и линейни диаграми. Можете да направите таблото си за управление тъмно или светло и да вградите крайния продукт в уебсайт, като използвате вграден iFrame.
Ако искате да използвате оформлението на таблото за управление от публичен дял като табло, можете да импортирате оформление във вашата кофа с данни, като следвате инструкциите тук. Можете да добавите фоново изображение към таблото си за управление, за да му придадете повече контекст.
Публичният URL адрес за споделяне на нашето табло за управление е
Сега сте овладели API на Dark Sky, възможностите са безкрайни! Има неограничено количество безплатни API онлайн, за да проучите, така че започнете.
Препоръчано:
Табло за управление на СЗО за COVID-19: 8 стъпки (със снимки)
Табло за управление на СЗО за COVID-19: Тези инструкции показват как да използвате ESP8266/ESP32 и LCD за изграждане на ситуация на COVID-19 Табло за управление на СЗО
Табло за управление на мотоциклети Raspberry Pi: 9 стъпки (със снимки)
Табло за управление на мотоциклети Raspberry Pi: Като студент Мултимедия & Комуникационните технологии в Howest Kortrijk, трябваше да направя свой собствен IoT проект. Това ще комбинира всички модули, последвани през първата година, в един голям проект. Тъй като карам мотоциклет много в свободното си време
Табло за управление на API за качество на въздуха на AirVisual: 5 стъпки
Табло за управление на API за качество на въздуха на AirVisual: AirVisual (https://www.airvisual.com) е уебсайт, който предоставя данни за качеството на въздуха по целия свят. Те имат API, който ще използваме, за да получим данни за качеството на въздуха, които да изпратим до таблото за управление. Ще взаимодействаме с този API, подобно на това, което направихме с нашите
Guino: Табло за управление за вашия Arduino: 4 стъпки (със снимки)
Guino: Табло за управление на вашия Arduino: Този проект е част от експерименти, направени, докато правите художник в резиденция в Instructables. Другите проекти можете да видите тук. Може да се окаже трудна задача за отстраняване на грешки и визуализиране на данни в реално време на дъската на Arduino. Обикновено сте заседнали със
Табло за управление на електрически велосипед (EBike) и монитор на батерията: 12 стъпки (със снимки)
Табло за управление на електрически велосипеди (EBike) и монитор на батерията: Този проект е схема на Arduino, която следи напрежението и тока на батерията с модул ACS 712. Измерванията се съобщават чрез Bluetooth с модул HC-05 на устройство с Android. По принцип пренасочвате отрицателната връзка между y