Я мог отправлять и получать команды из командной строки локального (хотя и удаленного) хоста XBee на удаленный (вторичный, вне сети) хост Xbee. Я нашел ответ, когда начал смотреть, как последовательные устройства могут открывать терминал входа в систему, и пришел к инструменту getty. Вот мои инструкции по настройке для использования в прозрачном режиме. Я все еще пытаюсь заставить работать python-xbee и другие инструменты, чтобы реализовать ту же концепцию, но через режим API. Обратите внимание, что приведенные ниже инструкции представляют собой 95% -ное решение, но должны помочь рядовому пользователю уверенно двигаться вперед. Я не являюсь первоначальным автором приведенных ниже шагов в их формате, но нашел каждый шаг и объединил их на различных форумах вопросов и ответов, чтобы прийти к решению:
Сначала приобретите программное обеспечение Digi Xbee X-CTU (не устанавливается на устройства ARM, такие как Raspberry или Odroid): XCTU: установите со следующей ссылки Digi.com, но перейдите по FTP-ссылке соответствующего программного обеспечения:
https://www.digi.com/support/productdetail?pid=3352&type=drivers
64-разрядная версия Linux: ftp://ftp1.digi.com/support/utilities/40002881_R. бежать
32-разрядная версия Linux: ftp://ftp1.digi.com/support/utilities/40002880_R. бежать
Windows: ftp://ftp1.digi.com/support/utilities/40003026_T.exe < / а>
Mac: ftp://ftp1.digi.com/support/utilities/40003026_T.exe < / а>
Установите X-CTU через:
sudo wget ftp://ftp1.digi.com/support/utilities/40002880_R.run
sudo mv 40002881_R.run xctu_64bit.run
sudo chmod +x xctu_64bit.run
sudo ./xctu_64bit.run
Найдите устройство X-Bee:
Убедитесь, что Xbee не подключен к концентратору, мощность будет слишком низкой, это можно определить по ошибке ниже, YMMV:
dmesg | grep ttyUSB0
и возвращается ошибка: [228.800021] ftdi_sio ttyUSB0: не удалось получить статус модема: -32
lsusb -v -d 0403:6001
sudo nano /boot/cmdline.txt
измените консольное tty-устройство с AMA на USB, затем для kgdboc, который позволяет удаленному концу наблюдать за процессом загрузки, добавьте / сопоставьте при необходимости
console=ttyUSB0,115200 kgdboc=ttyUSB0,115200
sudo nano /etc/inittab
обязательно раскомментируйте (удалите #), если он присутствует, измените tty с AMA на USB
T0:23:respawn:/sbin/agetty -L ttyUSB0 115200 vt100
В системе Ubuntu x86 используйте X-CTU через
sudo ./XCTU.desktop
обновите прошивку до последней версии 8075 для Pro S3B, затем установите скорость передачи на 115200 на каждом устройстве, другие xbees поблизости могут быть обновлены с помощью локального xbee через X-CTU, затем установив режим api на «api mode» с побегами ». Обратите внимание, что следует использовать прозрачный режим, если у вас нет глубоких знаний, чтобы заставить работать режим API. Я начал с прозрачного режима, чтобы продемонстрировать приведенные ниже работы, но с тех пор перешел в режим API, чтобы получить расширенные возможности управления отправкой-получением (ожидая рабочей версии на момент написания этой статьи).
выполните те же действия для всех устройств, которые будет использоваться в сети; как только локальное устройство будет завершено, другие удаленные устройства могут быть обновлены, если они видны (достаточно близко).
Закройте X-CTU и добавьте текущего пользователя в группу dialout через:
sudo usermod -a -G dialout root
перезагрузитесь, затем:
Настройка Minicom через:
sudo aptitude install minicom
minicom -s
serial port setup
a, set to /dev/ttyUSB0, then hit enter
e, set baud rate to 115200, then hit enter
hit enter again to close the window and arrive at the configuration page of minicom
select to save as dfl, followed by enter
then move to exit, and hit return
test connection to a locally connected device via
three plus symbols without hitting return
if it replies “ok” in a few seconds or less, all is well
ИЛИ Экран:
screen /dev/ttyUSB0
Опять же, если вы видите приглашение для входа в систему, вы подключены. Обратите внимание, что экран, вероятно, лучший выбор для большинства пользователей; он обладает присущим ему качеством простоты использования (по сравнению с Minicom), легко обрабатывает соединения с низкой пропускной способностью и остается в рабочем состоянии, несмотря на отключение от удаленного хоста. Ctl + a, а затем k отключится.
Установите Coreutils, чтобы добавить больше возможностей, чем Minicom (также рекомендуется Screen):
sudo aptitude install coreutils && screen
stty -F /dev/ttyUSB0 -a
это проверит возможности и настройки последовательного порта
Общайтесь со своими устройствами:
Обратите внимание, что вы взаимодействуете со своей сетью на локальном компьютере с подключенным X-Bee или на удаленном устройстве, на котором вы используете SSH через Интернет, если к нему подключен X-Bee. Также обратите внимание, что приведенные ниже настройки rc.local не сохранили мои настройки после перезагрузки; Работа в процессе. Я устанавливал их вручную, пока не добился автоматизации. Кроме того, я вручную добавил rc.local в RPI, инструкции для этого где-то там:
sudo systemctl stop [email protected]
sudo systemctl disable [email protected]
sudo systemctl enable [email protected]
sudo nano /etc/rc.local
add the below before exit 0
Строка stty повторяется дважды, потому что было отмечено, что первый экземпляр изменяет сообщаемую скорость передачи на 9600, второй - на 115200. Если вы делаете это вручную, сделайте «стоп», а затем повторно выполните команду start, чтобы получить подсказку. . Это можно автоматизировать; Я обновлю этот пост с помощью монитора процесса.
stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb raw
stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb raw
sudo systemctl start [email protected]
Затем используйте Minicom, Screen или «cat» и «watch» для просмотра отправленных сообщений. При использовании Minicom вы получите запрос на вход в систему по указанным выше инструкциям. Как указывалось ранее, я все еще пытаюсь заставить это работать плавно для режима API, но, по крайней мере, я знаю, что у меня есть подключение и я могу выполнять базовые команды и управление через командную строку удаленно с помощью прозрачного режима, включая запуск программ и команд командной строки. Прозрачный режим не предлагает никаких улучшенных методов коррекции радиочастотного распространения, отсюда и мое желание заставить работать режим API; Значения RSSI и исправление ошибок было бы неплохо.
person
james
schedule
16.07.2018