我想創建一個domotica設置與我的Arduino和我的服務器。在使用射頻發射器之前,我試圖從我的php網頁上控制LED(設置它們的開/關)。PHP網站控制Arduino發送代碼加載網頁
這一切都完美的作品,除了一個事實,即LED1轉彎時我加載/刷新網頁上。我的網頁包含下面的代碼(這是我改編自https://www.lassiemarlowe.com/tutorials/power-led-bulbs-arduino-php-part-2/):
<html>
<head>
<title>Arduino Domotica Control Panel</title>
一些CSS代碼在這裏...
<?php
switch($_POST)
{
case isset($_POST['submitOn']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 1);
fclose($fp);
break;
case isset($_POST['submitOff']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 2);
fclose($fp);
break;
case isset($_POST['submitOn1']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 3);
fclose($fp);
break;
case isset($_POST['submitOff1']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 4);
fclose($fp);
break;
case isset($_POST['submitOn2']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 5);
fclose($fp);
break;
case isset($_POST['submitOff2']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 6);
fclose($fp);
break;
case isset($_POST['allon']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 7);
fclose($fp);
break;
case isset($_POST['alloff']):
$fp = fopen("/dev/ttyUSB1", "w");
fwrite($fp, 8);
fclose($fp);
break;
}
?>
</head>
<body>
<h1>Control Panel</h1>
<form class="control-panel-frm" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type='submit' class="s3d turnOn" name='submitOn' value='LED 1 on'>
<input type='submit' class="s3d switchoff" name='submitOff' value='LED 1 off'>
<br><br>
<input type='submit' class="s3d turnOn" name='submitOn1' value='LED 2 on'>
<input type='submit' class="s3d switchoff" name='submitOff1' value='LED 2 off'>
<br><br>
<input type='submit' class="s3d turnOn" name='submitOn2' value='LED 3 on'>
<input type='submit' class="s3d switchoff" name='submitOff2' value='LED 3 off'>
<br><br>
<input type='submit' class="s3d turnOn" name='allon' value='All LEDs on'>
<input type='submit' class="s3d switchoff" name='alloff' value='All LEDs off'>
</form>
如前所述,問題是當我加載/刷新網頁時,LED1(對應php post'submitOn')開啓。當檢查串行監視器時,Arduino收到'1'。
我應該爲了防止我的網頁的加載時發送任何內容到Arduino的改變?
代碼的'if'行有一個語法錯誤;該行應該以代碼中看到的兩個括號')'而不是兩個結尾。 – DaanMusic
你是完全正確的。我已經修復了它... – pmayer
'array_key_exists'更合適... – pmayer