Связь Arduino с Raspberry Pi с помощью HC-05
Я использую два модуля HC-05 на двух платах Arduino UNO. Один из моих модулей успешно подключен к порту raspberry pi. Однако другой не хочет подключаться, но иногда он это делает, а затем случайным образом отключается. Когда мне удалось подключить оба модуля к порту на pi, у меня был код, написанный для отправки данных в pi и отображения их в терминале, но только один Arduino данные будут отображаться на терминале pi, хотя оба отправляли данные. Есть ли более простой способ подключения модулей? Я использовал инструмент bluetooth manager на pi
void setup() {
Serial.begin(9600);
pinMode(8, INPUT); // first sensor input
pinMode(7, INPUT); // second sensor input
pinMode(6, INPUT); // third sensor input
pinMode(5, INPUT); // fourth sensor input
}
void loop()
{
int sensordata_1 = digitalRead(8); // read status and store it into variable
{
if(sensordata_1 == LOW) // CAGE 1
{
Serial.println("Arduino 1 s1: 1"); //
}
else
{
Serial.println("Arduino 1 s1: 0");
}
delay(200);
}
}
void setup() {
Serial.begin(9600);
pinMode(8, INPUT); // first sensor input
pinMode(7, INPUT); // second sensor input
pinMode(6, INPUT); // third sensor input
pinMode(5, INPUT); // fourth sensor input
}
void loop()
{
int sensordata_1 = digitalRead(8); // read status and store it into variable
{
if(sensordata_1 == LOW) // CAGE 1
{
Serial.println("Arduino 2 s1: 1"); //
}
else
{
Serial.println("Arduino 2 s1: 0");
}
delay(200);
}
}
import serial
import time
port = serial.Serial("/dev/rfcomm2", baudrate=9600)
port_2 = serial.Serial("
port.flush() # This wil flush any input and output buffer, so it will
#avoid receiving or sending bad data
while True:
if(port.in_waiting > 0):
data = port.readline().decode('utf-8').rstrip() # decode will translate
#the data from unicode to byte
print(data)
@adidas23soccer, 👍1
1 ответ
▲ 1
порт_2 = последовательный.Последовательный("
скорее всего, это ошибка копирования и вставки с вашей стороны, но ее нужно исправить, если вы хотите, чтобы 2 последовательных порта работали- Вы читаете только из
порта
в цикле Python while, не касаясьport_2
. Именно по этой причине вы видите вывод только с одного последовательного порта - Вы должны использовать надежную систему последовательных пакетов данных. Прямо сейчас у вас нет способа убедиться, что данные, полученные в Python, повреждены или нет. Вы можете легко использовать устанавливаемый на pip пакет Python pySerialTransfer и совместимую библиотеку Arduino SerialTransfer.h (устанавливается через менеджер библиотек Arduino IDE).
Для получения информации о теории надежной последовательной связи ознакомьтесь с учебными пособиями "Основы последовательного ввода" и "Расширенныйпоследовательный ввод".
,
@P_B
Смотрите также:
- Отправка/получение данных от/на Raspberry Pi к/от Arduino с помощью HM-10 (модуль Bluetooth LE)
- Проблема с первыми двумя образцами последовательных данных, полученных RPi
- Можно ли измерить скорость акселерометром? Насколько точно?
- Модуль Bluetooth HC-05 мигает красным светом - Arduino Uno
- Модуль Bluetooth HC-05 возвращает закодированные данные
- Мой модуль Bluetooth HC-05 не работает
- Установите Arduino IDE в Raspberry Pi 3 модели B.
- Модуль AT-команд HM10 BLE — не работает