MySensors

MySensors — бесплатная и открытая программная среда для проектов DIY (сделай сам) в области интернета вещей (IoT), предназначенная для беспроводных устройств, позволяющих обмениваться данными с помощью радиопередатчиков. Библиотека изначально была разработана для платформы Arduino[2][3][4][5].

Устройства MySensors формируют виртуальную радиосеть узлов, автоматически создающую самовосстанавливающуюся структуру. Каждый узел может передавать сообщения другим узлам для увеличения охвата за счёт каскадирования при помощи простых приёмопередатчиков малой дальности. Один узел может иметь несколько датчиков или исполнительных механизмов, подключённых и взаимодействующих с другими устройствами сети.

В радиосеть может входить до 254 узлов, при этом один из них способен работать как шлюз в Интернет или в качестве контроллера домашней автоматизации. Контроллер добавляет функциональность, такую как управление, назначение идентификаторов и синхронизацию времени.

Что важно знать
MySensors
Написана на Си
Первый выпуск 2013
Последняя версия
Состояние активное
Лицензия GNU GPL и проприетарная
Сайт mysensors.org

Поддерживаемые аппаратные платформы

Среда может работать на следующих платформах и микроконтроллерах:

Типы связи

MySensors поддерживает следующие каналы передачи данных через радиотрансиверы:

  • NRF24L01;
  • RFM69;
  • RFM95 (LoRa);
  • nRF5x;
  • Wi-Fi (ESP8266);

Проводные интерфейсы:

Безопасность

Беспроводная связь может подписываться с использованием усечённого HMAC-SHA256, применяя как аппаратное обеспечение (например, микросхема Atmel ATSHA204A), так и совместимую программную эмуляцию. Также возможна организация шифрования. В реализации отсутствует привязка к времени, применяются случайные числа (white random), механизмы обнаружения и блокировки атак, а также защита от атак по времени, повторных атак и атак типа «человек посередине».

Обновление прошивки

Прошивку узла MySensors можно обновить «по воздуху» при помощи нескольких загрузчиков:

  • перезапись флэш-памяти с помощью MySensorsBootloaderRF24[8];
  • использование внешней памяти через DualOptiBoot[9];
  • для узлов ESP8266 — использование OTA (Over-the-Air) обновлений из состава SDK[10].

Примечания