Skip to content

Offline-сеть мониторинга воздуха: Meshastic + DIY

reviewed: 10 July 2026

Концепция

Сервис развивается в сторону устойчивости к ограничениям и внешнему давлению. В регионах с плохим воздухом власти часто противодействуют независимым метеостанциям и частным датчикам. Цель — создать инфраструктуру гражданского мониторинга, которая работает независимо от доступа в интернет, провайдеров и юрисдикции.


Ключевое противоречие: геолокация vs анонимность

Карте нужны точные координаты — пользователь хочет видеть качество воздуха в своём районе. Анонимности нужна скрытность — регулятор не должен вычислить адрес устройства.

Приватность — свойство системы, а не результат поведения пользователя. Система не должна полагаться на то, что пользователь «будет осторожен».


Варианты решения проблемы геолокации (полный перебор)

Перед тем как прийти к финальной архитектуре, были рассмотрены и отвергнуты следующие подходы:

Вариант 1: Огрубление координат

DIY-устройства передают координаты, но на карте отображаются с точностью до квартала (1–2 км).

  • Плюс: карта остаётся полезной
  • Минус: если в квартале одна точка — адрес вычисляется тривиально
  • Минус: регулятор видит то же самое
  • Вердикт: не решает проблему

Вариант 2: Рандомизированный джиттер (случайный сдвиг)

Каждая публикация координат — со случайным смещением (до 500 м). В среднем данные точны, конкретная точка «плавает».

  • Плюс: по одной публикации адрес не вычислить
  • Минус: по серии публикаций центроид (средняя точка) вычисляется элементарно
  • Минус: стационарное устройство всё равно усредняется к одному адресу
  • Вердикт: не решает проблему для стационарных устройств

Вариант 3: Отложенная геолокация

Координаты появляются на карте через 24–48 часов после публикации.

  • Плюс: реальное время ≠ реальное местоположение на карте
  • Минус: для стационарного устройства задержка не имеет значения — адрес всё тот же
  • Вердикт: не решает проблему для стационарных устройств

Вариант 5 (отвергнут): Шум от телефонных пользователей

Идея: пользователи с телефона передают точный GPS, создавая «шум», маскирующий DIY-устройства.

  • Почему не работает: пользователь будет скидывать фото из дома каждое утро. Через неделю у регулятора семь точек с одного адреса. Это не «шум» — это второй массив стационарных точек с точным GPS.
  • Вывод: человек — самое слабое звено в собственной приватности. Нельзя полагаться на то, что пользователь запомнит «гулять по району перед отправкой». Приватность — свойство системы, а не результат поведения пользователя.

Финальная архитектура: карта без точек (№4 + №6)

1. DIY-устройство не передаёт координаты (№4)

Что передаёт устройство Что НЕ передаёт
ID устройства GPS-координаты
Значение PM2.5 (подписанное Ed25519) WiFi-сети вокруг
Timestamp MAC-адреса
IMEI / SIM-информацию

Привязка к району — через шлюз: - Устройство находится в зоне действия шлюза по LoRa - Данные публикуются от имени района (не точных координат) - Регулятор знает: «в районе ~N устройств» - Регулятор не знает: точный адрес ни одного из них

2. На карте — тепловая карта районов, без точек (№6)

Элемент карты Что видит пользователь
Цвет района Средний PM2.5 по данным всех устройств в районе за последний час
Счётчик датчиков «Активных датчиков в районе: 12»
Разбивка по типу «Стационарные: 7, мобильные: 5»
Тренд «За неделю: +15% к качеству»

Чего нет на карте: - Нет отдельных точек - Нет координат - Нет адресов - Нет маркеров «мой датчик»

Визуальный референс:

┌──────────────────────────────────┐
│  [Район Северный] ████████  35   │
│  [Район Западный] ██████    22   │
│  [Район Южный]    ██████████ 48  │ ← красный
│  [Район Восточный] ████     15   │
│                                  │
│  Датчиков онлайн: 47             │
│  Стационарных: 31                │
│  Мобильных: 16                   │
└──────────────────────────────────┘

3. Детальные данные — при клике на район

Районы кликабельны. При нажатии открывается: - График среднего PM2.5 за день / неделю / месяц - Количество активных датчиков (стационарные vs мобильные) - Ссылка на транзакцию в блокчейне с агрегированными данными - Возможность верифицировать расчёт — любой может пересчитать статистику по данным из блокчейна

Никакого «тыкни в точку — смотри данные датчика». Только районная агрегация.

4. Индивидуальные данные — только в блокчейне и боте

Пользователь видит данные своего датчика: - В Telegram-боте (личные графики, статистика) - В блокчейне (цепочка подписанных транзакций)

На карте — только агрегированный вклад в общую статистику района.


Почему это настоящее сопротивление

Проблема Решение
Регулятор видит точки → вычисляет адреса Точек нет. Есть районы.
Пользователь случайно светит свой GPS GPS не запрашивается и не публикуется
Тепловая карта неинформативна Районная статистика + количество датчиков = доверие
«Почему я должен верить данным?» Любой может проверить данные в блокчейне и пересчитать статистику
«А не подкручивают ли власти цвет?» Все транзакции публичны и неизменяемы

Ключевые технические решения

1. Meshastic вместо WiFi / интернета на датчиках

Риск Решение Meshastic
Датчик светится в WiFi-эфире LoRa — шумоподобный сигнал, сложно запеленговать
Привязка к роутеру (физическая локация через MAC) Устройство не сканирует сети, не имеет MAC-адреса WiFi
Провайдер блокирует трафик по IP LoRa — отдельный физический уровень, не зависит от IP-сетей

2. «Радиостанция судного дня» — публикация раз в сутки

Данные накапливаются на устройстве и публикуются строго в заданное время (например, 03:14 ночи). Это аллюзия на UVB-76 / The Buzzer — культовые коротковолновые «радиостанции судного дня».

  • Пакет уходит в случайный момент с небольшим джиттером — сложнее перехватить и проанализировать
  • Шлюз асинхронно публикует данные в интернет после получения пакета по LoRa
  • Эстетика «подпольного эфира» привлекает гиков и энтузиастов

3. Андерграунд-дизайн DIY-устройств

  • Корпус из подручных материалов — не привлекает внимания
  • Отсутствие внешних антенн, брендинга, LED-индикации (опционально)
  • Устройство маскируется под бытовой предмет
  • Регулятор не идентифицирует его как «подозрительный измерительный прибор»

4. Смена юрисдикции шлюза

  • Шлюз физически находится в соседней стране
  • Данные опубликованы в блокчейне (Ethereum / Hoodi) до того, как могут быть заблокированы локально
  • Сервер публикации физически недоступен для локального регулирования

Инженерные вызовы и решения

LoRa (Meshastic) и пропускная способность

LoRa — десятки байт в минуту, PM2.5 датчик выдаёт значения каждые несколько секунд. Стратегии работы:

  • Пакетная передача: копить данные на устройстве (RTC + SD-карта / EEPROM), отправлять раз в N часов сжатым пакетом
  • Агрегация на шлюзе: датчики шлют сырые данные по LoRa, шлюз вычисляет среднее / медиану за период
  • Событийный триггер: передача только при превышении порога PM2.5; в штатном режиме — раз в сутки heartbit

Электропитание в условиях отключения света

  • Режим глубокого сна (ESP32 deep sleep ~10 мкА)
  • Питание от Power Bank / солнечной панели
  • Работа от 18650 — месяцы без подзарядки в sleep-режиме

Верификация данных без интернета

  • Подпись каждого пакета ключом устройства (Ed25519)
  • Шлюз проверяет подпись перед публикацией
  • Хеширование цепочки данных в блокчейне (на шлюзе при подключении к интернету)

Сториз: сценарий «Нас 47, но нас не найти»

Угол: эстетика подполья, анонимность, гражданское сопротивление.

Время Кадр Текст на экране
0–1 с Чёрный экран, радиошум «03:14. Канал свободен.»
1–2 с Сборка устройства — невзрачный корпус, без логотипов «Датчик из подручных материалов. Ничего лишнего.»
2–3 с Схема Meshastic-сети: точки соединены линиями «Mesh-сеть. Без интернета, без вышек, без контроля.»
3–4 с Карта города: районы окрашены в цвета. Ни одной точки. «Тебя нет на карте. Есть только твой район.»
4–5 с Статистика района: счётчик датчиков, график trends «Нас 47 в этом районе. Но никто не знает, где кто.»
5–6 с Анимация: подписанный пакет уходит в блокчейн «Данные подписаны. Блокчейн. Никто не подделает.»
6–7 с Ссылка на бота / репозиторий «Стань частью сети →»

Смысловая модель: что на самом деле делает сервис

Свойство Описание
Нецензурируемый источник правды Данные в блокчейне — их нельзя удалить постфактум
Устойчивость к цензуре на транспортном уровне Meshastic не блокируется провайдерами
Анонимность провайдера данных Устройство не передаёт GPS, привязка только к району через шлюз
Независимость от юрисдикции Данные публикуются из страны, где это легально

Отличие от коммерческих сервисов (IQAir и др.)

IQAir / аналоги Данный сервис
Данные идут через интернет с известного IP Данные идут по LoRa, IP не светится
Сервер в одной юрисдикции Шлюз за границей, публикация в блокчейне
Устройство выглядит как метеостанция Устройство маскируется под бытовой предмет
На карте — точки с точными координатами На карте — тепловая карта районов без точек
При блокировке сайта — сервис недоступен Данные уже в блокчейне, удалить нельзя

План развития

  1. Прототип: ESP32 + PM2.5 датчик + LoRa-модуль, передача по Meshastic
  2. Шлюз: Raspberry Pi с LoRa-модулем, приём пакетов, проверка подписей
  3. Публикатор: скрипт, запускаемый по cron в 03:14, публикует агрегированные данные в блокчейн
  4. Карта v2: замена поточечной карты на тепловую карту районов
  5. Андерграунд-корпус: дизайн корпуса из подручных материалов, инструкция по маскировке
  6. Солнечное питание: интеграция с солнечной панелью + 18650 для полностью автономной работы