加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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.
>运行脚本后,我的网站正在缩小.当我点击“ON”或“OFF”脚本正在运行时,我正在获得白色(空白)站点.我应该怎么做才能一直留在我的HTML网站上?

解决方法

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添加到链接,它们将被提交回同一文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读