Оглавление:

Создание панели мониторинга погоды с помощью Dark Sky API: 5 шагов (с изображениями)
Создание панели мониторинга погоды с помощью Dark Sky API: 5 шагов (с изображениями)

Видео: Создание панели мониторинга погоды с помощью Dark Sky API: 5 шагов (с изображениями)

Видео: Создание панели мониторинга погоды с помощью Dark Sky API: 5 шагов (с изображениями)
Видео: Татьяна Курмашева . Bugs on the Orbit 2024, Июль
Anonim
Image
Image

Dark Sky специализируется на прогнозировании и визуализации погоды. Самым крутым аспектом Dark Sky является их погодный API, который мы можем использовать для получения данных о погоде практически из любой точки мира. Это не только погода, дождливая или солнечная, но и температура, точка росы, порывы ветра, влажность, осадки, давление, УФ-индекс и многое другое - все это легко доступно в любом месте и в любое время.

Давайте узнаем, как использовать супер-простой API Dark Sky. Если вы новичок в использовании API, я обещаю вам, что это будет очень просто! И если вы использовали API раньше, я надеюсь, что мы сможем научить вас чему-то новому с помощью кода, который мы использовали.

Что вам понадобится для этого проекта:

  • Аккаунт Dark Sky API
  • Аккаунт начального состояния
  • Raspberry Pi или ноутбук

Шаг 1. Начало работы

Мы уже проделали большую работу, чтобы вы составили код и систематизировали информацию. Нам просто нужно, чтобы вы внесли несколько корректировок по ходу дела. Если вы хотите немного усложнить задачу, внести некоторые изменения в наш код и данные о погоде, которые будут отправляться, есть безграничные возможности!

Чтобы получить все, что мы подготовили для вас, вам нужно клонировать репозиторий из GitHub. GitHub - это сервис, который позволяет нам хранить, редактировать и управлять такими проектами. Вы захотите запустить этот сценарий на выделенном устройстве. Raspberry Pi - идеальный вариант для запуска приложений, подобных этому руководству.

Чтобы клонировать репозиторий, все, что нам нужно сделать, это войти в терминал нашего Pi или терминал вашего компьютера, который является SSH-d, в свой пи и ввести эту команду:

$ git clone

Нажмите Enter, и вы увидите эту информацию:

Клонирование в «даркский»…

удаленный: Подсчет объектов: 2, готово. удаленный: всего 2 (дельта 0), повторно используется 0 (дельта 0), повторно используется пакет 2 Распаковка объектов: 100% (2/2), выполнено. Проверка подключения… готово.

Как только вы это увидите, поздравляю, вы успешно клонировали репозиторий GitHub и имеете все необходимые файлы для сборки этого проекта. Прежде чем мы перейдем к следующему шагу, давайте изучим этот каталог и выучим несколько основных команд командной строки.

Введите команду ниже в свой терминал:

$ ls

Эта команда перечисляет все, что доступно в каталоге, в котором вы находитесь. Этот список показывает, что наш репозиторий GitHub был успешно клонирован в наш каталог под именем darksky. Давайте посмотрим, что находится в этом каталоге. Чтобы перейти в каталог, все, что вам нужно сделать, это ввести «cd», а затем ввести имя каталога, в который вы хотите перейти.

В этом случае мы набираем:

$ cd darksky

Как только мы нажмем Enter, вы увидите, что теперь мы находимся в каталоге darksky. Давайте снова наберем "ls", чтобы увидеть, какие файлы мы установили на наш пи.

README.md darksky.py…

Здесь мы видим, что у нас есть наш файл readme и файлы Python. Давайте посмотрим на darksky.py с помощью команды "nano". Команда nano позволяет нам открыть текстовый редактор nano, в котором у нас есть весь наш код Python для каждого сегмента этого проекта. Вперед и введите:

$ nano darksky.py

Здесь вы можете увидеть весь код, который мы подготовили для вас для этого проекта. Мы пока не собираемся вносить какие-либо изменения в этот документ, но не стесняйтесь прокручивать его и посмотреть, что мы собираемся делать позже в этом руководстве.

Шаг 2. Использование API Dark Sky

Начальное состояние
Начальное состояние

Чтобы использовать API Dark Sky, вам сначала понадобится собственный ключ API. Не волнуйтесь, получить ключ API быстро и бесплатно. Все, что вам нужно сделать, это зайти на сайт и нажать «Попробовать бесплатно», чтобы создать учетную запись.

  • Вы получаете 1000 вызовов API бесплатно каждый день. Каждый запрос API сверх бесплатного дневного лимита стоит 0,0001 доллара США.
  • Этот лимит автоматически сбрасывается каждый день в полночь по всемирному координированному времени.
  • Запрос прогноза возвращает текущий прогноз погоды на следующую неделю.
  • Запрос Time Machine возвращает наблюдаемые или прогнозируемые погодные условия на дату в прошлом или будущем.

Ваш секретный ключ API Dark Sky будет выглядеть примерно так: 0123456789abcdef9876543210fedcba.

Вы можете вызвать API-интерфейс Dark Sky, введя URL-адрес в своем браузере в следующем формате:

api.darksky.net/forecast/[ключ]/[широта], [долгота]

Замените «key» на свой ключ API Dark Sky, а долготу / широту - на все, что захотите. Вы можете узнать свою долготу и широту, зайдя на Карты 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": "Ясно в течение часа.", "icon": "clear-day", "data": [{"time": 1550615280, "sizesIntensity": 0, "sizesProbability": 0 },…

Это может быть немного сложно и трудно читать, поэтому я рекомендую использовать JSON Formatter, чтобы сделать данные более читаемыми. Когда вы это сделаете, это будет выглядеть примерно так:

объект {9}

широта: 37,8267 долгота: -122,4233 часовой пояс: Америка / Лос-Анджелес в настоящее время {19} время: 1550615286 сводка: четкий значок: ясный день ближайшийStormDistance: 57 ближайшийStormBearing: 15 осадковИнтенсивность: 0 осадков Вероятность: 0 температура: 53,9 кажущаяся Температура: 53,9 Точка росы: 29,59 влажность: 0,39 Давление: 1022,45 Ветер Скорость: 3,87 Ветер Порыв: 9,25 Ветер Подшипник: 259 облаков Покрытие: 0,01 УФ Индекс: 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_install: setuptools 1.1.6 Найдено pip: pip 1.5.6 из /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip major version: 1 pip minor version: 5 ISStreamer обнаружен, обновление… Требование уже актуально: ISStreamer в /Library/Python/2.7/site-packages Очистка… Хотите автоматически получить пример сценария? [да / нет] Где вы хотите сохранить пример? [по умолчанию:./is_example.py] Выберите, какое приложение начального состояния вы используете: 1. app.initialstate.com 2. [НОВИНКА!] iot.app.initialstate.com Введите вариант 1 или 2: введите iot.app Имя пользователя.initialstate.com: Введите пароль iot.app.initialstate.com:

Когда вас спросят, хотите ли вы автоматически получить пример сценария, поставьте «y» вместо «да» и нажмите клавишу ввода, чтобы сохранить сценарий в папке по умолчанию. Чтобы задать вопрос о том, какое приложение вы используете, выберите 2 (если вы не зарегистрировались до ноября 2018 г.) и введите свое имя пользователя и пароль.

Шаг 4: Запустите пример сценария

Запустите тестовый сценарий, чтобы убедиться, что мы можем создать поток данных для вашей учетной записи в исходном состоянии. Напишите следующую команду:

$ python is_example.py

Шаг 6: пример данных

Вернитесь к своей учетной записи в исходном состоянии в веб-браузере. Слева на полке журнала должна появиться новая корзина данных под названием «Пример потока Python» (возможно, вам придется обновить страницу). Нажмите на эту корзину, чтобы просмотреть свои данные.

Шаг 4: Панель мониторинга погоды в темном небе

Панель управления погодой в темном небе
Панель управления погодой в темном небе

Теперь самое интересное. Мы готовы начать использовать Dark Sky API для создания панели мониторинга погоды и записи истории погоды для выбранного нами места. Для этого воспользуемся скриптом Python: https://github.com/initialstate/darksky/blob/master/darksky.py. Этот скрипт просто вызывает API Темного неба, используя ваш ключ API, и извлекает информацию о погоде за указанный интервал времени. Он также передает эти данные в вашу учетную запись начального состояния, что позволит вам создать панель управления погодой Dark Sky.

Вы можете скопировать этот скрипт на свой Pi или получить к нему доступ через репозиторий GitHub, который мы клонировали ранее. Вы можете сделать это, перейдя в свой каталог darksky, набрав:

$ 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 + "Weather" PLAYKET_KEY = "ds_KEY" IN ACCESS КЛЮЧ ЗДЕСЬ "MINUTES_BETWEEN_READS = 15 # ---------------------------------

Вам необходимо установить желаемые координаты GPS и название города. Вы также должны вставить свой ключ API Dark Sky и ключ доступа к учетной записи начального состояния, иначе ваши данные никуда не денутся. Параметр MINUTES_BETWEEN_READS устанавливает, как часто ваш скрипт будет опрашивать API Dark Sky для получения информации о погоде. 15 минут - хороший долгосрочный интервал. Для краткосрочного тестирования вы можете установить это значение на 0,5 минуты. Внесите изменения, затем нажмите Ctrl + X, чтобы выйти и сохранить.

После того, как вы установили свои параметры, вы готовы запустить свой скрипт:

$ python darksky.py

Если вы подключаетесь по ssh к своему Pi и хотите, чтобы этот скрипт работал непрерывно в течение длительного времени, вы можете использовать команду nohup (без зависания) следующим образом:

$ nohup python darksky.py &

Этот сценарий будет делать немного больше, чем просто читать данные о погоде и отправлять их в исходное состояние. Этот скрипт будет использовать поддержку эмодзи, встроенную в инструменты Initial State, чтобы сделать панель инструментов немного более крутой. Вы можете увидеть логику, используемую для получения статуса погоды из текущего значка -> и преобразования его в токен эмодзи в функции weather_icon. Нечто подобное происходит с фазой луны в функции moon_icon и направлением ветра в функции wind_dir_icon.

Шаг 5: Заключение

Заключение
Заключение
Заключение
Заключение

Зайдите в свою учетную запись Initial State и посмотрите свои данные. Я изменил все свои процентные значения на датчики дуги, осадки на датчик жидкости и температуру на датчик температуры. Вы можете выбрать любой тип плитки и выбрать цвета для датчиков и линейных диаграмм. Вы можете сделать свою панель управления темной или светлой и встроить конечный продукт на веб-сайт с помощью встроенного iFrame.

Если вы хотите использовать макет панели мониторинга из общедоступного ресурса в качестве панели мониторинга, вы можете импортировать макет в свою корзину данных, следуя инструкциям здесь. Вы можете добавить фоновое изображение на свою панель инструментов, чтобы придать ей больше контекста.

Общедоступный URL-адрес нашей панели инструментов -

Теперь, когда вы освоили API Dark Sky, возможности безграничны! Существует неограниченное количество бесплатных онлайн-API для изучения, так что приступайте.

Рекомендуемые: