SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ

Raspberry Piでセンサーを使ってみよう ~温湿度センサーの値をSlackに通知するレシピ

Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ 第2回


  • X ポスト
  • このエントリーをはてなブックマークに追加

カンマ区切りで時間とセンサーデータを取得しよう

 次に、温湿度センサーの値をCSVファイルにしてグラフ化をしてみましょう。グラフは、Microsoft Excel、Googleスプレッドシートなどの表計算ソフトウェアに表示します。

 センサーの値を取得したら、「取得時間、温度、湿度」の情報をカンマ区切りで1行で書き出し、Excelなどでグラフ化してみましょう。

 例えば、10分毎に以下のような値を取得し、CSVファイルsensor_data.csvに追記する形で記録します。

$ cat sensor_data.csv
2017/11/12 10:30:07,25.2,46.3
2017/11/12 10:40:07,24.2,46.1
2017/11/12 10:50:07,24.1,46.2

プログラムの例

#!/usr/bin/python

import Adafruit_DHT
import datetime

sensor = Adafruit_DHT.DHT22

pin = 23

humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

if humidity is not None and temperature is not None:
    now = datetime.datetime.now()
    str = '{0},{1:0.1f},{2:0.1f}'.format(now.strftime('%Y/%m/%d %H:%M:%S'),temperature, humidity)
    print str
    with open('/home/pi/sensor_data.csv', mode = 'a') as fh:
      fh.write(str+'\n')
else:
    print 'Fail'

 sensor_csv.pyに実行権限を付けます。

$chmod 755 sensor_csv.py
-rwxr-xr-x 1 pi pi 478 11月 12 10:11 sensor_csv.py

 プログラムsensor_csv.pyを実行してみましょう。

$ ./sensor_csv.py
2017/11/12 10:57:58,24.3,46.3

 sensor_csv.pyが実行されたら、sensor_data.csvに「取得時間、温度、湿度」が出力されますので確認してみましょう。

$ cat sensor_data.csv
2017/11/12 10:57:58,24.3,46.3

 そして最後に、10分ごとに実行するようにcrontabを設定します。

$ crontab -e
*/10 * * * * /home/pi/sensor_csv.py

 できあがったCSVファイルを使って、CSVファイルをグラフ化してみましょう。

 今回はグラフ化にExcelを使いましたが、取得したCSVファイルを元に、Pythonを使ってグラフ化することも可能です。ぜひチャレンジしてみましょう。

次のページ
温湿度センサーの値をSlackに通知する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ連載記事一覧

もっと読む

この記事の著者

平 愛美(タイラ マナミ)

 熊本県出身のITエンジニア。2児の母で、趣味は写真とグルメ。最近はRaspberry Pi、Arduinoを使った家庭内IoTについて日々研究するIT系母ちゃんとして活躍中。主な著書は、『改訂3版 Linuxエンジニア養成読本』(寄稿、技術評論社 刊)、『Linuxシステム管理標準教科書』(共著、LPI-Japan)など。 ブログ:Mana Blog Next Twitter:@mana_cat

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10562 2017/12/19 14:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング