我有一個arduino Uno通過USB連接到我的筆記本電腦。我在Windows 7上運行WAMP webserver。我安裝了python 2.7和py serial。我寫了一個HTML,其中點擊按鈕將調用led1.py(python腳本)。 python腳本會和arduino進行通信,然後用戶按下另一個按鈕來放下Led。 按鈕按下調用的python腳本時,LED是越來越上,但隨後的HTML頁面給了一個錯誤:Python和arduino串行通信
Internal Server Error;
The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.
我要去哪裏錯了?該HTML代碼如下:
<html>
<head>
<title>Sample Web Form</title>
</head>
<body>
<h1>Fill Out This Form</h1>
<form action="/cgi-bin/led.py" method="POST">
<input type="submit" name='action' value="LEFT">
<input type="submit" style="background-color:yellow" name='action' value="LEFT"/><br><br><br>
<input type="submit" style="background-color:yellow" name='action' value="BACK"/>
</form>
</body>
</html>
的Python代碼如下:
#!python
import serial
import time
keyword =form.getvalue('action')
arduino = serial.Serial('COM4', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=1)
arduino.open()
arduino.isOpen()
time.sleep(5) # waiting the initialization...
print("initialising")
while True:
if keyword == 'LEFT':
arduino.write("H\n") # turns LED ON
break
elif keyword == 'BACK':
arduino.write('L\n') # turns LED OFF
break
elif break
arduino.close() #say goodbye to Arduino
和Arduino的代碼非常簡單:
int redpin =13;
int incomingbyte;
void setup()
{
Serial.begin(115200);
pinMode(redpin,OUTPUT);
pinMode(greenpin,OUTPUT);
pinMode(fanpin,OUTPUT);
}
void loop()
{
if(Serial.available()>0)
{
incomingbyte=Serial.read();
}
if(incomingbyte == 'H')
{
digitalWrite(redpin,HIGH);
}
if(incomingbyte == 'L')
{
digitalWrite(redpin,LOW);
}
}
能否請你告訴我在哪裏我錯了嗎?我是python的新手。 另外我想使用python在同一個HTML頁面中顯示來自arduino傳感器的數據。這怎麼可能。我可以有一個完整的HTML和Python的小程序。
「我可以有一個完整的小程序...」你的意思是,你想讓別人爲你寫這個嗎?請求時是否免費編寫軟件?我會指出一些問題。 'form'是未定義的。 'elif break'應該是'else break'。就服務器而言,三個「」中的兩個是相同的。 –
如何定義表單?我已經刪除了一個輸入語句。仍然有錯誤 –