通过串行输入字节读取Arduino和PHP
我有PHP脚本通过网站控制Arduino的二极管,但我有一个问题 我的Arduino代码是:通过串行输入字节读取Arduino和PHP,php,html,serial-port,arduino,Php,Html,Serial Port,Arduino,我有PHP脚本通过网站控制Arduino的二极管,但我有一个问题 我的Arduino代码是: int green = 8; int incomingbyte; void setup() { Serial.begin(9600); pinMode(green,OUTPUT); } void loop() { if(Serial.available() > 0) { incomingbyte = Serial.read(); } if(incomingbyt
int green = 8;
int incomingbyte;
void setup()
{
Serial.begin(9600);
pinMode(green,OUTPUT);
}
void loop()
{
if(Serial.available() > 0)
{
incomingbyte = Serial.read();
}
if(incomingbyte == '0'){
digitalWrite(green,HIGH);
}
if(incomingbyte == '1'){
digitalWrite(green,LOW);
}
}
我的PHP代码是:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (isset($_GET['action'])) {
require("php_serial.class.php");
$serial = new phpSerial();
$serial->deviceSet("COM3");
$serial->confBaudRate(9600);
$serial->deviceOpen();
if ($_GET['action'] == "green1") {
$serial->sendMessage("0\r");
} else if ($_GET['action'] == "green0") {
$serial->sendMessage("1\r");
}
$serial->deviceClose();
}
re:2在您的php表单处理程序下添加html代码-这样所有内容都可以从同一个脚本提供,或者使用
header()
重新定位回html页面-但不能输出错误
编辑以便以单文件方式执行此操作:
<?php
// led.php code in here
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (isset($_GET['action'])) {
// and so on ...
?>
<!--// now show your html form regardless
of whether the form was submitted or not // -->
<!DOCTYPE html>
<html>
<head>
<title>ARDUINO</title>
</head>
<body>
<h1> ARDUINO AND PHP COMMUNICATION </h1>
<a href="?action=green1">ON</a></br>
<a href="?action=green0">OFF</a></br>
</body>
</html>
阿杜伊诺
ARDUINO与PHP通信
编辑以尝试使解决方案更清晰。请注意,您不必将led.php添加到链接中,它们会被提交回同一个文件。嘿,我刚刚为您的代码做了两个重要的更改
1> 改变
$serial->sendMessage("0\r");
到
和发送“1”的相同
2> 包括sleep命令
$serial = new phpSerial();
$serial->deviceSet("COM3");
$serial->confBaudRate(9600);
$serial->deviceOpen();
sleep(2);
sleep命令插入延迟。当php在
$serial->deviceopen();
命令arduino自动重置。因此,当php执行下一个命令时,arduino将无法接收这些命令,因此可能无法执行该操作。2是最好的延迟,因为1将非常短,而其他超过2的则很长。
在与上述文章相同的文件中使用php和html代码,并将其命名为“name.php”,而不使用“”。
这对我很有用……Thx接受,很抱歉我无法帮助完成第1部分。建议您阅读一些这家伙在使用PHP/Arduino时所做的事情,我相信您会在他的代码中找到最终解决方案的线索。
$serial = new phpSerial();
$serial->deviceSet("COM3");
$serial->confBaudRate(9600);
$serial->deviceOpen();
sleep(2);
$serial->deviceopen();