В предыдущем уроке мы узнали о протоколе ZigBee, его архитектуре, а также узнали о модулях XBee и AT-командах для управления им. В этом уроке мы соединим два модуля XBee с двумя компьютерами и заставим компьютеры обмениваться данными по беспроводной сети с помощью этих модулей XBee. В конце концов, мы сможем отправлять текст с одного компьютера на другой, как, например, в приложении для общения.
Обнаружение подключенного модуля XBee на компьютере
Вы можете обнаружить свой радиомодуль XBee в Linux и Mac OSX. Открыв терминал, вы можете ввести несколько команд, чтобы проверить, распознается ли модуль вашим компьютером. Кроме того, мы видим, что при подключении к более чем одному модулю вам нужно быть немного осторожнее. После открытия терминала вам необходимо использовать следующие командные строки, чтобы проверить, правильно ли распознается ваше устройство вашей системой или нет.
В Linux и MAC вам нужно ввести
1 |
dmesg | tail |
Вы увидите что-то вроде преобразователя последовательного устройства USB FTDI, который теперь подключен, или, в данном случае, cp210x, подключенного к «ttyUSB0».
1 |
ls/dev/tty (пользователям Mac необходимо ввести ls/dev/tty.*) |
Как показано на изображении выше, вы увидите /dev/ttyUSB0. Убедитесь, что вы не подключили другие USB-устройства, в этом случае USB1, 2 или x. Этот каталог будет очень полезен при взаимодействии XBee с Python.
Для Windows перейдите в Панель управления-> Диспетчер устройств-> Найдите Com-порты на устройствах, как показано ниже, если вы используете putty или Python. В качестве альтернативы теперь вы можете использовать XCTU для того же самого.
Подключение модуля XBee к компьютеру для связи
Для различных платформ доступно множество терминальных приложений для связи с XBee. Для простоты мы будем использовать CoolTerm , поскольку оно совместимо с Windows и MAC, программное обеспечение бесплатное и доступно для всех операционных систем, таких как MAC, Windows, Linux.
Для MAC OS
Загрузите CoolTerm для Mac отсюда.
Перетащите папку CoolTermMac из папки «Загрузки» в папку «Приложения», и значок CoolTerm автоматически появится на панели запуска.
Теперь откройте приложения CoolTerm, щелкнув его значок, а затем перейдите в меню Connection menu -> Options. После нажатия на параметры откроется новое окно. Просканируйте порты с помощью кнопки “ReScan Serial Ports” («Повторное сканирование последовательных портов»), как только вы получите COM-порт, установите:
- скорость передачи данных 9600,
- Биты данных 8,
- Паритет Нет (Parity None) и
- Стоповые биты 1.
Чтобы правильно видеть, что вы пишете в терминале, вам потребуется дополнительно включить Local Echo. Для этого нажмите Terminal («Терминал»), как показано ниже на изображении, установите флажок Local Echo («Локальное эхо»), а затем нажмите «ОК».
Нажмите кнопку Connect («Подключиться»), как показано на рисунке ниже, после ее нажатия выполните следующие действия:
- Введите +++ (не нажимайте Enter), если вы получите ответ «ОК», продолжайте. Если нет, подождите более 10 секунд и повторно введите +++ для команды арендатора.
- Введите ATSH и нажмите Enter, и вы увидите, как показано ниже, 32-битный адрес более старшего адреса, который является статическим адресом.
Теперь вы можете вводить другие команды, чтобы увидеть параметры.
Если у вас возникли проблемы с подключением XBee к вашему компьютеру:
- Проверьте настройки, например настройки скорости передачи данных.
- Переподключите модуль и проверьте, правильно ли он подключен.
- Попробуйте обновить прошивку, это может решить проблему, если она не работает из-за некоторых предыдущих настроек.
- Сбросьте настройки, если это спящий режим.
Для Linux
Пользователь Linux может просто установить putty с помощью терминала в Linux (версии Debian).
1 |
sudo apt-get install putty |
Для другого дистрибутива загрузите исходный файл, перейдите в каталог с помощью терминала и введите следующие команды.
1 2 |
sudo make sudo install |
1. Теперь откройте putty, щелкните переключатель Serial («Последовательный порт») и введите текст в текстовое поле «/dev/ttyusb0», как показано на рисунке ниже. И установите скорость передачи данных 9600.
2. После этого нажмите Terminal («Терминал»), измените настройки как показано на рисунке выше, а именно, измените
Implicit LF в каждом CR. Измените параметр Local echo («Локальное эхо») на Force on («Принудительно включить»). Затем нажмите Open.
3. Затем на терминале введите «+++» (не нажимая Enter), затем после получения ОК вы можете ввести другие AT-команды, как показано ниже.
Для Windows
Пользователи Windows могут просто загрузить zip-файл CoolTerm отсюда, распаковать его, а затем щелкнуть по Coolterm.exe, и все готово.
Простой проект связи двух модулей XBee
Итак, теперь мы готовы обмениваться данными между двумя компьютерами с помощью двух трансиверов XBee. Идея состоит в том, чтобы отправить текстовую информацию в значениях ASCII с одного компьютера на другой компьютер. Мы будем использовать консольный модем XCTU.
Для продолжения вам необходимо выполнить следующие действия:
- Два модуля XBee, в нашем случае это семейство XB24-ZB.
- Две платы адаптера XBee.
- Два ПК с терминалами последовательной связи.
Но прежде чем продолжить, нам необходимо настроить наш модуль XBee и добавить радиомодули XBee. Теперь следуйте инструкциям по общению с другими XBee:
Шаг 1: Сначала давайте обновим прошивку для нашего координатора, просто откройте режим конфигурации. Затем в меню Radio Configuration («Конфигурация радио») обновите прошивку, щелкнув изображение, как показано ниже:
Шаг 2: Записав адрес на задней стороне радиомодуля, например «0013A200 – выше XXXXXXXX – ниже (адрес вашего радио)», нам необходимо настроить модули с помощью команд, перечисленных ниже в таблице.
Функция | Команда | Параметр |
PAN-идентификатор | ATID | 1001 (подойдет любой адрес от 0 до FFFE) |
Старшие байты адреса назначения | ATDH | 0013A200 |
Младшие байты адреса назначения | ATDL | (См. нижний адрес вашего модуля Router Xbee) |
Функция записи | ATWR | NA |
Шаг 3: Теперь перейдите в режим консоли и нажмите кнопку Add Packet («Добавить пакет»), как показано ниже на изображении. Вы добавите наши команды в формате ASCII как ATID. После добавления команд перейдите в шестнадцатеричный редактор и здесь добавьте 0D (введите замену ключа), вам нужно повторить ту же процедуру для каждой команды, кроме «+++».
Порядок добавления команд показан ниже:
Шаг 4. Как показано ниже, добавьте пакеты и создайте последовательность. Это сэкономит ваше время, поскольку вы сможете повторно использовать их, сохранив эти пакеты для дальнейшего использования. После добавления пакетов в последовательности, как показано ниже, установите интервал передачи на 1000 мс.
Шаг 5: Откройте последовательное соединение с радиомодулем XBee в консоли. Теперь нажмите кнопку в нижней части консоли “Start sequence” («Начать последовательность»), ваш сеанс консоли может выглядеть, как показано на изображении ниже.
Примечание. Вы также можете использовать Putty и CoolTerm, но XCTU сэкономит больше времени и упростит работу пользователя.
Консольный сеанс для координатора:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
+++OK ATID 1000 OK ATDH 0013A200 OK ATDL 40ADFB32 OK ATID 1000 ATDH 13A200 ATDL 40ADFB32 ATWR OK |
Конфигурация маршрутизатора XBee:
Аналогичным образом вам необходимо настроить маршрутизатор, используя следующие параметры, перечисленные в таблице ниже:
Функция | Команда | Параметр |
PAN-идентификатор | ATID | 1001 (подойдет любой адрес от 0 до FFFE) |
Старшие байты адреса назначения | ATDH | 0013A200 |
Младшие байты адреса назначения | ATDL | (См. нижний адрес вашего модуля Router Xbee) |
Функция записи | ATWR | NA |
Сеанс консоли для маршрутизатора будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Router +++OK ATID 1000 OK ATDH 0013A200 OK ATDL 40A78409 OK ATID 1000 ATDH 13A200 ATDL 40A78409 ATWR OK |
Отправка текста с одного компьютера на другой с помощью XBee
Теперь пришло время действовать: загрузите CoolTerm/Putty или даже XCTU на два компьютера, подключите к ним XBee с адаптерной платой. Здесь мы, как показано ниже, используем CoolTerm. Теперь откройте последовательное соединение и подключите модуль XBee, как вы узнали в начале этого руководства.
В любой консоли напишите любой символ, и вы увидите, что тот же символ появляется и в другом окне консоли. Здесь один модуль XBee работает как передатчик, а другой как приемник.
Таким образом, включая наше предыдущее руководство «Введение в ZigBee», мы до сих пор рассмотрели основы архитектуры сетей XBee, принимая во внимание экосистему XBee, а также приобрели знания о AT-командах и использовании терминалов. В этом уроке мы узнали, как модуль XBee можно подключить к компьютеру для связи между двумя компьютерами. Теперь мы можем общаться с нашими друзьями в соседних комнатах, используя радио XBee!!!
Сделай сам
- Загрузите IDE Python по адресу: https://www.python.org/ftp/python/2.7.8/python-2.7.8.msi , загрузите последовательные библиотеки Python и отправьте AT-команды с помощью Python.
- Используйте AT-команды для подключения светодиодов к цифровому вводу-выводу и удаленного управления ими.
- Настройте модуль XBee для получения аналоговых входов от потенциометра: http://examples.digi.com/sensors/802-15-4-analog-input-with-a-potentiometer
- Используя Tkinter Python, вы можете создать интерактивное приложение для отслеживания движения с помощью акселерометра и XBee для получения жестов.
- Подключите модуль XBee и получайте данные о вашей траве с помощью датчика влажности. Вы можете расширить этот проект, построив график данных с помощью Pythons Matplotlib.