Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@k_mizu

Raspberry pi zero wでペットの為に温度監視システムを作ろうとしている話

はじめに

ペットのヘビ(コーンスネーク)のために、Raspberry Piで温度監視センサーを作れないかと思い、
はんだ付けもPythonも殆ど経験なしでしたが勉強がてらに作ってみました。
まずは、データが取れて確認が出来ればそれでよしレベルです。

Raspberry Piの設定

SSH … Enable
IP … 固定

温度センサーDHT11の接続

DHT11はモジュールになっているタイプを秋葉原のマルツで買ってきました。たしか600円くらいだったかな…
下記のサイトを参考にGPIOに接続しました。
http://www.c-sharpcorner.com/article/windows-10-iot-monitor-temperature-humidity-using-dht11/
alt

温度センサーの情報を拾えるようにする

すでにPythonでDHT11の情報を拾うためのコードがあるので、それを利用しました。
https://github.com/szazo/DHT11_Python

git clone https://github.com/szazo/DHT11_Python.git

温度記録用スクリプトの作成

単純に1分毎にCSVファイルに日付時刻,温度,湿度を記録するだけのスクリプトをDHT11のサンプルコードを参考にしながら作りました。

​DHT11_Python/dht11_csv.py
import RPi.GPIO as GPIO
import dht11
import time
import datetime
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# read data using pin 14
# read data using pin 4 mod by kmizuta
#instance = dht11.DHT11(pin=14)
instance = dht11.DHT11(pin=4)
while True:
    result = instance.read()
    if result.is_valid():
        file = open ('../temp_csv/temp.csv','a')
        #print("\'" + str(datetime.datetime.now())+ "\',\'%d\',\'" % result.temperature + "%d" % result.humidity + "\'")
        file.writelines("\"" + str(datetime.datetime.now())+ "\",\"%d\",\"" % result.temperature + "%d" % result.humidity + "\"\n")
        file.close()
    time.sleep(60)

スクリプトの実行バックグラウンドで実行し、disownすることで、ログアウトしても記録を続けます。

cd ​DHT11_Python
sudo python ./dht11_csv.py &
disown

イケてないところと今後の方針

  • DHT11センサーが結構データを取りこぼすので、スクリプト内でリトライをする仕組みを作りたいです。
  • データを現在はcronでFTPを使って一日一回VPSに上げているのですが、GoogleDriveに上げる仕組みにしたいです。
    • gdriveを使ってみたが、更新が上手くできなかったのでこの方針に変更しました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?