Связь Arduino и PHP работает только в том случае, если открыт Arduino IDE
У меня проблема. Я пытаюсь открыть канал для разговора Arduino и PHP, PHP отправит команду, и Arduino должен ответить на это. Это работает, но только если я выполню несколько шагов раньше:
- sudo chmod 777 /dev/ttyACM0
- судо Arduino
- Откройте последовательный монитор в Arduino IDE
- Закройте последовательный монитор
- Теперь все в порядке, они могут говорить
Первый шаг в порядке, мне очень нужно это сделать, 2-4 кажутся неактуальными, но без этого общение не начинается. Я поместил один ЖК-дисплей в Arduino, чтобы распечатать то, что он получил, когда я отправляю ему «HEYARD» с PHP, светодиод RX мигает, а также светодиод TX, но на ЖК-дисплее ничего не печатается. Если я выполняю шаги 2-4, когда PHP отправляет «HEYARD», ЖК-дисплей показывает HEYARD, а arduino отвечает «HEYPHP»
Кто-нибудь может помочь? Есть какой-то способ открыть его через Терминал или, по крайней мере, открыть Serial Monitor из arduino и закрыть, чтобы посмотреть, запустится ли это
@Jomarumu, 👍0
Обсуждение2 ответа
Здесь блок установки:
<?php
require("php_serial.class.php");
$serial = new phpSerial();
$serial->deviceSet("/dev/ttyACM0");
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$conect = mysql_connect("localhost", "root", "") or print (mysql_error());
mysql_select_db("ANM", $conect) or print(mysql_error());
?>
А вот блок подключения:
<?php
$serial->deviceOpen();
exec("echo 'HEYARD' > /dev/ttyACM0");
sleep(1);
$read = $serial->readPort();
?>
stty -F /dev/ttyACM0 ignpar stty -F /dev/ttyUSB0 ignpar
IGNPAR Игнорировать ошибки кадрирования и ошибки четности.
Это то, что вам нужно, чтобы исправить мелкие проблемы с кадрированием.
Экран переключает это по умолчанию; но НИ ОДИН из последовательных драйверов этого не делает. Особенно при подключении PI или BBB к Arduino
- Отключение Arduino при загрузке
- Как отправить символы в SoftwareSerial Arduino с помощью командной строки Linux без хвоста -f?
- Ни ttyACM0, ни ttyUSB0
- Скорость передачи устанавливается на 9600 автоматически, даже если указано другое значение.
- Чтение последовательных данных с Arduino с помощью кода C
- Arduino Uno R3 не распознается Arduino IDE в Ubuntu 21.04
- Никакие данные не передаются через последовательный порт в Linux С++
- Почему echo "R"> /dev/ttyUSB0 не работает, но на том же ПК работает последовательный монитор в Arduino IDE?
Устанавливает ли код PHP правильную скорость передачи данных, четность и т. д.?, @Gerben
Да, вроде все в порядке, скорость в бодах правильная, четность "нет", они могут нормально разговаривать, но только если я перед этим открою серийный монитор. Я пытался открыть экран в терминале, но тоже не работал, нужен последовательный монитор. Спасибо, @Jomarumu
Попробуйте подходящий эмулятор терминала, например Minicom., @Majenko
Возможно, Arduino устанавливает правильные настройки для /dev/ttyACM0, поэтому другие после этого не должны, но должны. Не могли бы вы опубликовать код PHP и команду
screen
?, @GerbenЯ пытался использовать миником, до сих пор ничего не мог прочитать, но я попробую заставить его запустить порт., @Jomarumu