我有一个通过 USB 连接到我的笔记本电脑的 arduino Uno。我在 Windows 7 上运行 WAMP 网络服务器。我安装了 python 2.7 和 py 序列号。我编写了一个 HTML,其中单击按钮时将调用 led1.py(python 脚本)。python 脚本将与 arduino 通信以安装 LED,然后用户将按下另一个按钮以关闭 LED。按下时的按钮正在调用 python 脚本,LED 亮起,但 HTML 页面出现错误:
内部服务器错误;
服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员 admin@localhost 并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。服务器错误日志中可能提供有关此错误的更多信息。
我哪里错了?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 小程序吗?