実際に動作している様子
実現したいこと
- 温度と湿度を一定時間で計測してグラフで表示させたい
- 計測データはローカルではなくネット上に保存したい
使用するもの
- DHT11
- python
- ambient(IoTデーター可視化サービス)
DHT11とは?
- 温度と湿度を同時に測定する複合センサーモジュール。
- シリアル単線通信で、ホストのデータ要求にデジタル形式で返答する。
- 温度センサは、NTCサーミスタ。
- 湿度測定は高分子膜湿度センサ。
- 誘電率の変化から相対湿度を測定する。
主な仕様
- 電源電圧:DC3.3V~5.5V
- 消費電流:0.3mA(測定時)、60μA(スタンバイ時)
- サンプリング間隔:2秒以上
配線方法
- DHT11 + ⇒ pi 5V
- DHT11 - ⇒ pi GND
- DHT11 OUT ⇒ pi BCM(PIN=4)
下準備
pip install git+https://github.com/AmbientDataInc/ambient-python-lib.git
git clone https://github.com/szazo/DHT11_Python.git
- DHT11_Pythonというフォルダ内で作業する。
- ambient のアカウントを作成し、チャネルIDとライトキーを取得する。
ソースコード
import ambient
ambi = ambient.Ambient(チャネルID,"ライトキー")
import RPi.GPIO as GPIO
import dht11
import time
import datetime
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
instance = dht11.DHT11(pin=4)
while True:
result = instance.read()
if result.is_valid():
print("Last valid input: " + str(datetime.datetime.now()))
print("Temperature: %d C" % result.temperature)
print("Humidity: %d %%" % result.humidity)
r = ambi.send({"d1":result.temperature, "d2":result.humidity})
time.sleep(5)
注意点
- DHT11の読み取り間隔は6秒以上あけた方が良い。
- 短い間隔でデータ要求しても、 データが出ない場合がある。
コメント