ds18b20 온도 센서에서 라즈베리 파이를 사용하여 데이터를 읽고 xively로 푸시합니다.파이썬 : 라즈베리 파이가있는 센서 데이터를 잠깐 동안 푸시하는 동안 오류가 발생했습니다. TypeError : __init __()
몇 가지 전제 조건의 실행 및 파이썬 콘솔에서 파일을
Traceback (most recent call last):
File "xively_ds18b20.py", line 59, in <module>
run()
File "xively_ds18b20.py", line 42, in run
feed = api.feeds.get(FEED_ID)
File "/home/pi/xively_tutorial/.envs/venv/local/lib/python2.7/site-packages/xively/managers.py", line 266, in get
feed = self._coerce_feed(data)
File "/home/pi/xively_tutorial/.envs/venv/local/lib/python2.7/site-packages/xively/managers.py", line 289, in _coerce_feed
feed = Feed(**feed_data)
TypeError: __init__() got an unexpected keyword argument 'email'
어떻게 내가이 오류를 해결할 수 있습니다 :이 후
sudo modprobe w1-gpio && sudo modprobe w1_therm
source .envs/venv/bin/activate
FEED_ID=244127069 API_KEY=Nqeje SENSOR_ID=28-00000539324e python xively_ds18b20.py
, 다음과 같은 오류가있어? 그것은 재미 있지만, 다른 라즈베리 파이에 여기
내 코드 (xively_ds18b20.py)의 ... 작동하고 다음에서 이메일 주소를 제거하여#!/usr/bin/env python
import os
import xively
import subprocess
import time
import datetime
import requests
FEED_ID = os.environ["FEED_ID"]
API_KEY = os.environ["API_KEY"]
SENSOR_ID_PRE = os.environ["SENSOR_ID"]
SENSOR_ID = SENSOR_ID_PRE[-7:]
# initialize api client
api = xively.XivelyAPIClient(API_KEY)
# function to read the temperature from ds18b20 temperature sensor on i2c
def read_temperature():
tempfile = open("/sys/bus/w1/devices/"+SENSOR_ID_PRE+"/w1_slave")
thetext = tempfile.read()
tempfile.close()
tempdata = thetext.split("\n")[1].split(" ")[9]
temperature = float(tempdata[2:])
temperature = temperature/1000
return temperature
# function to return a datastream object. This either creates a new datastream,
# or returns an existing one
def get_datastream(feed):
try:
datastream = feed.datastreams.get("PiTemperature"+SENSOR_ID)
return datastream
except:
datastream = feed.datastreams.create("PiTemperature"+SENSOR_ID, tags="temperature")
return datastream
# main program entry point - runs continuously updating our datastream with the
# latest temperature reading
def run():
feed = api.feeds.get(FEED_ID)
datastream = get_datastream(feed)
datastream.max_value = None
datastream.min_value = None
while True:
degreesCelcius = read_temperature()
datastream.current_value = degreesCelcius
datastream.at = datetime.datetime.utcnow()
try:
datastream.update()
except requests.HTTPError as e:
print "HTTPError({0}): {1}".format(e.errno, e.strerror)
time.sleep(10)
run()
작동하지 않는 코드를 제공해 주시겠습니까? – Nilesh
안녕하세요, 코드는 xively_ds18b20.py 파일에 있습니다.이 파일은 제 질문에 게시했습니다. – mcknight
글쎄, 피드처럼 보입니다. 244127069 피드 개체가 예상치 못한 이메일이 있습니다 ... 피드를 검사하고 그 내용을 알려주십시오. – user3012759