Сборка уличной метеостанции на Raspberry Pi 2 и ADS‑WS1
В Bloominglabs недавняя покупка метеостанции ADS‑WS1 — блока с последовательным выходом — спровоцировала проект по выводу данных в сеть с помощью Raspberry Pi 2. Станция фиксирует направление и скорость ветра, осадки, температуру и влажность. Pi, запитанный по PoE и размещённый в водонепроницаемом корпусе на мачте, читает последовательный поток и публикует данные в сети.
Шаг 1: Список компонентов
- 1) Метеостанция ADS‑WS1 (подойдёт любая с последовательным выходом)
- 2) Raspberry Pi (любая модель; использовали Pi 2)
- 3) Адаптер последовательный-USB (например, FTDI)
- 4) Последовательный кабель с минимум одним женским DB9
- 5) Ethernet-кабель достаточной длины
- 6) Блок питания 5 В, 1–2 А
- 7) Погодостойкий корпус
- 8) (Опционально) Подавитель импульсов по Ethernet
- 9) (Опционально) PoE-инжекторы/адаптеры
ADS‑WS1 потребляет всего 50 мА, поэтому её можно питать прямо от Pi или от того же источника. Дополнительную документацию см. на вики Argent Data.
Шаг 2: Установка ОС на Raspberry Pi 2
Подойдёт любая ОС для Raspberry Pi; мы использовали Raspbian 7.1 на SD-карте 8 ГБ. Следуйте официальному руководству по установке для записи образа, вставки карты и включения питания. Для первичной настройки удобны локальный HDMI-монитор и USB-клавиатура. Raspbian обычно получает IP по DHCP, но для мачтово-го устройства рекомендуется статический адрес.
После загрузки подключите USB-последовательный адаптер. Raspbian автоматически определит его как /dev/ttyUSB0. Проверьте командой ls /dev/ttyUSB* или lsusb:
[email protected] ~ $ ls /dev/ttyUSB* /dev/ttyUSB0
[email protected] ~ $ lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Настройте статический IP, отредактировав /etc/network/interfaces:
iface eth0 inet static address 192.168.x.x netmask 255.255.255.0 gateway 192.168.x.x
Установите нужные пакеты:
sudo apt-get install apache2 wget minicom weewx
Скачайте вспомогательный скрипт weather.sh для тестирования:
wget -O weather.sh "https://server1.nuge.com/~weather/software/weather-…"
Если URL недоступен, возьмите свежую версию здесь. Добавьте пользователя pi в группу dialout для доступа к последовательному порту: sudo usermod -a -G dialout pi.
Шаг 3: Установка и настройка weewx
Weewx опрашивает последовательный порт, парсит данные различных метеостанций и отдаёт веб-интерфейс с графиками. Отредактируйте /etc/weewx/weewx.conf, отражая детали вашей станции. Файл самодокументированный; измените location, WEEWX_ROOT и другие настройки по необходимости.
Включите автозапуск при загрузке:
sudo update-rc.d apache2 defaults 99 2 sudo update-rc.d weewx defaults 99 2
Теперь Pi будет запускать Apache и weewx при каждом включении.
Шаг 4: Подключение последовательного кабеля и питания
Требуются только три информационных и два питания провода. Используйте контакты DB9: 2 (TX), 3 (RX) и 5 (GND) для подключения к последовательному разъёму станции. Снимите внешнюю изоляцию и внутреннюю изоляцию жил (¼″). Проверьте распиновку мультиметром.
Подайте питание на станцию от 5-В источника — либо от 5-В выхода Pi, либо от отдельного 5/12-В блока. Плюс к клемме «DC in», минус к нижнему входу GND.
Для уличной установки мы использовали PoE-адаптеры: Pi и метеостанция делят одну линию 5 В. Защитите соединения термоусадкой и поместите в погодостойкий корпус NEMA 4. Если Pi питает станцию, можно убрать microUSB-разъём и пропустить питание через PoE-сплиттер.
Шаг 5: Проверка приёма последовательных данных
Подайте питание на Pi и станцию. Запустите minicom для подтверждения последовательной связи. Если прошивка ADS‑WS1 требует обновления, см. официальное руководство по командам. Когда станция начнёт выдавать регулярные данные, выполните ./weather.sh для проверки корректного парсинга.
Шаг 6: Подготовка к уличной эксплуатации
Поместите электронику в погодостойкий корпус. Для точных показаний температуры и влажности рассмотрите установку экрана Стивенсона — вентилируемого затенённого бокса, защищающего датчики от прямого солнечного излучения. Пока достаточно простого PVC-корпуса NEMA 4, хотя он может давать смещение 10–15 °F и не позволять измерять влажность. Будущие апгрейды включат настоящий экран Стивенсона.
Более подробное руководство см. в справочнике Raspberry Pi 2 Weather Station.
Производственный процесс
- DIY солнечная метеостанция на Raspberry Pi
- Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
- Удалённый мониторинг погоды на Raspberry Pi 3 с PubNub
- Компактный breakout для DHT температуры и влажности на Raspberry Pi — ATtiny85 и DHT22/DHT11
- Интеграция метеостанции с CWOP: практическое руководство
- Создание профессионального универсального пульта на Raspberry Pi с LIRC
- Преобразование RF в DC с Raspberry Pi: сборка и отладка детектора огибающей
- Cycle Chaser: превратите свой велосипед в ночной световый шоу с Raspberry Pi
- Создание детектора вора на базе Raspberry Pi — пошаговое руководство
- Создайте домашний монитор температуры на Raspberry Pi с MCP9808, InfluxDB и Grafana