Подключение выхода RS485 к Raspberry Pi[Android Things]
Только что начал работать над Raspberry Pi с Android-устройствами, у меня есть датчик, который выдает выходной сигнал через кабели RS485, я хочу передать этот вывод на Raspberry Pi, исследовал, но не нашел подходящего решения для этого, если кто-то делал подобные вещи до вас может помочь мне установить соединение, используя конвертер или MAX 485
Каков наилучший способ получить выход от RS485 до RPi? Как это могло быть достигнуто? Заранее спасибо
2 ответа
Интерфейс UART на большинстве аппаратных средств совместим с этими типами датчиков. По умолчанию контакты UART на плате / модуле работают на логических уровнях TTL. Электрические стандарты, такие как RS-232 и RS-485, используют один и тот же базовый протокол, но изменяют выходное напряжение и конфигурацию сигнальных линий.
Так что в вашем случае вам просто нужно найти конвертер между TTL и RS-485, такой как MAX485, который вы упомянули. Подключите его к любому из доступных UART на вашей плате и используйте те же API периферийного ввода / вывода для связи с ним из Android Things.
Я не знаком с Android Things, но, надеюсь, это укажет вам правильное направление... Я добился большого успеха, используя конвертер USB в 485 и библиотеку python минимальной шины на Raspberry Pi. Ниже приведен пример кода, который я использовал в прошлом. Это довольно простой, но вы должны начать.
import minimalmodbus
import serial
usbDevice = '/dev/ttyUSB0'
modbusSlaveID = 1
# can be 'ascii' or 'rtu'
modbusFormat = 'rtu'
registerToRead = 64
# 3 is for Holding Registers, 4 is for Input Registers
functionCode = 3
# initialize the device
device = minimalmodbus.Instrument(usbDevice, modbusSlaveID, modbusFormat)
# set the various options, which will depend on the device you are communicating with
device.debug = True
device.serial.baudrate = 9600
device.serial.bytesize = 8
device.serial.parity = serial.PARITY_NONE
device.serial.stopbits = 1
device.serial.timeout = 2 # seconds
print device.read_register(registerToRead, functioncode=functionCode)
ps Это мой первый ответ, надеюсь, я все сделал правильно...