Map of independent air quality sensors
ДанныеКартаБлокчейн

Статистика карты

  • Сбор данныхпроверяем
    Принимает показания датчиков.
  • База картыпроверяем
    Хранит показания, которые вы видите на карте.
  • Блокчейнпроверяем
    Robonomics ведёт открытый журнал данных.

Сохраненные датчики

Здесь вы можете сохранить датчики для быстрого просмотра
← Назад к блогуAltruist: открыт от начала до конца, и закрыть его не может никто, даже мы

Altruist: открыт от начала до конца, и закрыть его не может никто, даже мы

  • altruist
  • open-source
  • open-hardware
  • robonomics
  • open-data

Мы искали другой датчик качества воздуха, у которого открыто всё вокруг: железо, прошивка, сервер, который принимает данные, карта, которая их показывает, и сами данные — подписанные на устройстве и записанные в публичный блокчейн. Не нашли.

Поэтому вот Altruist, слой за слоем, со ссылкой на каждый. Всё ниже лежит на GitHub под открытыми лицензиями, и проверить это может любой.

Девять открытых слоёв Altruist. Устройство: железо CERN-OHL-W-2.0, корпус GPL-3.0 на GitHub и CC BY-SA 4.0 на MakerWorld, сертификаты открыты, прошивка GPL-3.0. Сеть: connectivity AGPL-3.0, Robonomics Apache-2.0, индексатор RoSeMAN AGPL-3.0, карта AGPL-3.0. Данные: каждое опубликованное измерение, ODbL 1.0

Железо: платы до последнего слоя

В репозитории железа лежат оба модуля: Altruist Urban для улицы и Altruist Insight для комнаты. Для каждой платы — схема, все медные слои разводки, Gerber-файлы для фабрики, файл расстановки компонентов, спецификация и 3D-модель платы. Исходные проекты EasyEDA Pro, которые можно редактировать, тоже там: Urban и Insight.

Папка Altruist Urban в репозитории железа: BOM, сертификаты, документация, модели, PCB, схемы

Altruist Urban в airalab/hardware.

Схема главной платы Altruist Urban

Схема главной платы Urban, лист 1 из 3: модуль ESP32-C6 и карта выводов.

Разводка главной платы Altruist Urban

Разводка главной платы.

Файлы для фабрики: архив Gerber и файл расстановки компонентов Altruist Urban

Файлы для фабрики: с ними плату сделает любое производство.

Корпуса тоже здесь — редактируемыми исходниками FreeCAD и Fusion и файлами STL и 3MF, которые можно сразу отправить на принтер, вместе с подставками и креплениями.

Папка корпуса Altruist Urban: 3MF, CAD, STL

Корпус Urban.

Сертификаты: опубликованы, а не просто заявлены

На коробке большинства устройств написано «CE». Мы выкладываем сами документы: подписанную декларацию соответствия ЕС, протоколы испытаний, документы RoHS, сертификаты радиомодуля и пластика для печати.

Папка сертификатов: ESP32-C6, пластик для 3D-печати, RoHS, протоколы испытаний и подписанная декларация ЕС

Сертификаты Altruist Urban. То же для Insight.

Прошивка: открыта и подписывает каждое измерение

Прошивка выросла из прошивки Sensor.Community — сети гражданских датчиков из Штутгарта — и до сих пор остаётся её форком. Так и должен работать open source: мы начали с проекта, которому люди доверяли, и всё, что добавили, осталось открытым под той же лицензией.

Репозиторий altruist-firmware: форк прошивки Sensor.Community, GPL-3.0

airalab/altruist-firmware, GPL-3.0.

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

Код прошивки: измерение подписывается перед отправкой

Шаг подписи в прошивке.

И прошивка к нам не привязана. В настройках можно направить датчик на другой сервер connectivity, на свой сервер, на свою InfluxDB — или вообще держать всё дома через интеграцию с Home Assistant.

Connectivity: сервер, который принимает данные

Sensors Connectivity принимает измерения, проверяет каждую подпись, публикует данные в реальном времени, собирает их в пачки, закрепляет пачки в IPFS на узлах connectivity и RoSeMAN и записывает их отпечаток в блокчейн Robonomics. Это пакет на Python, который может запустить кто угодно, и датчик можно направить на любой такой сервер.

Репозиторий sensors-connectivity, AGPL-3.0

airalab/sensors-connectivity, AGPL-3.0.

Robonomics: запись, которую никто не перепишет

Отпечаток каждой пачки уходит в Robonomics — парачейн на Polkadot. Когда он там, никто не сможет тихо изменить или удалить то, что измерил датчик, в том числе мы. Записи может посмотреть любой в обозревателе.

Репозиторий robonomics, Apache-2.0

airalab/robonomics, Apache-2.0.

Индексатор: соберите весь датасет сами

RoSeMAN читает блокчейн, забирает пачки из IPFS и превращает их обратно в измерения. На нём работает карта sensors.social. Запустите свою копию — и у вас будет каждое опубликованное измерение, без чьего-либо разрешения.

Репозиторий RoSeMAN, AGPL-3.0

airalab/RoSeMAN, AGPL-3.0.

Карта

Сайт, на котором вы это читаете, тоже открыт.

Репозиторий sensors.social, AGPL-3.0

airalab/sensors.social, AGPL-3.0.

Почему это важно

Обещание держать данные открытыми может измениться с новым владельцем или новым прайсом. Здесь открытость встроена в саму конструкцию: датчик подписывает, блокчейн хранит, индексатор открыт, и всё, что между ними, — тоже. Если завтра нас не станет, в блокчейне останется отпечаток каждой пачки, а любой, у кого есть копия пачек в IPFS, сможет запустить индексатор и снова поднять карту.

Вот что мы называем «открыт от начала до конца»: не одна открытая часть, а ни одной закрытой на всём пути от датчика до карты. И вот что значит «закрыть не может никто»: выпущенный код и опубликованные измерения нельзя отозвать, даже нам. Форкнуть код может любой, а забрать обратно опубликованные измерения не может никто, потому что они не лежат в базе какой-то одной компании. А сами данные опубликованы под ODbL: пользоваться ими может любой, в том числе в коммерции, но любая база, собранная из них, тоже обязана остаться открытой.

Открыть карту · Все репозитории Airalab

Анализ: ИИ-агент Nausicaä 🌿