- Вимоги до обладнання
- Налаштування модулів 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 x модулі XBee Pro S2C (можна використовувати будь-яку іншу модель)
- 1 x плата провідника XBee (необов’язково)
- 1 x дошка Xbee Breakout (додатково)
- 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:
У цьому посібнику дошка Explorer використовується для налаштування модулів XBee.
Завантажте програмне забезпечення XCTU за цим посиланням та встановіть його. Завантаживши та встановивши програмне забезпечення XCTU, відкрийте його та переконайтеся, що ваш модуль XBee правильно підключений. Перевірте COM-порт плати Arduino в диспетчері пристроїв.
1. Тепер натисніть на кнопку пошуку. Це покаже всі радіочастотні пристрої, підключені до вашого ноутбука. У нашому випадку він буде показувати лише один модуль XBee.
2. Виберіть послідовний порт плати Explorer / плати Arduino і натисніть Далі.
3. У наступному вікні встановіть параметри порту USB, як показано нижче, і натисніть кнопку Готово.
4. Виберіть виявлений пристрій і натисніть Додати вибраний пристрій . Цей процес додасть ваш модуль XBee до інформаційної панелі XCTU.
5. Тепер ви можете налаштувати свій модуль XBee у цьому вікні. Ви можете використовувати команди AT або вводити дані вручну. Як бачите, на лівій панелі відображається символ R, що означає, що XBee перебуває в режимі маршрутизатора. Ми повинні зробити його координатором для передавача.
Спочатку оновіть мікропрограму, натиснувши Оновити мікропрограму.
6. Виберіть сімейство продуктів вашого пристрою, яке доступне на задній панелі вашого модуля XBee. Виберіть набір функцій та версію мікропрограми, як зазначено нижче, і натисніть Оновити.
7. Тепер вам потрібно надати дані ID, MY та DL, щоб встановити зв’язок з іншими XBee. Ідентифікатор залишається однаковим для обох модулів. Лише обмін даними MY та DL, тобто MY для приймача XBee, стає DL передавача XBee (координатора), а DL для приймача XBee стає МОЙ передавача XBee. Зробіть CE координатором, а потім натисніть кнопку Написати. Як показано нижче.
ATDL |
ATMY |
||
Координатор 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 pin Raspberry Pi
- Vcc (Pin1) XBee -> 3.3v pin Raspberry Pi
- Led підключений до GPIO 23
Налаштування Raspberry Pi для послідовного зв'язку
Тепер ми налаштуємо Raspberry Pi для послідовного зв'язку. За замовчуванням апаратний послідовний порт Pi вимкнено. Отже, ми повинні його ввімкнути перед початком підключення.
1. У терміналі запустіть команду raspi-config .
2. Перейдіть до опції 5 Параметри взаємодії та натисніть Enter. Тепер виберіть параметр P6 Serial та увімкніть його, а потім збережіть.
Вийдіть з терміналу, і ви готові встановити зв’язок між Raspberry Pi та XBee. GPIO14 та 15 будуть діяти як Tx та Rx відповідно, і вони доступні у / dev / ttyS0 порту малинового pi.
Тепер ми будемо писати скрипт на python, щоб увімкнути світлодіод, коли отримуємо `` a '' від сторони передавача XBee.
Програмування Raspberry Pi для спілкування на XBee
Повна програма python для взаємодії XBee з Raspberry Pi наведена в кінці.
По-перше, нам потрібно імпортувати бібліотеки часу, послідовного та RPi.GPIO за допомогою функції імпорту.
час імпорту імпорт послідовний імпорт RPi.GPIO як GPIO …
Тепер напишіть властивості послідовного з'єднання, визначте порт, швидкість передачі даних і парності, як показано нижче.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
Написати все посил і приймають елементи в той час як цикл.
в той час як 1:
Ви можете використовувати функцію ser.write для надсилання повідомлень на сторону передавача. Розкоментуйте наведені нижче рядки, щоб надіслати підрахунок.
# ser.write (str.encode ('Запис лічильника:% d \ n'% (лічильник))) # time.sleep (1) #counter + = 1
Для отримання повідомлень ми повинні використовувати функцію ser.readline () . Збережіть вхідне повідомлення у змінну та перевірте стан. Якщо вхідне повідомлення "a", увімкніть світлодіод на 3 секунди, а потім вимкніть світлодіод.
x = ser.readline (). strip () print (x), якщо 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 спілкувалися між собою.