Я работаю над проектом, который основан на беспроводной связи, и я ищу лучшую альтернативу. Это требования к дизайну:
- Легко взаимодействовать с Arduino
- Работает на небольшом расстоянии (максимум 5-6 метров)
- Потребляет мало энергии - наименьшее возможное
- Устройства не должны мешать друг другу
- Не нужно быть в режиме реального времени, задержка может быть порядка сотен миллисекунд
- В общем, устройства не видны друг другу (то есть ИК и аналогичные решения не будут работать)
Сценарий таков:
Около 10 устройств в одной комнате, общаясь друг с другом, время от времени отправляя друг другу короткие (не более 30 символов) сообщения, в течение нескольких часов (без замены батарей).
Лучшее, что я смог найти, - это Bluetooth (в частности, BLE), в основном потому, что есть несколько готовых модулей Arduino + Bluetooth и многообещающий ярлык «Low Energy» (максимум половина потребления энергии обычного Bluetooth), но я бы хотел люблю получать мнение от людей с большим опытом в этой области.
Ответы:
Взгляните на линейку трансиверов XBee . Существуют различные типы в зависимости от дальности передачи и желаемой номинальной мощности.
Эти устройства также почти тривиально взаимодействуют с проектами Arduino. В
Serial
библиотеке использует UART аппаратный ресивер , который совместит с Rx цапфой XBee. Также обратите внимание, что переключатели уровня не требуются, потому что вывод XBee Rx / Tx работает с 5 В!ОБРАТИТЕ ВНИМАНИЕ , однако, что XBee должен питаться от 3,3 В, поэтому можно использовать простой стабилизатор напряжения 3,3 В LDO.
источник
«Лучший» сложно определить, но я хотел бы рассмотреть трансивер IEEE 802.15.4.
Я использовал MRF24J40MA для проекта ( https://github.com/briksoftware/gradusnik ). Вы можете попытаться увидеть, есть ли какой-то код, который вы можете использовать там. Проект для PIC, но многие вещи фактически независимы от платформы (особенно от других проектов, от которых это зависит).
Модуль потребляет около 20 мА в rx / tx, что не так много. Однако, чтобы получить длительное время работы от батареи, вам нужно перевести модуль в спящий режим большую часть времени. Для этого вы можете использовать сеть с маяком, причем одно устройство выступает в роли координатора. Модуль потребляет несколько мкА в режиме ожидания (для точных цифр проверьте таблицу)
Единственная проблема, связанная с интерфейсом Arduino, заключается в том, что вам необходим сдвиг уровня 5-> 3,3 (если Arduino все еще использует 5v).
Другой популярный приемопередатчик для протокола IEEE 802.15.4 - это модуль XBee, но он намного дороже.
источник
Я не рассматриваю это как проблему с беспроводной связью, а скорее с проблемой протокола.
Если сохранение игры - это название игры, и если одно устройство может посредством соответствующего программирования принять роль временного «мастера», то каждому другому устройству может быть назначен временной интервал. Как только выделение выполнено, временный мастер может снова стать равноправным, но важно то, что была создана структура временных интервалов, и все одноранговые узлы будут куплены в этой структуре.
Что это делает? Наличие временного интервала означает, что вы можете выключить радио на сотни миллисекунд и проснуться, чтобы увидеть, идет ли передача, предназначенная для приема. Когда пир просыпается, ему нужно подождать, чтобы увидеть, отправляет ли ему сообщение какой-либо из 8 других пиров. Время имеет решающее значение, но если вы хотите продлить срок службы батареи, сконцентрируйтесь на протоколе. Этот ответ просто дуновение идеи. Временной интервал активации будет подразделен на 8 других временных интервалов, на которые каждый из остальных 8 одноранговых узлов выделен для передачи, и, если один передает, другие могут сначала прослушать, чтобы проверить, могут ли они передавать. Что-то вроде этого: -
«Следующий» слот позволяет новым участникам присоединиться к группе.
Приемопередатчики с низким энергопотреблением - обычное дело, поэтому я не буду вдаваться в подробности.
источник
Попробуйте дешевые модули TXRX 433 МГц. они пригодятся и могут быть легко связаны с Arduino. Я использую их для своих личных проектов робототехники хобби.
источник
Просто любопытно, почему модуль беспроводного трансивера NRF24L01 2,4 ГГц не был упомянут? Это устройство с низким энергопотреблением, которое можно переключить в режим ожидания для еще более низкого энергопотребления. Он работает от напряжения 3,3 В, поэтому можно использовать либо Arduino с низким энергопотреблением, либо разветвитель, и, что лучше всего, довольно дешево?
Вот страница продукта nRF24L01 + вместе с инструкцией по nRF24L01, которая содержит информацию о сопряжении с Arduino вместе с примером кода.
источник
RFM12B приходит на ум ..
http://www.hoperf.com/rf/fsk_module/RFM12B.htm
Некоторые особенности:
Интерфейс связи SPI должен быть достаточно настроен с Arduino.
Модель RFM12B-S2 продается менее чем за 7 долларов в эти дни.
источник