2017-05-25 27 views
2

我有一个运行在我的覆盆子pi上的python脚本,它从连接到pi的GPIO输入的传感器输出数据。我需要一种简单的方法将服务器上的实时数据从任何地方访问到。我看了一下django框架,但对于我需要做的事情来说似乎是过度的。将变量从运行在树莓派上的python脚本发送到网络服务器

+0

非常非常快速和肮脏的方式:使用覆盆子本身ngrok通过互联网快速托管文件 – mehulmpt

回答

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> 

而且这样的事情在一个相对目录cgi-bin/cputemp.py到你的HTML页面。

#!/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 
+0

不应'getSensor1()'是'cputemp2()'? –

+0

是的,你完全正确! – anned20

0

您可以运行一个脚本的cron每隔x分钟,脚本将具有输出值,而不是在循环中运行,并定期任务将是这样的:

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

你可以使用Flask而不是Django。

如果您不想创建服务器,则可以使用第三方应用程序Like ThingSpeak,您可以在其中发布数据,并且您可以从任何地方查看您的数据。

相关问题