私は最近、いくつかのコンピューターフロアの温度スパイクを監視するために、Pi zeros を使用していくつかの Raspberry pi 温度センサーを構築しています。初期状態のセットアップを使用して、データをダッシュボードに送信しています。問題なく完全にセットアップされ、データが正常に送信されました。しかし、まったく同じ方法で、まったく同じコードを使用して2番目をセットアップしようとすると、次のエラーが発生し続けます。
Traceback (most recent call last):
File "tempsensor.py", line 20, in <module>
temp_f = format(temp_c * 9.0 / 5.0 + 32.0, ".2f")
TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'
私はPythonに堪能ではありませんが、同様の問題を調べてみましたが、実際に私を助けるものは何もありませんでした. しかし、私が理解していないのは、このコードは基本的に他のコードのコピーペーストであり、他の人が使用しているものでもあります. 何も変更されていないのに、なぜエラーが返されるのでしょうか?
また、以下にリストされているのは、私が使用している完全なコードです。助けてくれてありがとう!
import Adafruit_DHT
from ISStreamer.Streamer import Streamer
import time
# --------- User Settings ---------
SENSOR_LOCATION_NAME = "Office"
BUCKET_NAME = ":partly_sunny: Room Temperatures"
BUCKET_KEY = "rt0129"
ACCESS_KEY = "PLACE YOUR INITIAL STATE ACCESS KEY HERE"
MINUTES_BETWEEN_READS = 10
METRIC_UNITS = False
# ---------------------------------
streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=ACCESS_KEY)
while True:
humidity, temp_c = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)
if METRIC_UNITS:
streamer.log(SENSOR_LOCATION_NAME + " Temperature(C)", temp_c)
else:
temp_f = format(temp_c * 9.0 / 5.0 + 32.0, ".2f")
streamer.log(SENSOR_LOCATION_NAME + " Temperature(F)", temp_f)
humidity = format(humidity,".2f")
streamer.log(SENSOR_LOCATION_NAME + " Humidity(%)", humidity)
streamer.flush()
time.sleep(60*MINUTES_BETWEEN_READS)