0

我有一个通过 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 小程序吗?

4

1 回答 1

1

如果 python 脚本的内容是 的内容cgi-bin/led.py,它必须如下所示:

   7 print "Content-type: text/html"
   8 print
   9 
  10 print """
  11 <html>
  12 
  13 <head><title>Sample CGI Script</title></head>
  14 
  15 <body>
  16 
  17   <h3> Sample CGI Script </h3>
  18 """

来自http://wiki.python.org/moin/CgiScripts

您在 python 脚本中缺少标题。

于 2013-05-22T11:01:59.923 回答