Интернет-метеостанция Raspberry Pi: 5 шагов (с изображениями) | 2022

Содержание

Это Учебное пособие покажет вам, как построить действительно классную метеостанцию ​​на базе Raspberry Pi. На самом деле, называть эту сборку метеостанцией — не совсем понятно. Эта сборка может быть легко расширена, чтобы обеспечить гораздо больше, чем просто погода. Тем не менее, это хорошее начало, и это выглядит очень круто на моем столе.

Нашей семье (хорошо, в основном мне) понравилось, когда семейный iPad на кухонном столе, когда он не используется, тихо показывает текущие погодные условия. Тем не менее, загружать и выгружать iPad внутрь и из чехла аркадной подставки очень сложно. Кроме того, как раз когда я иду посмотреть погоду, я обнаруживаю, что кто-то взял iPad / дисплей погоды. Необходим постоянный настольный дисплей, который дети не будут размахивать, как iPad.

Расходные материалы:

Шаг 1: Поколение 1 — метеостанция Lunchbox Pi

Моей первой мыслью было использование небольшого композитного видео дисплея. Я взял тот, что на картинке на Ebay, за 22 доллара — просто поищите на 4,3-дюймовом TFT LCD автомобильном мониторе заднего вида Car Monitor. Разрешение дисплея составляет 656 на 416 пикселей, что вызывающе затрудняет отображение большого количества полезной информации! Дисплей требует 12 В постоянного тока в качестве напряжения питания. Разумеется, Raspberry Pi нужно 5 В постоянного тока в качестве напряжения питания. Чтобы решить эту проблему, я купил дешевое автомобильное зарядное устройство USB от Amazon. Приблизительно за 6 долларов я нашел автомобильный чейнджер на 5 В постоянного тока на 2 А. Поэтому в коробке для завтрака есть внешний блок питания от бородавок 12 В пост. 12 В постоянного тока обеспечивает питание дисплея напрямую. 12 В постоянного тока также поступает на автомобильное зарядное устройство USB, которое понижает напряжение до регулируемого 5 В постоянного тока. Как последний взлом, я припаял пару проводов прямо между автомобильным зарядным устройством и Raspberry Pi — не моя лучшая идея.

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

Шаг 2: Gen 2 — HDMI-монитор + лазерная резка из плексигласа

Вернувшись на eBay, я обнаружил симпатичный HDMI-монитор с открытой рамкой стоимостью 54 доллара и разрешением 800×600. По определению, для открытой рамки нужно установить рамку. Так как привлекательность коробки для завтрака уже давно закончилась, настало время для лазерной резки акрила. У моего местного хакера Space i3Detroit есть действительно хороший 150-ваттный резак, который может сделать фарш из 4,5 мм акрила.

Я свободно основал свой аркадный корпус на аркадной коробке iPad. Если я когда-нибудь сделаю дизайн Gen 3, он непременно включит съемный / выдвижной лоток для Pi. Оказывается, это большая боль в шее, пытаться подключить вещи к Пи, так как между Пи и боковыми стенами не так много места.

Для монитора HDMI также требуется питание 12 В пост. Итак, я снова использовал тот же трюк с автомобильным зарядным устройством USB. На этот раз, однако, я разрубил старый USB-кабель, поэтому паяные провода на Pi не требовались.

Если кто-то заинтересован в аркадном деле, оставьте комментарий ниже, и я буду загружать файлы DXF. Или файлы находятся на моем веб-сайте ph-elec.com.

Шаг 3: Настройка Pi

Установить новый Raspberry Pi с необходимым программным обеспечением не так сложно. Все программное обеспечение написано на Python только с одним добавленным модулем Python. Дополнительный модуль Python называется pywapi. Вот ссылка, где вы можете скачать модуль. Этот модуль позволяет легко получать информацию о погоде в реальном времени с Yahoo, Weather.com или NOAA.

Перво-наперво, вот контрольный список для настройки сырого Raspberry Pi:

  1. Загрузите последнюю версию Raspbian (Debian Wheezy). Разархивируйте, чтобы получить файл .img.
  2. Запишите на SD-карту следующее: dd bs = 4M if = 2014-09-09-wheezy-raspbian.img of = / dev / sdb
  3. Команда дд занимает около пяти минут. Когда закончите, запустите sync, чтобы очистить трубы.
  4. Установите SD-карту в Pi и перезагрузите компьютер. Убедитесь, что есть соединение Ethernet с Pi.
  5. Используя страницу Подключенные устройства на маршрутизаторе, найдите IP-адрес нового Pi.
  6. Войдите в Pi, используя ssh [email protected] . где . это номер IP сверху. Пароль будет малина.
  7. На Pi, используйте команду raspi-config, чтобы установить значения по умолчанию.
  1. Включите автоматическую загрузку в GUI.
  2. Установите имя хоста что-то вроде MyPi.
  1. Запустите quietvncserver, который устанавливает пароль.
  1. Установите для протокола значение VNC, а для номера IP — 192.168.1. 1. Обратите внимание на : 1 в конце номера IP.
  2. Нажмите кнопку подключения и введите пароль VNC.
  3. Бинго, удаленный рабочий стол GUI Pi!
  1. Это позволяет избежать перетаскивания монитора, клавиатуры и мыши для подключения к новому Pi.
  1. Адрес сервера: sftp: //192.168.1. . / home / pi.

Далее необходимо загрузить и установить pywapi. Опять же, это не так уж сложно с помощью следующих шагов:

  1. Загрузите последнюю версию отсюда. Распакуйте архив в новый каталог.
  2. Используя File Manger, скопируйте каталог в домашний каталог Pi.
  3. Используя ssh, сделайте следующее на Pi:
  1. cd pywapi-0.3.8
  2. sudo python setup.py build
  3. sudo python setup.py установить

Обновление, я забыл упомянуть две другие вещи:

  1. На Пи выполните следующую команду:
  1. sudo apt-get установить avahi-daemon
  1. Это позволяет подключаться к Pi по имени. Итак, на вашем главном компьютере вы можете подключиться как ssh [email protected] вместо использования IP-номеров. С несколькими пи в сети их легко запутать, если они не вызваны по имени.
  1. Найдите и запустите 4-ую опцию под названием Параметры интернационализации и установите часовой пояс.
  2. Если установлен часовой пояс и ntpd (демон сетевого протокола времени), Pi будет всегда отображать правильное время с точностью до пары миллисекунд! Должен любить это.

Шаг 4: Исходный код

Весь исходный код для этого небольшого отображения погоды основан на Python, PyGame и Pywapi. Все с открытым исходным кодом / бесплатное программное обеспечение.

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

Чтобы запустить мой исходный код, просто разархивируйте вложение и скопируйте весь каталог на Pi, используя File Manage. После копирования запустите код, используя следующие команды ssh:

Команда sudo необходима для того, чтобы Python мог контролировать / читать контакты GPIO. Возможно, есть какое-то средство обойти это ограничение, но оно ускользает от меня.

Как только все заработает с использованием ssh, пришло время автоматически запускать погоду при перезагрузке. Это тоже очень легко сделать.

Непосредственно перед последней строкой, которая говорит выход 0, добавьте следующую строку в строки.

  1. cd / home / pi / погода
  2. sudo python weather.py err.log

Это автоматически запустит приложение погоды на Pi после перезагрузки. Если позже вы захотите отключить это, просто используйте ssh для редактирования файла и добавьте символ комментария # перед обеими строками и перезагрузите компьютер.

Обратите внимание, мой исходный код — большой взлом, и я не очень горжусь этим. Однако, если бы я подождал, пока он не станет презентабельным, он никогда не будет представлен. Так что бери или оставляй, только не плачь, потому что у меня очень тонкая кожа.

Несколько других замечаний по поводу моего кода. Там вы обнаружите некоторый код для общения с устройством X10. Это была моя попытка управлять внешними полюсными фонарями, которые находятся по адресу A3. Я просто хотел, чтобы лампы включались в сумерках и выключались на рассвете. Кажется, достаточно легко, и я думал, что у меня это работает. Используя ключ USB-to-RS232 на Pi, я подключил модуль CM11A X10. CM11A — это старый макромодуль X10. CM11A также имеет порт RS232, который позволяет управлять шиной X10. Кажется, все еще есть некоторые ошибки, потому что огни фонарного столба не получают сообщение!

Также следует отметить, что на большом дисплее есть хороший открытый промежуток вдоль правой стороны дисплея. Мой план — добавить несколько индикаторов состояния в этой области. Я играю с некоторыми радиостанциями IEEE802.15.4, и их выходы однажды появятся в этом открытом месте.

Для получения последних обновлений посетите мой веб-сайт ph-elec.com.

Что ж, дайте мне знать в разделе комментариев ниже на любые ваши вопросы.

О, и не забудьте проголосовать за меня! Еще раз спасибо.

Кстати, на моем веб-сайте всегда есть больше информации: www.ph-elec.com

Шаг 5: Обновление метрики

Прилагается новая версия, которая позволяет отображать метрическую или имперскую.

Надеюсь это поможет,

31 человек сделали этот проект!

umi4sbc сделал это!

ДаниэльŘ691 сделал это!

PatrykR2 сделал это!

kfite13 сделал это!

GranPI2 сделал это!

E_Alves сделал это!

RonH54 сделал это!

hwdornbush сделал это!

Кальмат сделал это!

Кальмат сделал это!

Вборрелли сделал это!

Кальмат сделал это!

Вборрелли сделал это!

Кальмат сделал это!

Кальмат сделал это!

Techninja2143 сделал это!

rbischoff1 сделал это!

Zephram33 сделал это!

родной город сделал это!

EnriqueH7 сделал это!

Strex сделал это!

Авиаторбья сделала это!

Дебас сделал это!

JeremyB69 сделал это!

jimk3038 сделал это!

jimk3038 сделал это!

JeffP12 сделал это!

спасение даже сделал это!

TracyP17 сделал это!

kdthorne сделал это!

dario.maxall сделал это!

Смотрите еще 22

Вы сделали этот проект? Поделитесь этим с нами!

рекомендации

1986 Raspberry Pi Видео дверной звонок

Вертикальная аркада Bartop со встроенным светодиодным дисплеем PIXEL

Интернет вещей

Arduino Contest 2019

Конкурс Цвета радуги

Конкурс классной науки

103 обсуждения

Вопрос 6 недель назад

Привет. Кто-нибудь посоветует, как изменить это значение, чтобы обновлять погоду через 15 минут? Спасибо и еще раз большое спасибо всем, особенно автору проекта!
wPeriod = (6,10,14,21,25,29,36,40,44,51,55,59) # Периоды обновления погоды. ДОЛЖНЫ быть за пределами периодов новостей (рассчитывается как nPeriod + nTime)

Вопрос 7 недель назад

всем привет
как изменить код для использования данных о погоде и информации о погоде под землей с моей персональной метеостанции?
большое спасибо 🙂

Вопрос 7 недель назад

Здравствуйте! Может кто-нибудь посоветовать, пожалуйста, как получить hPA вместо mb? Изменение значения ничего не делает 🙁
baroUnits = 'mb'
baroScale = 29,529980164712

Вопрос 2 месяца назад

Здравствуйте все! Прежде всего, спасибо за этот урок. Может кто-нибудь подскажите, пожалуйста, как перевести направление ветра на чешский? Я переписал эти строки в файле wtranslat.py для определения wtranslat.py на def TranslateWindDir (code):
значение = int ((код / ​​22,5) + 0,5)
dir = S, SSV, SV, VSV, V, VJV, JV, JJV, J, JJZ, JZ, ZJZ , Z, ZSZ, SZ, SSZ не отображаются. Остальная часть перевода прекрасно работает! Спасибо за ответ!

Вопрос 6 месяцев назад на Введение

Я все настроил, и он работает, но когда погода требует переменную облачность, она падает.
Я получил:
Новое Погодное Обновление: 03/03/18 15:53 ​​ПО ВОСТОЧНОМУ ВРЕМЕНИ
Икона индекса: 29 34 39 38
Traceback (последний вызов был последним):
Файл /home/pi/weather/weather.py, строка 806, в
myDisp.disp_weather ()
Файл /home/pi/weather/weather.py, строка 340, в disp_weather
icon = pygame.image.load (sd + icons self.icon 0). convert_alpha ()
pygame.error: Не удалось открыть значки / partly_cloudy.png
Файл находится там и имеет те же права доступа, что и другие значки.

Ответить 3 месяца назад

Вы когда-нибудь выясняли, как решить эту проблему?

Ответить 3 месяца назад

Нет, моя работа заключалась в том, чтобы настроить bash, поэтому, когда я запускаю терминал, он перейдет в каталог и запустит программу. Поскольку я использую только этот Pi в качестве сервера печати и метеостанции, я живу с ним.

Я пытаюсь заставить это запускаться при запуске автоматически. Когда я добавляю команду для ее запуска в rc.local, я получаю следующую ошибку при загрузке:
KeyError — Ошибка погоды
Ошибка: нет данных от Weather.com
Если я запускаю программу вручную из CLI, она работает как положено.
Кто-нибудь еще сталкивался и решил эту проблему?

Вопрос 4 месяца назад

Мне очень нравится этот проект, и я также получаю его довольно легко с 7-дюймовым сенсорным дисплеем. Я попытался посмотреть, смогу ли я отображать время с AM / PM до 24-часового режима. Кто-нибудь делал это раньше?

Ответить 4 месяца назад

Привет,
какой у вас 7-дюймовый сенсорный дисплей (где вы его покупаете)?
Спасибо

Ответить 4 месяца назад

Я приобрел официальный 7-дюймовый сенсорный экран Rasberry и приобрел его у местного продавца в Хельсинки. Вот пример этого экрана: http://www.upcitemdb.com/upc/640522710829

Ответить 4 месяца назад

Спасибо
вы используете с питоном 2 или 3?

Ответить 4 месяца назад

моя версия Python 2.7.13
У меня ранее были проблемы с настройками экрана, но я изменил драйверы строк = 'fbcon', 'directfb', 'svgalib' на drivers = 'X11', 'X11', 'X11'

Ответить 4 месяца назад

с питоном 3 программа не работает. Как установить питон 2.7 на малину?

Ответить 4 месяца назад

Вам нужно изменить несколько строк кода:
в функции: def disp_weather (self):
— изменить
tm1 = time.strftime (% a,% b% d% I:% M, time.localtime ()) totm1 = time.strftime (% a,% b% d% H:% M, время. localtime ()) — изменить строку
self.screen.blit (rtm3, (tp + tx1 + tx2, self.tmdateYPos)) в # self.screen.blit (rtm3, (tp + tx1 + tx2, self.tmdateYPos)) (комментарий)
Это даст вам 24 часа времени
0

Ответить 4 месяца назад

Благодаря @CynosureS, работал хорошо и очень легко реализовать

Совет 4 месяца назад

Вот как установить ваше местоположение: в строке 164 (self.w = pywapi.get_weather_from_weather_com ('48085', units = 'imperial'))) замените 48085 на свой собственный почтовый индекс.

vince84 Пикмин Инжиниринг

Ответить 4 месяца назад

Привет,
какой у вас 7-дюймовый сенсорный дисплей (где вы его покупаете)?
Спасибо

Существует ли / dev / gpiomem? В этом случае RPi.GPIO должен использовать это устройство для доступа к GPIO. Если / dev / gpiomem не существует, попробуйте: sudo rpi-update

чтобы убедиться, что вы используете последнее ядро, и
sudo apt-get update
sudo apt-get upgrade

чтобы убедиться, что вы используете недавний RPi.GPIO.
Вам также необходимо убедиться, что вы являетесь участником группы gpio:
sudo adduser pi gpio

ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ
Я не уверен, что это проблема Raspbian или (более вероятно) raspberrypi.org.
Убедитесь, что / dev / gpiomem имеет правильные разрешения.
$ ls -l / dev / gpiomem
crw-rw —- 1 root gpio 244, 0 Dec 28 22:51 / dev / gpiomem

Если это не так, установите правильные разрешения следующим образом

sudo chown root.gpio / dev / gpiomem
sudo chmod g + rw / dev / gpiomem
— это должно дать доступ GPIO без sudo —0

Вопрос 7 месяцев назад

Хорошо .. как мне установить мое местоположение / город / город? Я могу видеть любое место, чтобы сделать это, так что я думаю, что это просто Получение города часового пояса? Точно сказать не могу. У кого-нибудь есть идеи?


Источник: ru.howtodogood.com