Оглавление:
- Шаг 1. Установите SD-карту и Raspberry PI
- Шаг 2. Настройте библиотеки WeatherHAT
- Шаг 3: Установка Weather-api и GetWeather Script
- Шаг 4. Обновленная информация для: API Openweathermap
Видео: Простое отображение погоды с использованием Raspberry PI и Cyntech WeatherHAT: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
* В 2019 году Yahoo изменил свой API, и он перестал работать. Я не знал об изменении. В сентябре 2020 года этот проект был обновлен для использования API OPENWEATHERMAP. См. Обновленный раздел ниже, однако остальная информация по-прежнему актуальна. Спасибо, что посмотрели, и спасибо, что сообщили мне об изменении Yahoo. *
Недавно я приобрел Cyntech WeatherHAT, но был немного разочарован отсутствием программного обеспечения для него.
Сама шляпа выглядит хорошо сконструированной, с 6 синими светодиодами в виде капель дождя, 6 оранжевыми светодиодами в виде молнии, 6 белыми светодиодами в виде облака. 1 (я считаю, что это светодиод RGB) для СОЛНЦА - он отображается оранжевым (так что я могу ошибаться, говоря, что это RGB). И 6 светодиодов WS2812 (это RGB:-))
У Cyntech есть руководство по началу работы, и даже оно хорошо - его легко установить и использовать HAT.
Поэтому я был просто удивлен, что на самом деле не увидел никакого программного обеспечения (кроме демонстрации, предоставленной Cyntech). Я был в равной степени удивлен, не обнаружив, что кто-то действительно этим пользуется - возможно, людям нужен «модный» дисплей с температурами и прочей информацией в этом роде. Для меня приятно просто взглянуть на несколько светодиодов и узнать - сейчас дождь, или гроза, или облачно - в этот момент, если мне понадобится дополнительная информация, я могу посмотреть на свой планшет или телефон.:-)
Еще немного - я действительно впервые использую python, я никоим образом не разбираюсь в этом. И я уверен, что люди, которые действительно знают python, подскажут мне лучший способ сделать это.
Давайте начнем:
Нам нужна SD карта (минимум 8гб)
Raspberry PI (я использую Zero W) должен иметь доступ в Интернет.
и нам нужен Cyntech weatherHAT
Если вы используете Raspberry PI Zero W, вам также понадобится возможность припаять к плате набор разъемов.
В противном случае необходимые навыки - это умение использовать программное обеспечение и настраивать SD-карту.
Шаг 1. Установите SD-карту и Raspberry PI
Вам нужно будет загрузить последнюю версию Raspbian (на момент написания этой инструкции это Raspbian Stretch March 2018 (2018-03-13))
www.raspberrypi.org/downloads/raspbian/
Я использовал настольную версию, даже если я запускаю свою установку без головы и делаю большинство вещей из CLI (интерфейс командной строки) через ssh.
Следуйте руководству по установке, которое можно найти здесь:
www.raspberrypi.org/documentation/installa…
После того, как Etcher будет готов, извлеките SD-карту и снова вставьте ее в компьютер.
* Вам действительно нужно сделать этот шаг ниже, только если вы планируете выполнять установку без подключения к компьютеру
Нам нужно настроить SSH и WIFI, прежде чем использовать SD-карту в Raspberry PI. В разделе BOOT карты создайте файл с именем «ssh» без кавычек. в этом файле ничего не должно быть. Когда PI загрузится, он увидит этот файл и включит SSH.
Нам также необходимо создать файл с именем "wpa_supplicant.conf". Нам нужно отредактировать этот файл с вашими настройками Wi-Fi.
Это должно выглядеть примерно так:
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev
update_config = 1 network = {ssid = "yourwifiSSID" psk = "yourwifipassword" scan_ssid = 1}
* Вам действительно нужно сделать это только в том случае, если вы планируете установку без подключения к компьютеру
Как только это будет сделано, безопасно извлеките SD-карту и вставьте Raspberry PI (убедитесь, что на PI нет питания).
Присоедините weatherHAT и включите Raspberry PI.
Шаг 2. Настройте библиотеки WeatherHAT
На этом этапе мы будем следовать найденному руководству по началу работы.
guides.cyntech.co.uk/weatherhat/getting-sta…
ЕСЛИ вы выполняете установку без головы, вам нужно ssh [email protected]
Если у вас нет ssh-клиента - PUTTY подойдет.
Если вы используете клавиатуру и монитор - вам следует следовать приведенному выше руководству, оно запускает вас на рабочем столе с графическим интерфейсом пользователя.
Важными шагами здесь являются установка библиотеки WS281x и библиотек WeatherHAT вместе с зависимостями для каждой из них.
sudo apt-get update
sudo apt-get upgrade -y sudo apt-get install build-essential python-dev git scons swig python-smbus git clone https://github.com/jgarff/rpi_ws281x.git> git clone https://github.com/ jgarff / rpi_ws281x.git> cd rpi_ws281x scons cd python sudo python setup.py установить
Теперь нам нужно убедиться, что I2C включен.
sudo raspi-config
Руководство написано для более старой версии raspi-config и предлагает перейти к «Расширенным параметрам», которые, как мне кажется, были заменены на «Интерфейсы».
Как только вы включите I2C, вам придется перезагрузиться.
Пришло время протестировать шляпу.
cd WeatherHAT
sudo python cycle.py
Если все прошло хорошо, вы должны увидеть все функции и радугу.
ctrl-z остановит программу.
* Особые примечания: я узнал, что тайминги Raspberry PI 3 разные, и радуга может работать некорректно. Если у вас есть эта проблема, вот как ее исправить.
github.com/CyntechUK/WeatherHAT/issues/3
guides.cyntech.co.uk/raspberry-pi/assemblin…
Как только все заработает, мы можем перейти к следующему шагу.
Обновление: (6 октября 2020 г.) Этот репозиторий теперь содержит мой скрипт getWeather.py, это отличная новость, так как интерес снова вспыхнул, и что-то новое обязательно произойдет.
Шаг 3: Установка Weather-api и GetWeather Script
Итак, я отправил запрос PULL в CyntechUK для моего скрипта - надеюсь, они примут запрос, и вы можете пропустить загрузку моего репозитория. (они могут не захотеть включать мой код ты)
(6 октября 2020 г.) Запрос PULL был одобрен, мой скрипт getWeather теперь включен в репозиторий Weatherhat.
********* Вы все еще можете использовать эту информацию, если хотите, однако getWeather.py теперь включен в репозиторий weatherhat ******************* *****************
Мой репозиторий можно найти здесь:
github.com/kd8bxp/WeatherHAT/tree/getWeath…
и мой скрипт называется getWeather.py
ЕСЛИ они принимают запрос на перенос, у вас уже будет этот скрипт - в противном случае вам нужно будет клонировать репозиторий.
в вашем домашнем каталоге (/ home / pi) введите:
git clone https://github.com/kd8bxp/WeatherHAT.git getWeather
это клонирует репозиторий в каталог с именем getWeather, затем нам нужно проверить ветку getWeather.
cd getWeather
git checkout getWeather
**********************************************************************
Вам нужно будет записать cd в каталог weatherHAT, который был клонирован ранее, и
Нам нужно отредактировать скрипт getWeather.py для вашего местоположения.
нано getWeather.py
Вы должны увидеть строку, начинающуюся с
местоположение и заканчивается поиском (45042) - это мой почтовый индекс, я обнаружил, что он работает не так хорошо, как вы думаете
и закомментированная строка прямо над ним лучше работает с названием города. Это тот, который вы, вероятно, захотите использовать. Поэтому закомментируйте строку с почтовым индексом (#), раскомментируйте и измените название города.
*********** СТАРАЯ ИНФОРМАЦИЯ О YAHOO - Больше не требуется ***********
Нам нужно установить еще одну библиотеку, чтобы это работало, weather-api, которая является оболочкой для API погоды Yahoo.
pypi.python.org/pypi/weather-api/0.0.5
Установка проста -
pip install weather-api
***********************************************************************************
Теперь мы можем запустить скрипт:
sudo python getWeather.py &
& Позволит скрипту работать в фоновом режиме. Скрипт спит около 5 минут, а затем проверяет Yahoo Weather, если что-то изменилось - если да, он обновляет отображение. Время в 5 минут можно изменить, оно находится в нижней части скрипта.
сон (60 * 5)
Вы можете настроить задание crontab (помните, что его нужно запускать от имени пользователя root), которое будет запускать скрипт при каждой загрузке.
использовать:
sudo crontab -e
входить:
@reboot python /home/pi/weatherHAT/getWeather.py
Я думаю, это должно сработать - я еще не установил cron в своей системе.
Вот и все -
Как я уже сказал, это одна из моих первых программ на Python, и я уверен, что кто-то, кто знает больше, найдет лучший способ сделать это.
Я провел только ограниченное тестирование - я видел, как работают "Снег", "Дождь" и "Гроза", Есть некоторые условия, с которыми я пока не знаю, как с ними справиться - я приветствую идеи.
Шаг 4. Обновленная информация для: API Openweathermap
В сентябре 2020 года я обновил скрипт для использования API
ПРИМЕЧАНИЕ. Это было «быстрое» исправление для меня, и оно было протестировано в ограниченном объеме (последние несколько дней было пасмурно, и все, что я вижу, это облака и дождь). Хотя я считаю, что уловил все условия, которые легко исправить. display, возможно, я пропустил пару из-за того, насколько «быстро» это исправление было сделано. При этом, если вы считаете, что есть проблема, пожалуйста, оставьте комментарий, и если позволит время, я займусь этим - или попытаюсь указать вам правильное направление. *
Вам нужно будет зарегистрироваться для получения ключа API, используя ссылку выше. Когда вы редактируете скрипт для размещения вашего города, вы увидите место для ключа. Просто скопируйте и вставьте его, и все будет хорошо.
Прочие примечания:
Этот скрипт теперь использует «API текущих погодных данных», информацию об этом API можно найти здесь:
openweathermap.org/current Следует отметить, что вы можете использовать город, штат и страну.
IE: город "Дейтон" становится "Дейтон, Огайо, США". Обратите внимание, что коды штата и страны являются прописными, это обязательно. API говорит, что он может использовать только «Дейтон, Огайо», но я получил ошибки из сценария, когда я это сделал - и, поскольку это было быстрое исправление, я не разбирался почему. ТАК, я рекомендую использовать "город, штат, страна"
ЕСЛИ по какой-то причине вы не можете получить достоверную информацию, используя название города, вы также можете найти идентификатор города или использовать широту и долготу или почтовый индекс. В каждом случае URL-адрес необходимо будет изменить. Если вы нажмете на ссылку в правой части веб-сайта API, появится пример того, каким должен быть URL-адрес.
Вам также необходимо изменить URL-адрес в скрипте.
Еще больше заметок: 3 октября 2020 г
@Itsmedoofer указал, что им необходимо установить библиотеку python-запросов с новым обновлением. Я не уверен, что мне это было нужно (также возможно, что я установил его несколько лет назад, или разные версии python по умолчанию устанавливают разные библиотеки). Так что, если скрипт выдает ошибку с запросами на python, исправить это несложно.
введите эту команду в CLI: python -m pip install requests
и тебе должно быть хорошо.
Надеюсь, это сработает, так как это было быстрое исправление, и, возможно, однажды, если позволит время, я смогу немного поработать над его очисткой.
Обновление (6 октября 2020 г.) Запрос на перенос на github был принят, исходный репозиторий CyntechUK теперь включает этот скрипт. https://github.com/CyntechUK/WeatherHAT У пользователя Boeerb есть некоторые идеи о том, как отображать некоторые из условий, которые в настоящее время не отображаются, а также некоторые другие идеи для использования. Так что следите за этим хранилищем. И, надеюсь, что-то будет происходить.
Обновление: (8 октября 2020 г.) Open Weather Map содержит краткое руководство по настройке и использованию API, https://openweathermap.org/appid. Хорошее место для начала.
Рекомендуемые:
Система мониторинга погоды с использованием датчика Raspberry Pi3 и DHT11: 4 шага
Система мониторинга погоды с использованием датчика Raspberry Pi3 и DHT11: в этом руководстве я покажу вам, как подключить DHT11 к Raspberry Pi и вывести показания влажности и температуры на ЖК-дисплей. Датчик температуры и влажности DHT11 - это красивый маленький модуль. который обеспечивает цифровую температуру и влажность
Виджет отображения погоды в Интернете с использованием ESP8266: 4 шага
Виджет онлайн-отображения погоды Используя ESP8266: пару недель назад мы узнали, как создать онлайн-систему отображения погоды, которая получает информацию о погоде для конкретного города и отображает ее на OLED-модуле. Для этого проекта мы использовали плату Arduino Nano 33 IoT, которая является новой платой
Интернет-часы: отображение даты и времени с помощью OLED с использованием ESP8266 NodeMCU с протоколом NTP: 6 шагов
Интернет-часы: отображение даты и времени с помощью OLED с использованием ESP8266 NodeMCU с протоколом NTP: Привет, ребята, в этой инструкции мы создадим Интернет-часы, которые будут получать время из Интернета, поэтому этому проекту не потребуется RTC для запуска, ему понадобится только рабочее подключение к Интернету И для этого проекта вам понадобится esp8266, который будет иметь
Отображение матрицы погоды: 4 шага (с изображениями)
Матричный дисплей погоды: О проекте Я покажу вам, как создать мини-дисплей состояния погоды из матричного дисплея 8x8. Я буду использовать Genuino MKR1000 для получения информации о температуре, влажности и погодных условиях в выбранном месте. Показать статус для отображения. вскользь
Отображение времени и погоды Arduino 3-в-1: 11 шагов
Отображение времени и погоды Arduino 3-в-1: мне нравятся микроконтроллеры PIC, и мне нравится программировать на языке ассемблера. Фактически, за последние пару лет я разместил на своем веб-сайте около 40 проектов, основанных на этой комбинации. Недавно я заказывал запчасти в одном из моих любимых US v