我有一个通过 USB 端口连接到我的 Raspberry pi 的 Arduino Nano,我正在尝试读取作为 RFID 卡 ID 的传入串行数据。这是我的 php_serial 代码
<?php
include 'PhpSerial.php';
$serial = new PhpSerial;
// 首先我们必须指定设备。这适用于 linux 和 windows(如果 // 你的 linux 串行设备是 /dev/ttyS0 用于 COM1 等)
$serial->deviceSet("/dev/ttyUSB0");
// 我们可以改变波特率、奇偶校验、长度、停止位、流控制
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
// 然后我们需要打开它
$serial->deviceOpen();
// 读取内容
$message = $serial->readPort();
echo ( "<br>Received: $message<br>" );
$serial->deviceClose();
?>
我在浏览器中打开页面,但没有看到任何数据。它只是空白。
顺便说一句 - Arduino 代码:
void setup() {
Serial.begin(9600); // for testing and debugging
SPI.begin(); // run SPI library first; if not, RFID will not work
mfrc522.PCD_Init(); // initializing RFID, start RFID library
pinMode(led_pos, OUTPUT);
pinMode(led_neg, OUTPUT);
}
// 主程序
void loop() {
int succesRead = getID(); // read RFID tag
}
// 功能
void redLED(){ // red LED on, green LED off
digitalWrite(led_pos, LOW);
digitalWrite(led_neg, HIGH);
}
void greenLED(){ // red LED off, green LED on
digitalWrite(led_pos, HIGH);
digitalWrite(led_neg, LOW);
}
int getID() { // Read RFID
// Getting ready for Reading PICCs
if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue
return 0;
}
if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue
return 0;
}
readTag = "";
for (int i = 0; i < 4; i++) { //
readCard[i] = mfrc522.uid.uidByte[i];
Serial.print(readCard[i], DEC);
readTag=readTag+String(readCard[i], DEC);
}
Serial.println("");
mfrc522.PICC_HaltA(); // Stop reading
return 1;
}
编辑:来自 Arduino 的数据仍未显示在网页上。