Радиомодули nRF24L01+ и Arduino

Невероятно популярные беспроводные модули, идеальное, недорогое решение для объединение микроконтроллеров в беспроводную сеть, ниже код и дополнение к серии видео

Модули построены на микросхеме nRF24L01+, основное предназначение микросхемы беспроводная связь различных периферийных устройств, вроде беспроводных мышек и клавиатур.

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

IMG_2972nrf_pa

Слева типичный китайский модуль, средняя стоимость за такой один доллар. Справа модуль с усилителем мощности и коннектором для внешней антенны, за такой придется отдать около трех.

Основные характеристики модулей.

Рабочая частота: 2.4ггц
Выходная мощность передатчика: 0dBm (1mW), в версии с усилителем 20dBm (100mW)
Радиус действия в прямой видимости: до 30м, в версии с усилителем до 1000м
Скорость беспроводного соединения: 250kbps, 1Mbps или 2Mbps.
Количество каналов: 126

 

Распиновка модуля.

IMG_2972-Edit

Модуль работает с микроконтроллером по средствам интерфейса SPI, соответственно модуль должен подключатся к интерфейсу SPI ардуины, который находится на определенных контактах микроконтроллера, на фото указаны номера выходов для Arduino UNO или других, базирующихся на микроконтроллере ATMega328. Не забываем что у Arduino leonardo, Mega, и тд, интерфейс SPI находится на других контактах.

Питание модуля 3,3 вольта, вообще к питанию модуль очень привередлив, крайне желательно использовать отдельный от Arduino стабилизатор, например на микросхеме AMS1117-3.3, также желательно припаять дополнительный керамический конденсатор фильтра на контакты питания.

Для работы с модулем в среде Arduino написано несколько библиотек, мне понравилась библиотека RF24, скачать можно тут или тут, краткое описание функций библиотеки на английском языке тут.

Также существует более оптимизированное и полностью совместимое ответвление от основной версии RF24, находится тут.


Ниже исходные коды, которые были показаны в роликах на ютубе.
Радиомодули nRF24L01+ и Arduino, часть 1

Первый пример, передача данных с аналогового входа. Приемник
Первый пример, передача данных с аналогового входа. Передетчик

 

Радиомодули nRF24L01+ и Arduino, часть 2, датчик DHT11

Второй пример, передача данных с DHT11. Передатчик
Второй пример, передача данных с DHT11. Приемник

 

Радиомодули nRF24L01+ и Arduino, часть 3, работа с несколькими модулями

Третий пример, работа с несколькими модулями, передача данных с DS18B20, приемник
Третий пример, работа с несколькими модулями, передача данных с DS18B20 без запроса . Передатчик
Третий пример, работа с несколькими модулями, передача данных с DHT11 по запросу. Приемник
Третий пример, работа с несколькими модулями, передача данных с DHT11 по запросу. Передатчик

 

Радиомодули nRF24L01+ и Arduino, часть 4, работа с прерыванием.

Радиомодули nRF24L01+ и Arduino, часть 4, работа с прерыванием