Модуль XBee S1 XB24-AWI-001

Код:00613
Артикул:XB-01
В наличии:сейчас нет
Модуль XBee S1 XB24-AWI-001
 
Устройство цифровой радиосвязи с умеренной скоростью обмена данными, работает в ISM диапазоне приемником и передатчиком одновременно. Обмен информацией происходит в режиме дуплекс. Для налаживания связи требуется второй модуль или модули XBee класса S1. Устройства могут быть сконфигурированы для периодической отправки состояния аналоговых и цифровых входов без использования внешнего микроконтроллера. Они могут быть сконфигурированы для перехода в спящий режим между отправками сообщений.
 


Использование модуля XBee S1 позволяет организовать радиоканал обмена данными между компьютерами.

 
Информация передается между радиомодемом и компьютером через преобразователь интерфейса UART – порт ПК.
 

 
С помощью радиомодема XBee S1 происходит обмен информацией меду микроконтроллерами через интерфейс UART.
 


Беспроводная передача данных происходит с помощью XBee S1 между ПК и МК.
 
Может работать в режиме точка-точка для обмена данными между двумя приборами и в сети топологии звезда. При работе в сети топологии звезда происходит обмен данными между модулем XBee S1 назначаемым ведущим и оконечными устройствами XBee S1.
 


Управление двумя приборами по беспроводным каналам связи при помощи модулей XBee S1. Широковещательное сообщение broodcast отправляется координитором всем оконечным устройствам. Они отвечают координатору сообщениями характера unicast.
 
Количество модулей радиосвязи объединяемых в одну ”звезду” может быть очень большим.
 

С помощью одного XBee S1 происходит дистанционное управление ударным механизмом одного барабана.



Управление ударной установкой благодаря объединению 19 модулей XBee в сеть топологии звезда. 1 координатор и 18 оконечных устройств.

Практически трансивер XBee S1 можно рассматривать как радиомодем, поскольку он ретранслирует данные интерфейса UART. При этом создается беспроводной канал связи между приборными интерфейсами UART. Также сходство с модемом состоит в управлении режимами с помощью АТ команд. Кроме поддержки АТ команд радиомодем работает в режиме API команд.
Соответствует стандарту радиосетей IEEE 802.15, находящемся в одном ряду со стандартами Bluetooth и Wi-Fi, но здесь сделан упор на низкую стоимость устройств связи, малое потребление энергии и разумную скорость обмена данными. Используется протокол обмена информацией Zigbee. В России использование таких радиоустройств не требует разрешения ГКРЧ. Каждый модуль XBee S1 XB24-AWI-001 имеет уникальный 64-битный адрес. Средство радиосвязи XBee S1 используется в промышленных, научно-исследовательских целях, в аппаратуре широкого применения. Разработано и поддерживается Digi International.
С помощью устройства цифровой радиосвязи XBee S1 можно передавать текстовую информацию в режиме чата или отправлять текст только в одном направлении. Эта функция используется при передаче данных на различные электронные транспаранты, информационные и справочные табло. Актуально применение радиомодуля при управлении движущимися объектами. Свойства модуля цифровой радиосвязи XBee S1 делают его одним из наиболее удачных технических решений для беспроводной телеметрии и телемеханики.
 
Дистанционное управление


 
Кроме функции радиообмена данными между приборами модуль XBee S1 XB24-AWI-001 может работать как устройство, управления исполнительными механизмами и приема данных от датчиков. Для этого он имеет 8 цифровых входов-выходов и 6 входов АЦП разрядностью 10 бит.
Сейчас модули XBee S1 при упоминании в различных источниках инженерной информации часто именуют XBee 802.15.4. Применяемое в наименование уточнение S1 обозначает первую серию разработки.
 

Характеристики XBee S1 XB24-AWI-001

Питание
            напряжение 2,8…3,4 В
            ток
                        прием 50 мА
                        передача 45 мА
                        в режиме сна 10 мкА
Дальность связи
            открытое пространство 100 м
            в здании 30 м
Частота радиосвязи  2,4 ГГц
Мощность передачи 1 мВт
Чувствительность приемника –92 dBм
Шифрование 128 бит
Скорость передачи данных
            Максимальная 250 Кбод
            Практическая 80 Кбод
Температура окружающего воздуха при работе    –40…85 °C
 

 

Контакты, подключение, конструкция


 
На нижней стороне платы находятся контакты для установки в разъем. Между контактами расположен защищающий компоненты от механических и электромагнитных воздействий металлический кожух. Существует множество различных адаптеров для установки XBee S1. Один из них здесь. Настроенный специальной программой модуль XB24-AWI-001 устанавливается в розетки на специальной плате. Один из способов установки настроенного модуля показан здесь.
Связь микроконтроллера с модулем XBee S1 устанавливается через интерфейс UART. Для этого достаточно 4 провода: 2 питание, 1 для приема и 1 для передачи.
Подключение XBee S1 к Arduino.
Проще использовать совместно с XBee микроконтроллеры и МК модули питающиеся от 3,3 В. Если XB24-AWI-001 соединяется с Arduino UNO или микроконтроллерным модулем имеющим питание 5 В, то в линиях UART необходимо использовать цепи согласования уровней напряжений. О согласовании уровней мы рассказывали здесь в разделе ”Соединение с микроконтроллером”. Далее приводим упрощенную схему подключения к Arduino UNO, где цепи согласования не показаны.
 
  

Упрощенная схема подключения к Arduino UNO, цепи согласования уровней не показаны.

Контакт Arduino - контакт XBee S1:
 
3V3 – 1 питание,
GND – 10 общий,
Tx – 3 Dата In,
Rx – 2 Data Out.

 

Радиосеть XBee S1

Модули XBee S1 могут работать в сетях двух видов. Простая – связь между двумя модулями, оба равноправны, часто такую сеть называют точка-точка. Это простейшая одноранговая сеть. Один из модулей назначается координатором.
 


Модули XBee объединены в сеть точка-точка.
 
Более сложная сеть – топология звезда.
 


Модули XBee объединены в сеть звезда.
 
Роли модулей XB24-AWI-001 в сети: центральный модуль – координатор, остальные – оконечные устройства. Координатор обменивается сообщениями с оконечными устройствами. Оконечные устройства отправляют данные в координатор. Непосредственно между собой оконечные устройства не могут обмениваться данными. Объединенным в одну сеть модулям XB24-AWI-001 присваивается единый идентификатор сети. Передаваемые сообщения содержат адрес XBee S1, к которому направляются данные.
Есть два режима связи: unicast – от источника к приемнику и от источника всем радиомодема – широковещательный режим. В режиме unicast формируется ответ на полученное сообщение для подтверждения приема. Если ответ подтверждения приема не получен то сообщение дублируется. Unicast отлично подходит для связи точка-точка. При отправке сообщения в широковещательном режиме подтверждения приема нет. Здесь для увеличения надежности связи следует предусмотреть повторы отправки.
 

AT и API команды

Переключение между режимами АТ и АРI команд происходит с помощью программы X-CTU. AT команды используются для управления настройками. Режим AT установлен по умолчанию. В режиме AT модуль XBee S1 XB24-AWI-001 просто ретранслирует данные принимающему XBee S1, адрес которого указан в DH и DL. Для создания сети точка-точка радиомодем XBee S1 хорошо работает в режиме AT.
Более сложная сеть требует режим API. В режиме API данные находятся в структуре пакета, что необходимо для адресации, параметрирования и обратной доставки пакетов, а также опроса и передачи на цифровые контакты и получения данных от аналоговых входов. Преимущество режима API – скорости последовательной передачи модулей могут не совпадать.
Отправка в модуль AT команд для настройки в ручном режиме происходит с помощью терминальной программы. XBee S1 соединяется с ПК через преобразователь интерфейса, номер используемого порта ПК указывается в настройках терминальной программы. По умолчанию обычно используется скорость обмена данными 9600 бод.
Заводские настройки XBee S1 для связи с ПК:
 
baud rate : 9600
flow control: none
data bit: 8
parity: none
stop bits: 1
 
Проверьте установлен ли в терминальной программе режим локального эха это необходимо для отображения вводимых команд. Перед вводом AT команд в модуль его нужно перевести в режим ввода АТ. Для этого в начале работы отправляют в модуль строку 3 плюса:
 
+++
 
После ввода этого краткого сообщения терминальная программа обязательно должна выполнить перевод строки. В ответ должно появиться сообщение
 
ОК
 
Модуль радиосвязи находится ограниченное время в режиме ввода AT команд. Если в течении 10 с не введена ни одна команда, то модуль автоматически выйдет из этого режима. Через некоторое время придется повторить отправку +++.
 
Некоторые AT команды XBee S1.
 
ATVR                         показывает версию прошивки
ATID                          показывает идентификатор сети
ATCH                         показывает выбранный радиоканал, он обозначается латинскими буквами
ATSH                         показывает старшую часть адреса 32 бита, нули в старших разрядах могут                                        не отображаться
ATSL                          показывает младшую часть адреса 32 бита
ATRE                          возвращает заводские настройки
ATMY                        задает идентификатор модуля
ATDL и ATDH           установка младшего и старшего байтов назначения
ATID                          установка идентификатора сети
ATWR                        сохраняет настройки XBee в долговременной памяти
ATD                            настраивает режим контакта
ATBD3                       устанавливает скорость UART 9200 бод
ATBD5                       устанавливает скорость UART 38400 бод
ATCN                         выйти из режима ввода команд не ожидая 10 с
ATIR64                       каждые 100 (64h) миллисекунд передавать значение в XBee указанный в ATDL и                            ATDH.
Примечание: после команды ATRE, скорость передачи устанавливается 9600. После команды ATBD5 установить скорость передачи 38400, чтобы иметь возможность общаться с XBee.
 
АТ команды XBee 802.15.4
 

Параметры

При настройке XBee S1 на работу в сети выбранной топологии с помощью программных средств персонального компьютера в долговременную память записываются множество параметров. Приводим главные параметры.
 
ID – идентификатор сети значение 0…FFFF. Все устройства в одной сети имеют общий идентификатор сети.
MY –   уникальный собственный адрес модуля в сети. Это адрес источника. Используется как физический адрес этого устройства. Значение 0…FFFF.
DH – старшая часть адреса назначения. Указывая 0 мы сконфигурировали устройство использовать 16-битную адресацию.
DL – младшая часть адреса назначения.
При определении роли модуля в сети как координатора DH=0 и DL=FFFF (адрес для широковещательных отправлений). На остальных модулях записывают адрес координатора.
В DL следует установить адрес MY другого модуля. Для отправки и получения данных между двумя трансиверами MY и DL должны быть установлены одинаково.
SH – старшая часть серийного номера модуля, установленного на заводе
SL – младшая часть серийного номера модуля
RR – количество повторов сообщения, увеличение на 1 параметра приводит к фактическому увеличению на 3 повтора.
СН – радиоканал связи. В пределах радиочастотного диапазона называемого 2,4 ГГц существуют несколько фиксированных частот на которых происходит связь.
AP – установка режима API команд 0 – режим AT команд, 1 – режим API включен, 2 – режим API с экранирующими символами.
AES encryption enable – шифрование, по умолчанию отключено, параметр имеет значение 0. Другая величина включает шифрование.
 

Настройка режимов работы, проверка и обновление программы XBee S1 с помощью программы XCTU

Наиболее удобным инструментом настроить XBee S1 для работы в радиосети служит программа XCTU производителя Digi International радиомодема XBee S1. Установите XCTU.
 
С использованием преобразователя интерфейса
 
Подключите модуль к ПК через преобразователь интерфейса. Откройте окно программы.
 


 
Чтобы добавить модуль XBee S1 XB24-AWI-001нажмите на значок в верхней левой части окна Добавить устройство Add devices . Добавить поможет окно.
 

 
Укажите порт подключения модуля. Если заводские настройки модуля не менялись, то параметры не меняйте. Нажмите кнопку Finish. Если XCTU удалось найти модуль, то слева должна появиться секция "радиомодули", если нет то исправление проблем приведено здесь.
Нажмите на новый модуль, и подождите несколько секунд, пока XCTU считывает параметры конфигурации XBee S1. Затем параметры должны быть представлены на экране.


 
Здесь доступны параметры конфигурации. Следует проверить соответствие значениям: CH Channel=C, PAN ID=3332, DH=0, DL=0, MY=0.
Чтобы проверить связь необходимо подключить второй XBee S1 к компьютеру. Это значит добавить второе устройство. Второй вход будет добавлен в список "радиомодули".
 


Обратите внимание, что в списке слева два XBee. Значения конфигурации приведены для выделенного XBee S1.
 
Если вы запутались параметры какого именно модуля сейчас на экране, то посмотрите номер на наклейке на нижней стороне вашего модуля. Это серийный номер из двух частей, не редактируемый параметр.
 


Серийный номер на стороне контактов.
 
Как и для предыдущего модуля убедитесь, что все настройки установлены по умолчанию channel=C, PAN ID=3332, DH=0, DL=0, MY=0. Иначе сделать следующий шаг невозможно.
Нажмите на значок Switch to Consoles –   в верхней правой части окна. Это переключит программу на вкладку конфигурации. Будем использовать консоль, чтобы передать сообщение между XBee S1.
Следует открыть последовательное соединение на каждом устройстве, нажав значок подключения
  Значок изменится, и граница консоли станет зеленого цвета.
 

 
Затем нажмите на левой половине консоли и введите букву или цифру. Ввод дублируется справа в шестнадцатеричном представлении ASCII. Теперь нажмите на консоль другого модуля XBee S1. Передача сообщений должна происходить как изображено на анимации и видео.
 


 

 
Если не работает то прочитайте о решении возможных проблем.
Модули настроены по умолчанию. Теперь попробуем сконфигурировать сеть. Наши настройки позволят закрыть данные внутри нашей сети и исключить случайное воздействие соседних сетей. Каждому XBee S1 в сети должен быть назначен адрес источника данных MY. Другой параметр, адрес получателя. С помощью указания параметров можно сконфигурировать одностороннюю связь. Например, если модуль 1 имеет MY адрес 0x1234, и модуль 2 имеет адрес назначения 0x1234, то модуль 2 может посылать данные на модуль 1. Если модуль 2 имеет MY адрес 0x5201, и модуль 1 имеет адрес назначения 0x5200, то модуль 1 не может отправить данные на второй XBee S1.
 


Рядом на одном радиоканале С могут работать несколько сетей благодаря различным сетевым идентификаторам.
 
XCTU позволяет легко настроить параметры. Выберите вкладку Configuration . Здесь увидите поля настройки параметров: CH, ID, DH, DL и MY. Рядом с каждым из них текстовое поле, где вводят новые настройки.
Придумайте ID – уникальный сетевой идентификационный номер. Введите идентификатор сети в белом поле рядом с ID PAN ID. Сюда вводится шестнадцатеричное число из четырех шестнадцатеричных цифр, но если введете уникальное число из четырех обычных десятичных цифр, то это будет тоже верно и несколько проще.
Значения MY должны быть уникальными для каждого XBee S1 в сети. MY адрес может быть любым от 0x0000 до 0xFFFF. Введите в текстовое поле рядом с MY 16-bit Source Address. Если у вас только два XBee, то можно назначить у первого MY адрес 0, а у второго адрес 1.
Адрес назначения старшая DH и младшая DL части. Вы можете использовать эту пару значений в одном из двух способов настройки Xbee: DH установлен в 0, а в DL установлен MY адрес приемника. Второй способ – установите в DH старшую часть серийного номера SH и в DL установите SL модуля получателя сообщений.
 

 Любой метод работает, но установка в DH значения 0 и в DL адреса назначения MY проще. Вот пример для настройки:
 
Параметр                               Модуль 1        Модуль 2
 
Канал CH                              C                     C
Сеть ID                                   7C43               7C43
Адрес назначения DH          0                      0
Адрес назначения DL          1                      0
Собственный адрес MY      0                      1
 
После того как вы сделали изменения в текстовом поле нажмите на коричневый значок карандаша, чтобы записать изменения. Фон изменится с зеленого на синий, показывая что было записано новое значение отличное от значения по умолчанию.
 


Окно установки параметров Xbee после записи изменений конфигурации.
 
Сейчас, как и в прошлый раз, можно попробовать отправить данные с модуля на модуль по радио.
 
С использованием Arduino
 
Загрузите пустую программу в Arduino, приводим ее текст.
 
void setup() {
}
void loop() {
}
 
Вставьте XBee S1 в специальный модуль-адаптер Arduino, имеющий переключение режимов интерфейса. Установите переключатель модуля в положение USB.
 

 
Установите специальный модуль-адаптер в Arduino. Подключите Arduino к ПК с помощью кабеля USB. Предположим Arduino появляется как COM7 на компьютере. Вот как теперь выглядит программа X-CTU.
 

 
Нажмите кнопку Тест / Query, чтобы проверить связь модуля с ПК. Если связь установлена успешно, то вы должны увидеть что-то вроде этого:
 

 
Теперь попытаемся прочитать настройки XBee S1. Выберете вкладку конфигурации модема.
 

 
Нажмите кнопку Read, чтобы прочитать настройки.


 
При необходимости можно загрузить старую версию прошивки. Ранее мы видели тип модуля XB24 и версия прошивки 10E8.


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

 
На вкладке Modem Configuration выберите Download new versions, а затем File . Перейдите к файлу и выберите его.
 



 
Попробуем прочитать настройки модуля XBee нажав на кнопку чтение во вкладке Modem Configuration. Это должно выглядеть примерно так:
 

 

Реанимация

В процессе настройки произошла ошибка или сбой питания, что привело к полному игнорированию модулем поступающих команд. Для восстановлению существует специальная методика.
 
Откройте программу XCTU.
 

 
Установите скорость передачи 38400, Flow control NONE, 8 бит данных, четность нет, 1 стоп бит и установите галочку в графе No Baud Change. Затем перейдите на вкладку Modem configuration и отметьте всегда обновлять вариант прошивки, как показано ниже.




 
Выберите тип XB24, набор функций и версию из выпадающего меню. Вы должны знать тип модема и реанимируемую версию программы Xbee S1, либо вам нужно применить метод проб и ошибок. Например, для другого модуля, Choose modem= XB24-B, Function set = ZNET 2.5 CORDINATOR AT, version=1047.
 



 


 
Затем нажмите кнопку Write на Modem Parametr and Firmware. Вы получите диалог, как показано далее.
 

 
Модуль XBee S1 подключите к ПК. Диалог появится еще один раз. Соедините контакты GND и RST модуля. Через некоторое время диалог пропадет. Когда операция записи будет завершена, вы получите следующее сообщение.
 

 
Вернитесь на вкладку Настройки ПК и изменить скорость передачи на 9600 и снимите флажок No baud change. Нажмите кнопку Test / Query для получения сведений. Может потребоваться повторить процедуру несколько раз.
 

Конфигурация в ручном режиме и проверка работы AT команд

Программы управляют работой модуля цифровой радиосвязи отправляя ему по интерфейсу UART AT или API команды. Использовать AT команды проще, хотя и возможности их меньше чем у API команд. Перед составлением программы следует убедиться, как AT команды влияют на работу модуля XBee S1. Для этого их отправляют из терминальной программы в ручном режиме. Используется утилита HyperTerminal из стандартного набора инструментов Windows. Параметры связи ПК и модуля в утилите HyperTerminal следует настроить в соответствии с настройками по умолчанию UART модуля. Скорость 9600 бод, нет контроля четности, 8 бит данных, нет бита паритета, 1 стоп бит. Все AT команды вводятся большими английскими буквами. Ввод каждой команды должен сопровождаться ответом модуля ОК выводимым на следующей строке.
 
+++
ОК
ATRE
ОК
ATID3332
ОК
ATCHC
ОК
ATBD5
ОК
ATWR
ОК
 
После команды ATBD5, вы должны установить скорость передачи в терминальной программе 38400 бод. Эти команды присваивают модулю настройки: сетевой идентификатор 1234, использование радиоканала D, передача данных без шифрования.
 

Беспроводная связь между двумя Arduino с использованием Xbee S1


 
Для установки связи между двумя XBee S1 следует произвести действия состоящие из двух этапов: установка параметров и загрузка программ передачи и приема. В начале с помощью АТ команд нужно установить идентификатор сети, адрес приема и адрес назначения, скорость передачи информации при связи. Понадобится установленная на ПК программа последовательный терминал. Рекомендуем использовать программу Coolterm, она скачивается из интернета бесплатно. Подключите платформу Arduino к компьютеру и загрузите пустую программу в ардуино как рассказано выше в разделе “Настройка режимов работы, проверка и обновление программы XBee S1 с помощью программы XCTU“ в подразделе “С использованием Arduino“. Это позволит обойти bootloader и превратить Arduino в преобразователь интерфейса USB-UART. Соедините модуль Xbee S1 c Arduino как рассказано выше в разделе “Контакты, подключение, конструкция“. Соедините ардуино с портом ПК соответствующим кабелем. Отправьте в модуль XBee S1 XB24-AWI-001 следующие АТ команды используя терминальную программу Coolterm. Параметры обмена в терминальной программе должны быть указаны в Options как рассказано в предыдущих разделах.
 

 
Ведите следующие команды:
 
+++
ATID20
ATBD3
ATMY10
ATDH0
ATDL12
ATWR
ATCN
 
Для приемника:
 
+++ ….(в ответ вы должны получить ОК)
ATID20
ATBD3
ATMY12
ATDH0
ATDL10
ATWR
ATCN
 
После установки параметров модулей запишем программы в ардуино. Цифровые входы 8, 9, 10, 11 передатчика соединяются с общим проводом, а приемник отображает номер контакта передатчика соединенного с общим.
 
Программа передатчика.
 

 
const int buttonPin = 8; // номер контакта нажимаемой кнопки
const int buttonPin1 = 9;
const int buttonPin2 = 10;
const int buttonPin3 = 11;
const int ledPin = 13; // это опционально
//Variables will change:
int ledState = HIGH; // текущее состояние выходного контакта
int buttonState;
int buttonState1;
int buttonState2;
int buttonState3;
int lastButtonState = LOW; // предыдущее чтения состояния входного контакта
int lastButtonState1 = LOW;
int lastButtonState2 = LOW;
int lastButtonState3 = LOW;
long lastDebounceTime = 0; // в последний раз выходной контакт был переключен
long lastDebounceTime1 = 0;
long lastDebounceTime2 = 0;
long lastDebounceTime3 = 0;
 
long debounceDelay = 50; //время дребезга. возрастет, если выход дрожит
void setup() { pinMode(buttonPin, INPUT);
 pinMode(buttonPin1, INPUT);
 pinMode(buttonPin2, INPUT);
 pinMode(buttonPin3, INPUT);
 pinMode(ledPin, OUTPUT); // задать начальное состояние светодиода
 digitalWrite(ledPin, ledState);
 Serial.begin(9600);
 }
 void loop()
 {
 int reading = digitalRead(buttonPin); // прочитать состояние кнопки
 int reading1 = digitalRead(buttonPin1);
 int reading2 = digitalRead(buttonPin2);
 int reading3 = digitalRead(buttonPin3);
 
// If the switch changed, due to noise or pressing:
 if (reading != lastButtonState) {
 // reset the debouncing timer
 lastDebounceTime = millis();
 }
 // If the switch changed, due to noise or pressing:
 if (reading1 != lastButtonState1) {
 // reset the debouncing timer
 lastDebounceTime1 = millis();
 }
 // If the switch changed, due to noise or pressing:
 if (reading2 != lastButtonState2) {
 // reset the debouncing timer
 lastDebounceTime2 = millis();
 }
 // If the switch changed, due to noise or pressing:
 if (reading3 != lastButtonState3) {
 // reset the debouncing timer
 lastDebounceTime3 = millis();
 }
 if ((millis() - lastDebounceTime) > debounceDelay) {
 // whatever the reading is at, it's been there for longer
 // than the debounce delay, so take it as the actual current state:
 // if the button state has changed:
 if (reading != buttonState) {
 buttonState = reading;
 // only toggle the LED if the new button state is HIGH
 if (buttonState == HIGH) {
 ledState = !ledState;
 Serial.write("SW1 was pressed ");
 }
 }
 }
 //2
 if ((millis() - lastDebounceTime1) > debounceDelay) {
 // whatever the reading is at, it's been there for longer
 // than the debounce delay, so take it as the actual current state:
 // if the button state has changed:
 if (reading1 != buttonState1) {
 buttonState1 = reading1;
 // only toggle the LED if the new button state is HIGH
 if (buttonState1 == HIGH) {
 ledState = !ledState;
 Serial.write("SW2 was pressed ");
 }
 }
 }
 //3
 if ((millis() - lastDebounceTime2) > debounceDelay) {
 // whatever the reading is at, it's been there for longer
 // than the debounce delay, so take it as the actual current state:
 // if the button state has changed:
 if (reading2 != buttonState2) {
 buttonState2 = reading2;
 // only toggle the LED if the new button state is HIGH
 if (buttonState2 == HIGH) {
 ledState = !ledState;
 Serial.write("SW3 was pressed ");
 }
 }
 }
 //4
 if ((millis() - lastDebounceTime3) > debounceDelay) {
 // whatever the reading is at, it's been there for longer
 // than the debounce delay, so take it as the actual current state:
 // if the button state has changed:
 if (reading3 != buttonState3) {
 buttonState3 = reading3;
 // only toggle the LED if the new button state is HIGH
 if (buttonState3 == HIGH) {
 ledState = !ledState;
 Serial.write("SW4 was pressed ");
 }
 }
 }
 lastButtonState = reading;
 lastButtonState1 = reading1;
 lastButtonState2 = reading2;
 lastButtonState3 = reading3;
 }
 
Программа приемника.
 

 
void setup()
 {
 Serial.begin(9600); // установка скорости обмена данными 9600 бод
 }
 
void loop() {
 while(Serial.available() > 0)
 {
 Serial.print(Serial.read()); // вывод данных в последовательный буфер
 }
 }
 
Включите приемник и передатчик. Замыкая контакты передатчика вы должны видеть как приемник передает на подключенный ПК данные отображаемые в окне последовательного монитора Arduino IDE.
 

Отправка и получение текстовых сообщений

Используя беспроводное соединение между модулями XBee S1 можно обмениваться текстовыми сообщениями и создать небольшой чат. Для ознакомления с этой функцией XBee S1 потребуется 2 компьютера, на которых есть терминальные программы. К каждому подключите модуль XBee S1 XB24-AWI-001 через преобразователь интерфейса. Можно использовать один компьютер с подключенными двумя модулями, но это несколько сложнее.
 

 
Первый XBee S1 обозначим A. Будем использовать терминальную программу CoolTerm
 

 
Теперь следует открыть CoolTerm и нажать на название раздела Опции, выбрать последовательный порт, к которому подключен модуль радиосвязи. Если вы не уверены какой это порт, то посмотрите на список доступных портов, а затем отсоединить XBee S1 от компьютера. Нажать кнопку Re-Scan последовательных портов и проверить какой последовательный порт исчез. Восстановить XBee S1, нажать кнопку Re-Scan последовательных портов и выбрать этот порт. Установить параметры обмена как указано по умолчанию выше в других разделах страницы. В списке на левой стороне окна настроек, нажать кнопку Терминал. Активировать локальное эхо. Это позволит увидеть, что вы набираете на клавиатуре.
 


Установка параметра терминальной программы локальное эхо.
 
Нажать кнопку ОК, чтобы сохранить настройки, закройте окно Параметры. Нажать кнопку Connect на панели инструментов. Вы должны увидеть Connected в строке состояния в нижней части окна. Ввести и отправить в модуль +++ для входа в режим командной строки. Вы должны увидеть ответ ОК.
Вот настроечные команды модуля А и ответы на их ввод.
 
+++
ОК
ATID3001
ОК
ATMY1
ОК
ATDH0
ОК
ATDL2
ОК
ATWR
ОК
 
Команда ATWR сохраняет настройки.
 
Настройка второго модуля, назовем его В.
 
Здесь параметру MY присвоим 2, а DL присвоим 1. Вот как выглядит новая сессия в окне терминальной программы.
 
+++
ОК
ATID3001
ОК
ATMY2
ОК
ATDH0
ОК
ATDL1
ОК
ATWR
ОК
 
Подключите модуль XBee S1 XB24-AWI-001 А к одному ПК, а модуль B к другому ПК. Включите программу CoolTerm на обоих ПК. Если все настроено правильно, то текст набираемый в терминальной программе на первом компьютере будет передан на второй компьютер и появится в окне программы.
 

 
Если у вас есть более чем два XBee S1, то можно устроить сеть звезда. Предположим начальник рассылает указания подчиненным, а те отчитываются о выполнении работ. Сеть звезда подходит для такого формата обмена сообщениями. Для организации сети звезда один модуль нужно назначить координатором. Укажите в параметрах координатора тот же ID сети, а затем установите значения параметров DH=0 и DL=FFFF. На остальных модулях записывают адрес координатора.
 


Макет информационного табло принимающего текст через беспроводную сеть XBee.
 
Диспетчеризация транспорта на магнитной подушке с помощью Xbee S1


 
 
 Документация Xbee S1

            Описание

            Руководство

            Многоточечная связь

            Конфигурирование

            АТ команды

            Станица документов

База знаний от производителя
Страница авторасчета фрейма API от Digi
Много полезного от DIGI
Домашняя страница
Примеры применения от производителя
Применение

Книги
            Начало работы с модулями XBee
            Беспроводные сети датчиков

Программа XCTU



Рекомендуемые книги

Arduino, датчики и сети для связи устройств          Электроника. Проекты с использованием контроллера Arduino (2 изд). Петин В.А.          Изучаем Arduino: инструменты и методы технического волшебства. Блум Дж.
 
Вверх