
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05


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 для изучения, так что приступайте.
Рекомендуемые:
Интеллектуальная распределенная система мониторинга погоды IoT с использованием NodeMCU: 11 шагов

Интеллектуальная распределенная система мониторинга погоды IoT с использованием NodeMCU: все вы, возможно, знаете о традиционной метеостанции; но задумывались ли вы, как это работает на самом деле? Поскольку традиционные метеостанции являются дорогостоящими и громоздкими, плотность этих станций на единицу площади очень мала, что способствует
Интеллектуальная система мониторинга погоды и скорости ветра на основе IOT: 8 шагов

Интеллектуальная система мониторинга погоды и скорости ветра на основе IOT: разработана - Нихилом Чудасма, Дханашри Мудлиар и Ашита Радж Введение Важность мониторинга погоды существует во многих отношениях. Необходимо следить за погодными параметрами, чтобы поддерживать развитие сельского хозяйства, теплиц
PyPortal и панель управления погодой Dark Sky API: 6 шагов

Dark Sky API PyPortal & Weather Dashboard: этот проект представляет собой версию того, что мы делали раньше, - Dark Sky API Weather Dashboard. На этот раз вместо Raspberry Pi мы будем использовать Adafruit PyPortal для отображения данных о погоде и отправки этих данных в начальное состояние. Две панели для работы одной
Домашняя система мониторинга погоды IoT с поддержкой приложений Android (Mercury Droid): 11 шагов

Домашняя система мониторинга погоды IoT с поддержкой приложений Android (Mercury Droid): Введение Mercury Droid - это один из видов встроенной системы IoT (Интернета вещей), основанный на мобильном приложении Mercury Droid для Android. Которая способна измерить & следить за погодой в доме. это очень недорогая домашняя система мониторинга погоды
Как сделать IoT-устройство для управления устройствами и мониторинга погоды с помощью Esp8266: 5 шагов

Как сделать устройство IoT для управления приборами и мониторинга погоды с помощью Esp8266: Интернет вещей (IoT) - это объединение физических устройств (также называемых «подключенными устройствами» и «интеллектуальными устройствами»), зданий, и другие элементы - встроенные в электронику, программное обеспечение, датчики, исполнительные механизмы и