Подключение модуля XBee к Arduino Uno


В данной статье мы рассмотрим подключение модуля XBee к плате Arduino Uno. Модуль XBee, подключенный к плате Arduino, будет работать в качестве приемника и будет взаимодействовать с другим модулем XBee, подключенным к компьютеру с помощью USB адаптера XBee (Explorer Board).

Внешний вид проекта для подключения модуля XBee к плате Arduino Uno

Что такое XBee

XBee – это радиомодемы для сетей ZigBee, предназначенных для максимально защищенной передачи данных, с минимальным уровнем электропотребления и невысокой скоростью. Эти устройства применяют в различных системах автоматики и также весьма востребованы в технологиях «умного дома», поскольку позволяют не только управлять удаленными устройствами, но и организовывать целые сети, регулирующие работу множества устройств.

В отличие от Wi-Fi, Bluetooth и проводных сетей, предназначенных для передачи больших объемов информации и полностью отсутствующим шифрованием, сети ZigBee обеспечивают в десятки раз большую надежность.

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

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

Внешний вид радиомодулей XBee

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

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

Возможные применения технологии ZigBee

Изначально радиомодемы под маркой XBee производила компания Maxstream (первое поколение), затем их производством занялась фирма Digi International. В 2015-2015 годах их производством занялось еще несколько компаний. Продукция разных поколений несовместима между собой, потому что выпускалась под стандарты ZigBee, существующие на тот момент. Стандарты каждые 2-3 года менялись, поэтому производители также меняли и свои устройства. Однако эти изменения не касались технических характеристик, таких как мощность сигнала, энергопотребление и т. д.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Модули XBee Pro S2C (купить на AliExpress) – 2 шт. Можно использовать и другие типы модулей XBee.
  3. Xbee explorer board - USB адаптер XBee (опционально).
  4. Xbee Breakout board (опционально) – защитная плата для модуля XBee, также ее называют платой расширения для подключения различных беспроводных модулей к плате Arduino Uno. То есть ее одевают сверху на плату Arduino Uno, а к ней подключают модуль XBee.
  5. USB кабели.
  6. Светодиод.

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

Внешний вид используемых компонентов для нашего проектаКонфигурирование модулей XBee с помощью программного обеспечения XCTU

Поскольку модули XBee могут работать в качестве маршрутизаторов, координаторов и оконечных устройств, то перед началом работы с ними нам необходимо настроить режим их работы. Сделать это можно с помощью программного обеспечения XCTU.

Для подключения XBee модулей к компьютеру можно использовать различные типы USB адаптеров XBee (в англоязычных источниках их называют Xbee explorer board).

Если у вас нет под рукой USB адаптера XBee, то в качестве “переходного устройства” между компьютером и модулем XBee может быть использована плата Arduino. Просто загрузите приведенный далее скетч в плату Arduino и после этого вы сможете использовать ее в качестве USB адаптера (конвертера) XBee.

Схема подключения модуля XBee (ZigBee) к плате Arduino для передающей части нашего проекта показана на следующем рисунке.

Схема подключения модуля XBee (ZigBee) к плате Arduino для передающей части нашего проектаВ схеме необходимо сделать следующие соединения:

  1. Tx (pin2) модуля XBee -> контакт Tx платы Arduino.
  2. Rx (pin3) модуля Xbee -> контакт Rx платы Arduino.
  3. Gnd (pin10) модуля Xbee -> контакт GND платы Arduino.
  4. Vcc (Pin1) модуля Xbee -> контакт 3.3v платы Arduino.

В этой статье мы будем использовать Explorer board (USB адаптер XBee) для конфигурирования модулей XBee.

Вначале скачайте программное обеспечение XCTU и установите его на свой компьютер. После этого запустите его и удостоверьтесь в том, что модуль XBee корректно подключен. Проверьте COM порт платы Arduino в диспетчере устройств.

Затем выполните следующую последовательность шагов.

Шаг 1. В программном обеспечении XCTU нажмите на кнопку поиска (search button). В результате вы увидите все радиочастотные устройства, подключенные к вашему компьютеру. В нашем случае мы увидим только один модуль XBee.

Поиск нашего модуля в XCTU

Шаг 2. Выберите последовательный порт Explorer board/платы Arduino и нажмите на Next (следующий).

Выбор последовательного порта в XCTU

Шаг 3. В следующем открывшемся окне установите параметры последовательного USB порта как показано на рисунке ниже и нажмите на Finish (закончить).

Выбор параметров последовательного USB порта в XCTU

Шаг 4. Выберите найденное радиочастотное устройство (подключенное к вашему компьютеру) и нажмите на Add selected device (добавить выбранное устройство). При этом модуль XBee будет добавлен на приборную доску XCTU.

Добавление выбранного устройства в XCTU

Шаг 5. После этого вы сможете конфигурировать ваш модуль XBee. Для этого можно использовать AT команды или вводить данные вручную. На представленном ниже рисунке вы можете видеть на картинке модуля XBee пиктограмму с символом “R” – это обозначает, что модуль XBee будет работать в режиме маршрутизатора (router mode). Для передающей части нашей схемы нам переходимо перевести его в режим координатора.

После этого необходимо обновить прошивку модуля при помощи нажатия на кнопку Update.

Обновление прошивки модуля XBee в XCTU

Шаг 6. Выберите имя продукта вашего модуля XBee, которое указано на его обратной стороне. Выберите function set (набор функций) и firmware version (версию прошивки) как показано на следующем рисунке и нажмите Update.

Установка параметров прошивки модуля XBee в XCTU

Шаг 7. После этого вам необходимо указать данные ID, MY и DL чтобы получить возможность установления с другими модулями XBee. ID будет одинаковый для обоих используемых нами модулей. Необходимо будет только изменить данные MY и DL. MY для приемного модуля XBee будет DL для передающего модуля XBee (координатора), а DL приемного модуля будет MY для передающего модуля. Для передающего модуля выберите в настройке CE функцию Coordinator и после этого нажмите кнопку Write (записать).

Конфигурирование модуля XBee в XCTU

ATDL ATMY ATID
XBee 1 coordinator (координатор) 1234 5678 2244
XBee 2 end device (оконечное устройство) 5678 1234 2244

Шаг 8. После записи этих данных в передающий модуль отключите его и подключите к USB адаптеру приемный модуль XBee. Запишите в него соответствующие данные DL, MY и CE (в выпадающем меню для CE не забудьте выбрать End device – оконечное устрйоство).

Шаг 9. Теперь наши модули XBee готовы к подключению к плате Arduino. Мы будем подключать передающий модуль XBee к компьютеру, а приемный модуль XBee – к плате Arduino. После этого с компьютера можно будет передавать команды на приемную часть.

Схема подключения модуля XBee (ZigBee) к плате Arduino для приемной части нашего проекта показана на следующем рисунке.

Схема подключения модуля XBee (ZigBee) к плате Arduino для приемной части нашего проекта

В схеме необходимо сделать следующие соединения:

  1. Tx (pin2) модуля XBee -> контакт Rx платы Arduino.
  2. Rx (pin3) модуля Xbee -> контакт Tx платы Arduino.
  3. Gnd (pin10) модуля Xbee -> контакт GND платы Arduino.
  4. Vcc (Pin1) модуля Xbee -> контакт 3.3v платы Arduino.

Если для передающей части проекта вы используете плату Arduino (вместо USB адаптера Xbee) для подключения модуля Xbee к компьютеру, то соединения будут такие же как и для программирования модуля Xbee.

Программирование платы Arduino для работы с модулем Xbee

Мы напишем программу для приемной части нашего проекта (с платой Arduino), которая будет включать светодиод при получении символа ‘a’. При получении символа ‘b’ программа будет включать мигание светодиода, при приеме других символов светодиод будет находиться в выключенном состоянии.

Код программы достаточно простой. В нем мы будем проверять поступающие символы с помощью функции Serial.available() и сохранять их значение в переменной с помощью функции Serial.read(). Далее значение этих символов будет сравниваться с символами ‘a’ и ‘b’. Если результат сравнения будет успешным будет выполняться соответствующая команда. Этот код программы для приемной части нашего проекта приведен ниже в статье. Загрузите его в плату Arduino. Перед загрузкой программы в плату Arduino отключите ее контакты Tx и Rx от модуля XBee.

После того как аппаратная часть проекта будет готова, а программа будет загружена в плату Arduino, вы можете приступать к тестированию работы проекта. Для передачи команд с помощью передающей части мы будем использовать консоль команд программного обеспечения XCTU. Для этого нажмите на Console icon (иконку консоли) в программе, которая находится рядом с настройками. Затем нажмите кнопку Open (открыть) чтобы подключить модуль XBee к компьютеру.

Запуск консоли команд в XCTU

Введите ‘a’ в консоли команд – после этого вы увидите как светодиод зажгется на 2 секунды. Если вы введете ‘b’ в консоли команд, то светодиод мигнет 5 раз. Более подробно эти процессы вы можете посмотреть в видео, приведенном в конце статьи.

Вы также можете использовать плату Arduino и в передающей части проекта – для этого будет необходимо немного изменить код приведенной программы (она для приемной части проекта): вместо функции Serial.read() используйте функцию Serial.println() для передачи символов.

На основе платы Arduino и модулей Xbee можно создать множество полезных приложений, например, системы автоматизации дома, комнаты для чата и т.п.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Также можете посмотреть еще очень подробное видео (на английском языке) про использование модулей Xbee вместе с платой Arduino.

(Проголосуй первым!)
Загрузка...
5 655 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *