USB経由でラップトップに接続されたarduino Unoがあります。Windows 7でWAMP Webサーバーを実行しています。python 2.7とpyシリアルがインストールされています。ボタンをクリックすると led1.py (python スクリプト) が呼び出される HTML を作成しました。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 の両方の完全な小さなプログラムを用意できますか。