2016-05-09 2 views
2

Я настроил датчик температуры с помощью intel edison. Я пытаюсь прочитать значения температурного датчика, используя следующий код python:прочитайте значение датчика температуры на intel edison, используя 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() 

Но этот код всегда возвращается 0 в качестве значения считывания.

Я новичок в intel edison и python. Поэтому любая помощь будет оценена. Thanks

ответ

2

mraa - это низкоуровневая скелетная библиотека для связи ввода/вывода. В случае базового аналогового датчика он выполнит эту работу, но я бы рекомендовал вам использовать upm вместо этого.

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 

Если это не работает, вам, возможно, потребуется обновить библиотеки

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

Что в случае цифрового DHT11, который использует один механизм проводной связи? –

Смежные вопросы