在apache2 webserver

时间:2016-04-16 22:03:20

标签: jquery python ajax apache cgi

所以我试图实现这个:

我网站上的这个html页面有一个基于按键的脚本,将数据发送到Raspberry Pi上的cgi脚本:

<script src="https://ajax.googleapis.com/aj..."></script>

<script>
var map = {};
$(document).keydown(function(e){
e = e || event;
map[e.keyCode] = true;
}).keyup(function(e){
if (map[38] && map[40]) {
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'Brake' }
});
}
else if (map[37] && map[39]) {
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'Brake' }
});
}
else if (map[38] && map[37]){
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'UpLeft' }
});
}
else if (map[38] && map[39]){
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'UpRight' }
});
}
else if (map[40] && map[37]){
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'DownLeft' }
});
}
else if (map[40] && map[39]){
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'DownRight' }
});
}
else if (map[38]){
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'Up' }
});
}
else if (map[40]) {
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'Down' }
});
}
else if (map[37]) {
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'Left' }
});
}
else if (map[39]) {
$.ajax({
url: "http://ip-address/cgi-bin/data.py",
data: {q: 'Right' }
});
}
map[e.keyCode] = false;
});
</script>

现在接收数据并将其发送到arduino,我已按照http://www.civrays.com/myrobot/news/pythoncgi的指示进行操作。

为了测试这个,我使用我的ubuntu笔记本电脑,然后将其编程到pi。

我在我的ubuntu系统上成功设置了apache2 webserver。然后我放置了#34; data.py&#34;进入/ usr / lib / cgi-bin(用Python CGI配置Apache2)。 python文件的内容如下:

#! /usr/bin/env python

import cgi
import serial

def arduino(cmd):  
    ser = serial.Serial('/dev/ttyACM0') #USB
    ser.write(cmd + "\n")
    ser.close

data = cgi.FieldStorage()
if "q" in data:
    q = data["q"].value
    print "The data is: " + q
    arduino(q)

我确保执行&#34; sudo chmod 777 /usr/lib/cgi-bin/data.py"

(关于通过串口发送数据,我确实通过将apache2服务器添加到拨出组来覆盖权限,但是现在我只想让这个cgi脚本接收ajax数据,然后我会担心arduino部分。)

然而,没有任何内容被打印出来,所以我不相信我会收到我的数据。但是,由于CGI脚本在被调用时执行,我甚至不确定如何检查我是否正在接收数据。可能是什么问题?我该怎么调试呢?

0 个答案:

没有答案