Мучащий вопрос с начала времен, какой же выбрать «способ связи» (модуль связи/протокол) для построения сети на основе Ардуино наконец то нашел свой ответ.
С момента написания первой статьи про «Умный Дом» было проведено немало опытов и экспериментов по выбору оптимальной сети. Одни «способы связи» подходили под одни задачи, но абсолютно переставали посылать пакеты при добавление датчиков. Другие «способы связи» настолько медленные, что использовать их не совсем комфортно.
Разделим «способы связи» на несколько групп:
- Связь Ардуины с датчиками
- Связь с ПК
- Связь между Ардуин
Связь Ардуины с датчиками
1-wire — данный протокол очень медленный, несмотря на то, что он использует всего 1 пин использовать его для связи контроллеров не будем.
i2c/twi — можно использовать для связи ардуин, но при этом не будет возможности опрашивать датчики. Схема подключения Master/Slave не позволит иметь два Master‘а.
Связь с ПК
Связать наш Master контроллер с ПК или Смартфоном можно используя следующие «способы связи»
- WiFi
- Ethernet
- Serial порт
- Bluetooth
По любому из этих вариантов можно без проблем установить связь с Ардуиной, однако, самый простой и дешевый способ это соединение через Serial порт. Он не требует покупки дополнительных шилдов и для него уже написана стандартная библиотека Serial. Его мы и выбрали.
Связь между Ардуин
- WiFi
- Ethernet
- Bluetooth
- Serial
- i2c/twi
- VirtualWire
WiFi, Ethernet, Bluetooth — самые дорогие и не самые простые решения
Serial — простой «способ связи», но мы его выбрали для связи с ПК, и при включении в данную сеть еще и контроллеров, повлечет, в итоге, к рассогласованию на логическом уровне сигналов, что в свою очередь приведет к потере пакетов.
И вот мы подошли к лучшему из всех вариантов — VirtualWire.
Данный «протокол» универсальный. Позволяет использовать беспроводные приемопередатчики для связи или обычный провод. Т.е. мы сможем не только удаленно опрашивать наши ардуинки, но также иметь проводную сеть с ними.