2017-05-25 123 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,您可以在其中發佈數據,並且您可以從任何地方查看您的數據。

相關問題