2016-04-03 32 views
0

Ben estromsnes tarafından gösterilen ikinci kod örneği izlemeye çalışıyorum: Ben böyle devam yapamadı çünkü How to create two y-axes streaming plotlyPython, Plotly ve Ahududu Pi [Errno 13]

#!/usr/bin/python 

import subprocess 
import re 
import sys 
import time 
import datetime 
import plotly.plotly as py # plotly library 
from plotly.graph_objs import Scatter, Layout, Figure, Data, Stream, YAxis 

# Plot.ly credentials and stream tokens 
username     = 'plotly_username' 
api_key     = 'plotly_api_key' 
stream_token_temperature = 'stream_token_1' 
stream_token_humidity = 'stream_token_2' 

py.sign_in(username, api_key) 

trace_temperature = Scatter(
    x=[], 
    y=[], 
    stream=Stream(
     token=stream_token_temperature 
    ), 
    yaxis='y' 
) 

trace_humidity = Scatter(
    x=[], 
    y=[], 
    stream=Stream(
     token=stream_token_humidity 
    ), 
    yaxis='y2' 
) 

layout = Layout(
    title='Raspberry Pi - Temperature and humidity', 
    yaxis=YAxis(
     title='Celcius' 
    ), 
    yaxis2=YAxis(
     title='%', 
     side='right', 
     overlaying="y" 
    ) 
) 

data = Data([trace_temperature, trace_humidity]) 
fig = Figure(data=data, layout=layout) 

print py.plot(fig, filename='Raspberry Pi - Temperature and humidity') 

stream_temperature = py.Stream(stream_token_temperature) 
stream_temperature.open() 

stream_humidity = py.Stream(stream_token_humidity) 
stream_humidity.open() 

while(True): 
    # Run the DHT program to get the humidity and temperature readings! 
    output = subprocess.check_output(["./Adafruit_DHT", "2302", "17"]); 
    print output 

    # search for temperature printout 
    matches = re.search("Temp =\s+([0-9.]+)", output) 
    if (not matches): 
     time.sleep(3) 
     continue 
    temp = float(matches.group(1)) 

    # search for humidity printout 
    matches = re.search("Hum =\s+([0-9.]+)", output) 
    if (not matches): 
     time.sleep(3) 
     continue 
    humidity = float(matches.group(1)) 

    print "Temperature: %.1f C" % temp 
    print "Humidity: %.1f %%" % humidity 

    # Append the data to the streams, including a timestamp 
    now = datetime.datetime.now() 
    stream_temperature.write({'x': now, 'y': temp }) 
    stream_humidity.write({'x': now, 'y': humidity }) 

    # Wait 30 seconds before continuing 
    time.sleep(30) 

stream_temperature.close() 
stream_humidity.close() 

ben yeni bir soru soruyorum orijinal yazı. Benim Ahududu Pi Model B + V1.2 devletlerden

My terminalin çıkışı:

traceback (son En son çağrı):

File "plotly5.py", line 62, in <module> 
    output = subprocess.check_output(["./Adafruit_DHT", "2302", "17"]); 
File "/usr/lib/python2.7/subprocess.py", line 566, in check output 
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__ 
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child 
OSError: [Errno 13] Permission denied 

ben değiştireyim ayarı izinleri var mı?

output = subprocess.check_output(["./Adafruit_DHT", "2302", "17"]); 

teşekkür: Ben ./Adafruit_DHT kısmını değiştirmek gerekir.

+0

ne olur? Sudo izni gerektiriyor mu? –

+0

Yanıt için teşekkürler. Bunu Python 2.7.9 Shell'de denedim. Aynı hata mesajlarıyla cevap verir. Ayrıca, sudo izni ile Terminal'den python dosyasını çalıştırdım ve aynı hata mesajları çıktı. Python 3.4.2 Kabuğu bir "geçersiz sözdizimi" hatası verdi. –

+0

Python yorumlayıcıdan bir kabuk komut dosyası çalıştıramazsınız :) –

cevap

0

./Adafruit_DHT komutunu çalıştırma izniniz yok gibi görünüyor. Üstündeki izinleri değiştirmeyi deneyin.

chmod +x ./Adafruit_DHT

ve tekrar çalıştırarak: Adafruit_DHT ile dizininde bir terminalde aşağıdaki yürütün. chmod ve dosya izinleri ile ilgili

fazla bilgi: sadece kabuktan o programı çalıştırdığınızda http://catcode.com/teachmod/chmod_cmd.html

+0

Bunu denedim. Ne yazık ki aynı hatalar ortaya çıktı. Başka fikrin var mı? –

+0

Doğru klasördeyken './Adafruit_DHT' komutunu çalıştırabiliyor musunuz? Sadece şunu yazın ve çalıştırılsın mı? – elsherbini

+0

Şimdi terminalde sıcaklık ve nem verilerini görebiliyorum. TheAdafruit_DHT çıkarıldı ve yukarıda –

İlgili konular