Оглавление:

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

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

Видео: Интернет-метеостанция Raspberry Pi: 5 шагов (с изображениями)
Видео: Первый взгляд на Raspberry Pi 5. Тест Памяти и CPU. Установка Home Assistant Operation System. 2024, Июль
Anonim
Интернет-метеостанция Raspberry Pi
Интернет-метеостанция Raspberry Pi
Интернет-метеостанция Raspberry Pi
Интернет-метеостанция Raspberry Pi

*** Обновлять ***

Это руководство устарело. Службы погоды для данных о погоде, используемые в этой инструкции, больше не работают. ОДНАКО, есть альтернативный проект, который делает в основном то же самое (только лучше - этот Instructable всегда был просто взломом). Итак, вот ссылка, по которой вы захотите перейти:

https://piweatherrock.technicalissues.us/

Большое спасибо Джину Ливерману из PiWeatherRock за то, что он взял на себя роль в этом проекте.

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

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

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

Gen 1 - метеостанция Lunchbox Pi
Gen 1 - метеостанция Lunchbox Pi
Gen 1 - метеостанция Lunchbox Pi
Gen 1 - метеостанция Lunchbox Pi

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

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

Шаг 2: Поколение 2 - HDMI-монитор + чехол для игровых автоматов из оргстекла с лазерной резкой

Поколение 2 - HDMI-монитор + чехол из оргстекла для лазерной резки плексигласа
Поколение 2 - HDMI-монитор + чехол из оргстекла для лазерной резки плексигласа
Gen 2 - HDMI-монитор + чехол из оргстекла для лазерной резки плексигласа
Gen 2 - HDMI-монитор + чехол из оргстекла для лазерной резки плексигласа
Поколение 2 - HDMI-монитор + чехол из оргстекла для лазерной резки плексигласа
Поколение 2 - HDMI-монитор + чехол из оргстекла для лазерной резки плексигласа

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

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

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

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

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

Настройка Pi
Настройка 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. Команда dd занимает около пяти минут. По завершении запустите «синхронизацию», чтобы промыть трубы.
  4. Установите SD-карту в Pi и перезагрузитесь. Убедитесь, что Pi подключен к сети Ethernet.
  5. Используя страницу «Подключенные устройства» на маршрутизаторе, найдите IP-адрес нового Pi.
  6. Войдите в систему Pi, используя "ssh [email protected]. ???" куда ??? IP-адрес сверху. Пароль будет «малиновый».
  7. На Pi используйте команду «raspi-config» для установки значений по умолчанию.

    1. Включите автоматическую загрузку в графическом интерфейсе.
    2. Установите имя хоста, например, «MyPi».
  8. Установите VNC на Pi с помощью «sudo apt-get install tightvncserver».

    Запустите "tightvncserver", который устанавливает пароль

  9. Вернувшись в большую коробку Linux, используйте «Удаленный рабочий стол» для просмотра рабочего стола графического интерфейса Pi.

    1. Установите Протокол на «VNC» и номер IP на «192.168.1.???:1». Обратите внимание на «: 1» в конце номера IP.
    2. Нажмите кнопку подключения и введите пароль VNC.
    3. Бинго, удаленный рабочий стол с графическим интерфейсом Pi!

      Это избавляет от необходимости перетаскивать монитор, клавиатуру и мышь для подключения к новому Pi

    4. На рабочем столе запустите значок настройки WiFi. Настройте новый Pi / USB WiFi для подключения к сети.
    5. Закройте соединение VNC - теперь мы закончили с удаленными рабочими столами.
  10. Вернувшись в окно ssh, перезагрузите Pi с помощью команды «sudo reboot». Отсоедините кабель Ethernet, так как Wi-Fi настроен.
  11. Вернувшись к домашнему маршрутизатору, найдите новый IP-номер, который Pi использует с Wi-Fi.
  12. Используя ssh, снова войдите в систему, используя новый IP-адрес. На этот раз подключение будет через Wi-Fi.
  13. Используя диспетчер файлов в Linux, подключитесь к Pi с помощью команды «подключиться к серверу».

    Адрес сервера: «sftp: //192.168.1. ??? / home / pi»

  14. Базовая настройка завершена.

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

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

    1. компакт-диск pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py установить
  4. Выполнено.

Обновление, я забыл о двух других вещах:

  1. На Pi выполните следующую команду:

    1. sudo apt-get install avahi-daemon

      Это позволяет подключаться к Pi по имени. Итак, на своем основном компьютере вы можете подключиться как «ssh [email protected]» вместо использования IP-адресов. При наличии нескольких Pi в сети их легко запутать, если они не называются по имени

    2. sudo raspi-config

      1. Найдите и запустите четвертый вариант под названием «Параметры интернационализации» и установите часовой пояс.
      2. С установленным часовым поясом и запущенным ntpd (демон сетевого протокола времени) Pi всегда будет отображать правильное время с точностью до пары миллисекунд! Должен любить это.
  2. Хорошо, теперь мы снова закончили.

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

Исходный код
Исходный код

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

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

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

  1. cd Погода
  2. sudo python weather.py

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

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

  1. Используя ssh, запустите "sudo vi /etc/rc.local"
  2. Непосредственно перед последней строкой, в которой написано «exit 0», добавьте в строки следующие строки.

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

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

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

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

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

Чтобы узнать о последних и наиболее важных обновлениях, посетите мой веб-сайт ph-elec.com.

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

Спасибо, Джим.

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

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

Шаг 5. Обновление показателей

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

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

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