从python脚本发送变量在raspberry pi上运行到webserver

时间:2017-05-25 16:20:33

标签: python python-2.7 ubuntu raspberry-pi raspberry-pi3

我在我的树莓派上运行了一个python脚本,它输出连接到pi的GPIO输入的传感器的数据。我需要一种简单的方法将服务器上的实时数据从任何地方访问。我已经看过django框架,但对于我需要做的事情似乎有些过分。

3 个答案:

答案 0 :(得分:1)

你的意思是this?

您可以使用某些JS创建静态网页,如下所示:

<html>
<head>
    <title>My Pi</title>
    <script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>
</head>
<body>
    <div id="sensor1"></div>
    <a href="javascript:getSensor1()">Get data from sensor 1</a>
    <script type="text/javascript">
        function getSensor1() {
            $.ajax({
                type: "POST",
                url: "cgi-bin/cputemp.py",
                dataType: "html",
                success: function(msg) {
                    document.getElementById('sensor1').innerHTML = msg;
                },
            });
        }
    </script>
</body>

相对于你的html页面在cgi-bin/cputemp.py目录中的类似内容。

#!/usr/bin/python
import cgi;
import cgitb;
import time
cgitb.enable()
import commands
import sys
import string
print "Content-type: text/html\n\n";
mytemp1 = commands.getoutput('/opt/vc/bin/vcgencmd measure_temp | cut -d "=" -f2 | cut -f1')
output = "Pi CPU Temp is: " + mytemp1
print output

答案 1 :(得分:0)

你可以用cron每x分钟运行一个脚本,脚本必须输出值而不是循环运行,而cron任务将是这样的:

curl -X POST -d '$(python /path/to/script.py)' http://example.com/receive.php

答案 2 :(得分:0)

您可以使用 Flask 代替Django。

如果您不想创建服务器,可以使用第三方应用程序,例如ThingSpeak,您只需发布数据,就可以从任何地方查看数据。