MySensors
MySensors — бесплатная и открытая программная среда для проектов DIY (сделай сам) в области интернета вещей (IoT), предназначенная для беспроводных устройств, позволяющих обмениваться данными с помощью радиопередатчиков. Библиотека изначально была разработана для платформы Arduino[2][3][4][5].
Устройства MySensors формируют виртуальную радиосеть узлов, автоматически создающую самовосстанавливающуюся структуру. Каждый узел может передавать сообщения другим узлам для увеличения охвата за счёт каскадирования при помощи простых приёмопередатчиков малой дальности. Один узел может иметь несколько датчиков или исполнительных механизмов, подключённых и взаимодействующих с другими устройствами сети.
В радиосеть может входить до 254 узлов, при этом один из них способен работать как шлюз в Интернет или в качестве контроллера домашней автоматизации. Контроллер добавляет функциональность, такую как управление, назначение идентификаторов и синхронизацию времени.
Что важно знать
| MySensors | |
|---|---|
| Написана на | Си |
| Первый выпуск | 2013 |
| Последняя версия | |
| Состояние | активное |
| Лицензия | GNU GPL и проприетарная |
| Сайт | mysensors.org |
Поддерживаемые аппаратные платформы
Среда может работать на следующих платформах и микроконтроллерах:
- Linux / Raspberry Pi;
- ATMega328P;
- ESP8266;
- ESP32;
- nRF5x;
- ARM Cortex M0[6] (в основном ядро Atmel SAMD, используемое в Arduino Zero).
Типы связи
MySensors поддерживает следующие каналы передачи данных через радиотрансиверы:
- NRF24L01;
- RFM69;
- RFM95 (LoRa);
- nRF5x;
- Wi-Fi (ESP8266);
Проводные интерфейсы:
Безопасность
Беспроводная связь может подписываться с использованием усечённого HMAC-SHA256, применяя как аппаратное обеспечение (например, микросхема Atmel ATSHA204A), так и совместимую программную эмуляцию. Также возможна организация шифрования. В реализации отсутствует привязка к времени, применяются случайные числа (white random), механизмы обнаружения и блокировки атак, а также защита от атак по времени, повторных атак и атак типа «человек посередине».


