История метеостанции «Синяя Яма»
От трёх проводков до магнитных бурь
Всё началось с простого желания — знать, сколько градусов за окном в деревне под Новосибирском, где центральная метеослужба часто «врёт» из-за перепадов рельефа и застройки. Сначала это была голая Raspberry Pi, к которой я припаял три датчика DS18B20 и назвал точки: «Ружа», «Комната жениха», «Спальня». Никакого веб-интерфейса — только SSH и cat /sys/bus/w1/devices/.... Но работало! А потом всё заверте~1
Этап 1: Первая визуализация (Конец ноября 2025)
- Появился простейший PHP-скрипт, который читал данные и выводил их на веб-страницу.
- Добавлена ручная запись в CSV — началась история.
- Первый график — ломаная линия температуры в
<canvas>(да, без js-визуализации).
Этап 2: Появление «микроклимата» (начало декабря 2025)
- Подключили BME280 — и мир стал трёхмерным: температура, влажность, давление.
- Научились переводить гектопаскали в мм рт.ст., чтобы сравнивать с нормой Новосибирска (736–756 мм).
- Появился прогноз по трендам: «если давление падает — будут осадки».
Этап 3: (Не)Большие данные и Grafana (Начало декабря 2025)
- Данные начали уходить в InfluxDB через Mosquitto (MQTT).
- Появился Grafana-дашборд с панелями на 6 ч, 3 дня, неделю.
Этап 4: Геомагнитные бури вошли в дом (~8 декабря 2025)
- Был интегрирован Kp-индекс из NOAA: фактический и прогнозный на трое суток.
- Научил систему определять уровни магнитных бурь (G1–G5) — и предупреждать за сутки.
- Добавил отдельный график геоактивности с фактом и прогнозом.
Этап 5: Метеостанция вышла в люди(12 Декабря 2025)
- Запустили Telegram-бота @bluepit_bot — чтобы погода была в кармане.
- Создал виджет —
Ловит даже на парковкеТеперь виджет можно как открыть в браузере, так и установить как автономное приложение на телефон или ПК, как PWA
Этап 6: Больше функционала и фишечек!
- Добавил всплывающие подсказки при наведении на влажность и KP-индекс
- Добавил прогноз по трендам давления, влажности и температуры:
- Туман
- Гололёд
- Осадки / ясно
- Похолодание / потепление
- Добавил алерты в telegram о предстоящих и текущих магнитных бурях
- Добавил симпатичную визуализацию Новосиба
- Добавил всплывающие подсказки при наведении на влажность и KP-индекс
Этап 7: Поддержка и сообщество
- Появился QR-код для пожертвований — чтобы проект мог развиваться.
- Повысил уровень безопасности: Переделал архитектуру с варианта «на коленке» в более production-like вариант.
- Запустил публичный changelog и задумался об истории проекта — вот она!
Сегодня «Синяя Яма» — это не просто датчики на стене. Это локальная погодная экосистема, которая помогает не только мне, но и (судя по всему) другим жителям нашего Простоквашино знать, когда надеть шапку, взять зонт… или приготовиться к магнитной буре.
Что дальше?
- Автоматические уведомления о бурях и метеоусловиях на основе трендов в Telegram.
- Анемометр (как только бюджет позволит!).
- Датчик качества воздуха (Туда же, куда и анемометр).
- Ротация симпатичных визуализаций Новосиба в зависимости от погоды.
- Чего-нибудь еще прикручу.
Changelog(нажми, чтобы увидеть)
Changelog
v0.9
- Добавил милую визуализацию Новосибирска к плагину
- Добавил к плагину ссылки на tg-бота, weatherChangelog и qr-код
- Написал Историю в weatherChangelog и собственно сам changelog, который вы сейчас читаете
v0.8
- Добавил прогнозы по трендам давления, влажности и температуры
- Добавил предупреждение в плагин касательно магнитных бурь
- Добавил аннотации к графане, отмечающие магнитные бури по прогнозу и по факту
- Добавил закрытое API
- Написал простого telegram-бота, который может получать по API метрики, а также алерты о предстоящих\текущих «метеопроблемах»(гололёд, геомагнитные бури и тд)
- Бот теперь может слать сообщения о геомагнитных бурях
- Добавил qr-код для донатов(а что, а вдруг?)
- Актуализировал виджет, с учетом всех последних обновлений
v0.6
- Добавил js-график геомагнитной активности к плагину
- вернул ебуняку\жаришку
- Исправил жирный баг с отображением js-графиков из-за которого график геомагнитной активности показывал что-то не то
v0.55
- Настраивал дашборд в графане, чтобы заставить её корректно отображать данные графика геомагнитной активности(с текущими данными всё ок, проблема возникла с отображением данных в будущем времени, т.е. с прогнозами)
- Переписал скрипт, который пушит данные в history и influxdb, чтобы привести json с геомагнитными данными к единому виду, проблема была с разными форматами timestamp
- Починил отображение графика с геомагнитной активностью в графане, добавил на публичный дашборд
v0.5
- Отказался от виджета KWGT(работает плохо, требует доп. приложений, плохо масштабируется на массовую аудиторию, ломает красоту оригинального виждета)
- Вернулся к оригинальному виджету, добавил PWA, теперь через браузер можно установавливать как приложение на телефон\ПК
- Написал отдельный скрипт, получающий данные геомагнитной активности от NOAA
- На стороне NOAA данные обновляются раз в 3 часа, поэтому нет смысла дёргать скрипт чаще, вместе с остальными данными
- Были другие варианты, от них пришлось отказаться впоследствии: Немцы не отдают json нормально, отечественные обсерватории либо не дают актуальных данных, либо не дают прогнозных, только уже свершившийся факт.
- Переписал скрипт, который пушит данные в mqtt и influx, чтобы отправлять данные геомагнитной активности.
- Сломал «ощущается как ебуняка\жаришка»
v0.4
- Добавил страницу с дашбордами grafana, добавил панелей с влажностью и давлением
- Создал виджет для телефона
- Создал виджет для телефона c помощью KWGT(немного порушил предыдущий виджет)
- Добавил «ощущается как ебуняка\жаришка»
v0.3
- Собрал датчик BME280, добавил поддержку необходимых библиотек на p1
- получил данные в raw-формате
- Переписал скрипт, отправляющий данные(ds18b20+BME280) с p1 в mqtt
- Переписал скрипт, отправляющий данные в history и в influxdb
- Добавил к js-графикам графики давления и влажности
v0.2
- Поднял grafana и создал дашборд метеостанции
- Переписал скрипт обработчик, данные теперь не только в history, но и в grafana, через influxdb
- Добавил js-графики к wp-плагину
v0.1
- Написана самая первая версия wp-плагина
- Написан скрипт, который пишет данные из mqtt в history
- Скрипт работает как сервис
v0.05
- Датчики выведены в стратегические места
- Написан скрипт, который пушит данные в mqtt
- Скрипт работает как сервис
- Поднят сервер mqtt
- It`s Alive!
v0.01
- Собрал на коленке станцию на p1
- Прикрутил к ней 3 датчика ds18b20
- Получил данные температур в raw-формате
- It`s Alive!

Заметеорел мужик!