Arduino和PHP通过Serial incomingbyte读取
发布时间:2020-12-13 17:16:35 所属栏目:PHP教程 来源:网络整理
导读:我有通过网站控制Arduino二极管的 PHP脚本,但我遇到了问题. 我的Arduino代码是: int green = 8;int incomingbyte;void setup(){ Serial.begin(9600); pinMode(green,OUTPUT);}void loop(){ if(Serial.available() 0) { incomingbyte = Serial.read(); } if(
我有通过网站控制Arduino二极管的
PHP脚本,但我遇到了问题.
我的Arduino代码是: 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("0r"); } else if ($_GET['action'] == "green0") { $serial->sendMessage("1r"); } $serial->deviceClose(); } 我的HTML代码: <!DOCTYPE html> <html> <head> <title>ARDUINO</title> </head> <body> <h1> ARDUINO AND PHP COMMUNICATION </h1> <a href="led.php?action=green1">ON</a></br> <a href="led.php?action=green0">OFF</a></br> </body> </html> 我有两个问题: > Arduino只获得incomingbyte = 0,所以我可以打开二极管,但我无法将其关闭.我修改了代码来设置incomingbyte = 1来打开二极管,但它也不起作用.所以我认为Arduino只获得incomingbyte = 0. 解决方法
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> 编辑尝试使解决方案更清晰.请注意,您不必将led.php添加到链接,它们将被提交回同一文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |