- Требования к оборудованию
- Настройка модулей XBee с помощью XCTU
- Принципиальная схема приемной части
- Настройте Raspberry Pi для последовательной связи
- Программирование Raspberry Pi для связи XBee
- Тестирование беспроводной связи XBee с помощью Raspberry Pi
В предыдущем уроке мы связали модуль XBee с Arduino Uno и заставили их обмениваться данными по беспроводной сети с помощью модуля XBee. Теперь мы соединим модуль XBee с Raspberry Pi, который будет действовать как приемник и обеспечивать беспроводную связь с другим модулем XBee (платой проводника XBee), который последовательно подключен к ноутбуку.
Требования к оборудованию
- 1 x Raspberry Pi с установленным в нем Raspbian
- 2 модуля XBee Pro S2C (можно использовать любую другую модель)
- 1 плата XBee explorer (опционально)
- 1 х секционная плата Xbee (опционально)
- USB-кабели
- Светодиоды
Предполагается, что на вашем Raspberry Pi уже установлена операционная система. Если нет, перед продолжением следуйте руководству «Начало работы с Raspberry Pi». Здесь мы используем Rasbian Jessie, установленный Raspberry Pi 3.
Здесь внешний монитор с использованием кабеля HDMI используется в качестве дисплея для подключения к Raspberry Pi. Если у вас нет монитора, вы можете использовать SSH-клиент (Putty) или VNC-сервер для подключения к Raspberry pi с помощью ноутбука или компьютера. Узнайте больше о настройке Raspberry Pi без подключения к голове здесь.
Настройка модулей XBee с помощью XCTU
Как мы узнали в предыдущем руководстве по ZigBee Introduction, модуль XBee может действовать как координатор, маршрутизатор или конечное устройство, но его необходимо настроить для работы в желаемом режиме. Итак, перед использованием модулей XBee с Raspberry Pi мы должны настроить эти модули с помощью программного обеспечения XCTU.
Для подключения модуля XBee к ноутбуку используется преобразователь USB в последовательный порт или специально разработанная плата проводника. Просто подключите модуль XBee к плате Explorer и подключите его к ноутбуку с помощью кабеля USB.
Если у вас нет платы преобразователя или проводника, то плату Arduino можно использовать в качестве устройства USB для последовательного порта, которое может легко взаимодействовать с XBee и ноутбуком. Просто загрузите пустой скетч на плату Arduino, и теперь он может вести себя как конвертер USB в последовательный.
Настройка модулей XBee:
В этом руководстве для настройки модулей XBee используется плата Explorer.
Загрузите программное обеспечение XCTU по этой ссылке и установите его. После загрузки и установки программного обеспечения XCTU откройте его и убедитесь, что ваш модуль XBee правильно подключен. Проверьте COM-порт платы Arduino в диспетчере устройств.
1. Теперь нажмите кнопку поиска. Это покажет вам все RF-устройства, подключенные к вашему ноутбуку. В нашем случае он покажет только один модуль XBee.
2. Выберите последовательный порт платы Explorer / Arduino и нажмите Далее.
3. В следующем окне установите параметры USB-порта, как показано ниже, и нажмите «Готово».
4. Выберите обнаруженное устройство и нажмите Добавить выбранное устройство . Этот процесс добавит ваш модуль XBee в панель управления XCTU.
5. Теперь вы можете настроить свой модуль XBee в этом окне. Вы можете использовать либо AT-команды, либо ввести данные вручную. Как видите, на левой панели отображается R, что означает, что XBee находится в режиме маршрутизатора. Мы должны сделать его координатором передающей части.
Сначала обновите прошивку, нажав кнопку «Обновить прошивку».
6. Выберите семейство продуктов вашего устройства, которое доступно на задней панели модуля XBee. Выберите набор функций и версию прошивки, как выделено ниже, и нажмите «Обновить».
7. Теперь вы должны предоставить данные ID, MY и DL, чтобы установить соединение с другим XBee. ID остается одинаковым для обоих модулей. Только обмен данными MY и DL, т.е. MY для приемника XBee становится DL передатчика XBee (координатора), а DL для приемника XBee становится MY передатчика XBee. Сделайте CE координатором и нажмите кнопку Write. Как показано ниже.
ATDL |
НА МОЙ |
||
Координатор XBee 1 |
|||
Конечное устройство XBee 2 |
8. После записи вышеуказанных данных в передатчик, отключите его от платы проводника и подключите к нему второй модуль XBee. Повторите тот же процесс, что и выше, только измените DL, MY и CE. Поскольку мы сделаем второй XBee как конечное устройство, в раскрывающемся меню CE выберите конечное устройство и нажмите кнопку записи.
9. Теперь наши модули XBee готовы к взаимодействию с Raspberry Pi. Мы подключим передатчик XBee к ноутбуку и приемник XBee с Raspberry Pi. Затем подайте команды на приемную часть с ноутбука. ноутбук.
Принципиальная схема приемной части
Подключения для взаимодействия модуля ZigBee с Raspberry PI показаны на принципиальной схеме.
Подключения:
- Tx (pin2) XBee -> Tx pin Raspberry Pi
- Rx (pin3) XBee -> Rx pin Raspberry Pi
- GND (pin10) XBee -> GND контакта Raspberry Pi
- Vcc (Pin1) XBee -> 3.3 В pin Raspberry Pi
- Светодиод подключен к GPIO 23
Настройте Raspberry Pi для последовательной связи
Теперь мы настроим Raspberry Pi для последовательной связи. По умолчанию аппаратный последовательный порт Pi отключен. Итак, мы должны включить его перед началом подключения.
1. В терминале запустите команду raspi-config .
2. Перейдите к опции 5 " Параметры интерфейса" и нажмите "Ввод". Теперь выберите параметр P6 Serial и включите его, а затем сохраните.
Выйдите из терминала, и вы готовы установить соединение между Raspberry Pi и XBee. GPIO14 и 15 будут действовать как Tx и Rx соответственно, и они доступны в порту / dev / ttyS0 raspberry pi.
Теперь мы напишем сценарий Python, который будет включать светодиод всякий раз, когда мы получаем «a» от передатчика XBee.
Программирование Raspberry Pi для связи XBee
Полная программа на Python для взаимодействия XBee с Raspberry Pi приведена в конце.
Во-первых, мы должны импортировать библиотеки времени, серийного номера и RPi.GPIO с помощью функции импорта.
время импорта импорт последовательного импорта RPi.GPIO как GPIO …
Теперь напишите свойства последовательного соединения, определите порт, скорость передачи и четность, как показано ниже.
ser = serial.Serial ( порт = '/ dev / ttyS0', скорость передачи = 9600, четность = serial.PARITY_NONE, стоп-биты = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, таймаут = 1 )
Написать все посыл и принимающие элементы в то время как цикл.
а 1:
Вы можете использовать функцию ser.write для отправки сообщений на сторону передатчика. Раскомментируйте строки ниже, чтобы отправить подсчет.
# ser.write (str.encode ('Счетчик записи:% d \ n'% (counter))) # time.sleep (1) #counter + = 1
Для получения сообщений мы должны использовать функцию ser.readline () . Сохраните входящее сообщение в переменной и проверьте условие. Если входящее сообщение - «а», включите светодиод на 3 секунды, а затем выключите светодиод.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Полный код Python с демонстрационным видео приводится в конце руководства. Вставьте код в любой текстовый редактор Pi и сохраните его. Запустите сценарий в терминале, используя sudo python script_name.py ИЛИ вы можете использовать Python IDE и Shell для выполнения сценария.
Тестирование беспроводной связи XBee с помощью Raspberry Pi
Теперь мы готовы протестировать наш передатчик и приемник XBee. Чтобы дать команду передатчику, мы будем использовать консольный терминал XCTU. Щелкните значок консоли рядом с параметром настроек. Затем нажмите кнопку «Открыть», чтобы подключить XBee к ноутбуку.
Введите "a" в журнал консоли. Вы увидите, что светодиод загорится на 3 секунды, а затем погаснет.
Таким образом вы также можете подключить передатчик XBee к плате Arduino, как описано в предыдущем руководстве, и заставить Raspberry Pi и Arduino взаимодействовать друг с другом.