日常生活の物理|身近で体験できる科学のブログ

日常に関すること、何でもつぶやきます。物理的な視点を加えることが多いかも。

温湿度計作り(7):Raspberry Pi 照度センサ+Cron設定

最近はセンサのグラフ表示を進めてきたのですが、これまでの説明で漏れていた部分をまとめたいと思います。


まず、前々回から照度センサを追加したのですが、センサにはBH1750FVIを使いました。BH1750FVIの実装方法は下記サイトを参考にしました。こちらのセンサを使うには、Raspberriy PiでI2C通信ができるように初期設定をする必要があります。I2C通信の設定手順については、本ブログでは割愛します。
https://tech.recruit-mp.co.jp/iot/farm-monitoring-with-iot/

Raspberry Pi Zeroの接続ピンは、下記サイトを参考にしました。電源は3.3Vピン、GNDはGNDピン、SDAはSDAピン(pin3)、SCLはSCLピン(pin5)にそれぞれ接続します。
http://hara.jpn.com/_default/ja/Topics/RaspPiZero.html

Raspberry Piのサンプルコードも載せておきます。

import smbus
import time
bus = smbus.SMBus(1)
addr = 0x23
for i in range(0,100):
        lux = bus.read_i2c_block_data(addr,0x10)
        lux_value = (lux[0]*256+lux[1])/1.2
        print "Lux:" + str((lux[0]*256+lux[1])/1.2)
        print lux_value
        time.sleep(1)



続いて、もう1つ説明で漏れていたのは、cronの設定です。
センサデータを定期的にWebサーバに送信するために、一定時間間隔毎にプログラムを起動する必要があります。手順は以下のとおりです。

1. インストール
$ sudo apt-get install chkconfig

2. cron動作確認
$ chkconfig cron

3. Cronの記述 (sudoをつけないとNG)
$ sudo crontab –e
で画面を表示したら、例えば5分毎にtest.pyを実行するならば、
crontab内に「*/5 * * * * sudo python3 /home/user/Desktop/test.py」等と記述します。

これで定期送信をすれば、前回説明したグラフ表示ができるようになります。