Интерфейс XBee с Raspberry Pi Model 2 | Доступен исходный код
Интерфейс XBee с Raspberry Pi Model 2 | Доступен исходный код
Модуль XBee Pro (S2) представляет собой беспроводной приемопередатчик XBee ZB ZigBee на основе Mesh-протокола, разработанный Digi International, с превосходной дальностью прямой видимости 1,6 км (одна миля) (для 50 мВт, соединение U.FL) и 90 метров в помещении. Это устройство работает от напряжения 3,3 В постоянного тока при токе 295 мА в режиме передачи и имеет максимальную скорость передачи данных 250 кбит/с. Данные от процессора к модулю XBee передаются через последовательный порт.
Raspberry Pi Model 2 — это Raspberry Pi второго поколения, выпущенный в феврале 2015 года. Это компьютер на базе Linux, оснащенный мощным четырехъядерным процессором Broadcom BCM2836 ARMv7 900 МГц и SDRAM объемом 1 ГБ. Всего он имеет 40 контактов, в том числе 17 контактов GPIO, а также HDMI, слот для карты micro SD, Ethernet, USB 2.0 и 3.5 аудиовыходных порта.
Программное обеспечение
Рис. 1: Экран XBee Explorer
Существует множество операционных систем, разработанных для Raspberry Pi Model 2, но наиболее широко используются Raspbian (на базе Linux) и Microsoft Windows 10 IOT Core. Если вы новичок в Raspberry Pi Model 2, перейдите по ссылке для получения информации о Raspberry Pi. В этой статье используется компилятор Python, а OS, необходимый для Raspberry Pi, — Raspbian.
Цель — отправить символ в модуль XBee и получить его в другом модуле XBee. Для отправки/получения данных через XBee модули должны быть настроены, а для этого требуется программное обеспечение XCTU. XCTU — это бесплатное программное обеспечение, разработанное Digi International, которое позволяет пользователю настраивать модули XBee. XCTU можно загрузить по ссылке
Цепь и работа
Необходимые компоненты: Raspberry Pi Model 2, два модуля XBee с экранами Explorer и несколько перемычек между гнездами.
Рис. 2: Скриншот программного обеспечения XCTUрис. 3: Настройка COM-порта
Чтобы настроить модуль XBee, подключите XBee Explorer Shield к компьютеру через USB.
Рис. 4. Вид снизу типичного модуля XBEE
Затем запустите программное обеспечение XCTU и щелкните значок «Добавить устройства». Скриншот вывода XCTU показан на рис. 2. Вы получите окно «Добавить радиоустройство». Подтвердите COM-порт Explorer и установите скорость передачи данных на 9600, биты данных на 8, четность на нулевой и нажмите «Готово», как показано на рис. 3. Теперь нажмите «Модуль XBee» слева от экрана конфигурации радио (см. Рис. 5), чтобы настроить его. В сети связи существует три типа устройств : координатор, конечное устройство и сначала настройте XBee в качестве координатора.
Для этого нажмите «Обновить прошивку», установите для нее значение «Координатор XBee AT», выберите последнюю доступную версию прошивки, а затем нажмите «Готово». Каждый XBee имеет две важные клавиши, SH и SL, которые помогают в передаче и приеме данных. SL уникален для каждого XBee, тогда как SH одинаков. Вид снизу типичного модуля XBee показан на рис. 5 вместе с его номером SL как 406F70BE и SH как 0013A200. Координатор отправляет данные, поэтому XBee, подключенный к Raspberry Pi, устанавливается в качестве координатора.
Конечное устройство получает данные. Здесь мы будем использовать консольный режим X-CTU для просмотра полученных данных, поэтому XBee, подключенный к компьютеру с XCTU, должен быть установлен в качестве конечного устройства. Маршрутизатор (разновидность ретранслятора) — дополнительный режим; при этом XBee просто получает, а затем передает одни и те же данные, поэтому этот режим используется для расширения радиуса действия передатчика. Чтобы настроить XB2 в качестве конечного устройства, повторите шаги, выполненные для настройки XB1, обновите прошивку и замените его значения DH и DL значениями SH и SL координатора XB1 соответственно. Теперь XB1 может передавать данные, а XB2 может их принимать. Подробную информацию о модулях координатора (XB1) и конечного устройства (XB2) можно увидеть на рис. 6 и рис. 7 соответственно.
Подробную информацию о модулях координатора (XB1) и конечного устройства (XB2) можно увидеть на рис. 6 и рис. 7 соответственно.
Взаимодействие XBee с Raspberry Pi
Рис. 7. Подробности конфигурации конечного устройства
Связь между XBee и Raspberry Pi осуществляется посредством последовательной связи. Соединения для последовательной связи между XBee и Raspberry Pi Model 2 приведены ниже, а также показаны на рис. 8.
Рис. 8. Интерфейс XBee с Raspberry Pi Model 2Рис. 9: Скриншот minicom на Raspberry Pi
Rx (контакт 3) XBee ® контакт 08 (GPIO14)
Tx (контакт 2) XBee ® контакт 10 (GPIO15)
Vcc (контакт 1) XBee ® контакт 01 (3,3 В постоянного тока)
Земля (контакт 10) XBee ® контакт 06 (земля)
Вам необходимо перезагрузить плату Raspberry Pi после этих подключений и настроек, как описано ниже.
Чтобы использовать последовательный порт для связи между Raspberry Pi и XBee, необходимо настроить некоторые конфигурации в файлах cmdline.txt и inittab.txt . Запустите «Терминал» на плате Raspberry Pi и затем выполните указанную последовательность команд:
[stextbox id="grey"]pi@raspberrrypi ~ $
обновление sudo apt-get[/stextbox]
// Проверяем наличие обновлений
[stextbox id="grey"]pi@raspberrrypi ~ $ sudo apt-get обновление[/stextbox]
// Устанавливает обновления if любые
[stextbox id="grey"]pi@raspberrrypi ~ $ cd /etc[/stextbox]
// Это должно сменить каталог на папку etc
[stextbox id="grey"]pi@raspberrypi ~ /etc $ sudo chmod 666
/dev/ttyAMA0[/stextbox]
// Чтобы добавить разрешение на использование последовательного порта
[stextbox id="grey"]pi@raspberrypi ~ /etc $ sudo apt-get
установить python-serial[/stextbox]
// Это установит последовательную библиотеку на Raspberry Pi
[stextbox id="grey"]pi@raspberrrypi ~ /etc $ cd[/stextbox]
// Это должно изменить каталог на корневую папку
[stextbox id="grey"]pi@raspberrrypi ~ $ sudo apt-get install
миником[/stextbox]
// Это установит Minicom на ваш Raspberry Pi
[stextbox id="grey"]pi@raspberrrypi ~ $ cd /boot[/stextbox]
// Это должно изменить каталог на папку Boot
[stextbox id="grey"]pi@raspberrrypi ~ /boot $ sudo cp
cmdline.txt cmdlinebackup.txt[/stextbox]
// Это должно сделать копию cmdline.txt и переименовать ее в cmdlinebackup.txt
[stextbox id="grey"]pi@raspberrrypi ~ /boot $ sudo nano
cmdline.txt[/stextbox]
// Это должно открыть cmdline.txt в текстовом редакторе
// Удалить: «console=ttyAMA0, 115200 console=ttyl»
// Нажмите Ctrl+O для сохранения и Ctrl+X для выхода
[stextbox id="grey"]pi@raspberrrypi ~ /boot $ cd /etc[/stextbox]
// Это должно сменить каталог на папку etc
[stextbox id="grey"]pi@raspberrrypi ~ /etc $ sudo cp inittab
inittab.backup[/stextbox]
// Это должно сделать копию inittab и переименовать ее в inittab.backup
[stextbox id="grey"]pi@raspberrrypi ~ /etc $ sudo nano
inittab[/stextbox]
// Это должно открыть inittab в текстовом редакторе
// Прокомментируйте строку: «T0:23:respawn:/sbin/getty –L ttyAMA0 115200 vt100» // добавив перед ней «#».
// Нажмите Ctrl+O для сохранения и Ctrl+X для выхода
[stextbox id="grey"]pi@raspberrrypi ~ $ sudo minicom –b 9600
–o –D /dev/ttyAMA0[/stextbox]
// Это установит скорость передачи данных порта: ttyAMA0 на 9600
[stextbox id="grey"]pi@raspberrrypi ~ /etc $ cd[/stextbox]
// Это должно изменить каталог на основную папку Pi
[stextbox id="grey"]pi@raspberrrypi ~ $ sudo restart[/stextbox]
// Это должно перезагрузить систему
Теперь последовательный порт Raspberry Pi отключен от последовательности загрузки и может использоваться для связи с модулем XBee. Скорость передачи данных default ttyAMA0 равна 115200, но для XBee требуется скорость передачи 9600 бод. Вы можете изменить скорость передачи данных в программном обеспечении minicom, как показано ниже:
[stextbox id="grey"]
pi@raspberrrypi ~ $ sudo minicom –b 9600
–o –D /dev/ttyAMA0
[/stextbox]// Это установит скорость передачи данных порта ttyAMA0 на 9600
Появится окно, показанное на рис. 9. Нажмите клавиши Ctrl+A, а затем Q на клавиатуре, чтобы выйти без сброса настроек.
Код Python
Запустите Raspberry Pi и создайте новую папку «XBeeTest». В этом уроке используются библиотеки «serial» и «time». Создайте новый файл с помощью редактора nano, как показано ниже:
[stextbox id="grey"]
$ pi@raspberrrypi ~ $ cd /XBeeTest
pi@raspberrrypi ~ /XBeeTest$ sudo nano
serial_XBee.py
Здесь серийный_XBee.py — это имя проекта. Введите следующий код:
Чтобы сохранить этот код, нажмите клавиши Ctrl+O, а затем Ctrl+X.
Рис. 10: Консоль приемника
Этот код отправляет символ «A» на консоль (см. рис. 10) получателя, делает паузу на секунду, а затем отправляет символ «B».
Создание и тестирование
Теперь пришло время протестировать наш проект. После сохранения кода и подключения модуля XBee в режиме координатора к Raspberry Pi загрузите Raspberry Pi и с терминала напишите следующие команды для выполнения вашей программы. Папка назначения — XBeeTest , а имя файла — serial_XBee.py
Рис. 11: Прототип устройства отправки данных
[stextbox id="grey"]
pi@raspberrrypi ~ $ cd /XBeeTest[/stextbox]
// Изменяем каталог на XBeeTest
[stextbox id="grey"]
pi@raspberrrypi /XBeeTest
$ sudo python серийный_XBee.py
[/stextbox]
// Запускаем программу Serial_XBee.py
Эта программа должна отправить символ «A», сделать паузу на секунду, а затем отправить символ «B». Обратите внимание, что как только вы включите оба модуля XBee, должен загореться ASSI (индикация ассоциации) LED. В этом case это желтый LED, как показано в прототипе (рис. 11).
Теперь, чтобы подтвердить получение данных, подключите модуль XBee вашего конечного устройства к компьютеру, откройте режим консоли в XCTU, начните последовательную связь с модулем XBee. Вы должны получить результат на экране, как показано на рис. 10.
Эта статья была первоначально опубликована 19 сентября 2016 года и недавно обновлена.
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба