2016-05-09 6 views
2

Ich habe Temperatursensor mit Intel Edison konfiguriert. Ich versuche, Temperatursensorwerte mit folgendem Python-Code zu lesen:lesen Temperatursensor Wert auf Intel Edison mit Python Mraa

import mraa 
import time 
import sys 
import math 

tmp = mraa.Gpio(2) 
tmp.dir(mraa.DIR_IN) 
i=0 
while i<100: 
    print "Let's talk about Temperature %s." % tmp.read() 
    time. sleep(3) 
    i+=1 
exit() 

Aber dieser Code gibt immer 0 als Lesewert zurück.

Ich bin neu in Intel Edison und Python. So wird jede Hilfe geschätzt. Dank

Antwort

2

mraa ist eine Low-Level-Skelett-Bibliothek für die I/O-Kommunikation. Im Falle eines grundlegenden analogen Sensors wird es die Arbeit tun, aber ich würde empfehlen, stattdessen upm zu verwenden.

import time 
import pyupm_grove as grove 

# Create the temperature sensor object using AIO pin 0 
temp = grove.GroveTemp(0) 

for i in range(0, 10): 
    celsius = temp.value() 
    fahrenheit = celsius * 9.0/5.0 + 32.0; 
    print "%d degrees Celsius, or %d degrees Fahrenheit" \ 
     % (celsius, fahrenheit) 
    time.sleep(1) 

# Delete the temperature sensor object 
del temp 

Wenn es nicht funktioniert, Sie die Bibliotheken

aktualisieren müssen möglicherweise
echo "src mraa-upm http://iotdk.intel.com/repos/3.0/intelgalactic/opkg/i586" > /etc/opkg/mraa-upm.conf 
opkg update 
opkg upgrade libmraa0 
opkg upgrade upm 
+0

Was bei digitaler DHT11, welcher Mechanismus eine Drahtverbindung verwendet? –