忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・DIYのブログ!

raspberry piを常時起動して温度を遠隔監視する

ついにraspberry piを常時起動する日がきた。
I2c通信が可能な温度センサーADT7410を使ってそのデータをメールで送れるようにしてみた。

右下のブレッドボードにささっているのがADT7410raspberry piはアナログ入力がないのでI2cを使わざるを得ない。4本の脚にそれぞれVCC、SDA、SCL、GNDを接続する
プログラム的にはこんな具合だが温度を連続して取得する様にはしていない。
後でメールで送る為、一度に一回のみ取得するようにしている。

import smbus
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
i2c = smbus.SMBus(1)
address = 0x48
block = i2c.read_i2c_block_data(address, 0x00, 12)
temp = (block[0] << 8 | block[1]) >> 3
if(temp >= 4096):
    temp -= 8192
print("Temperature:%6.2f" % (temp / 16.0))
time.sleep(1)
if(temp >= 410):
    GPIO.setup(27, GPIO.OUT)
    GPIO.output(27, 1)
else:
    GPIO.setup(27, GPIO.OUT)
    GPIO.output(27, 0)
GPIO.cleanup()
これをi2c.pyというファイル名でデスクトップに保存。

次にメールの設定
sSMTPをインストールする
sudo apt-get install -y ssmtp

インストールが完了したら,/etc/ssmtp/ssmtp.conf の設定変更
sudo nano /etc/ssmtp/ssmtp.confから下記を変更する。
 root=*****@gmail.com       ※自分のGメールアドレスを入力
 mailhub=smtp.gmail.com:587 
 そしてこちらは追記
 AuthUser=*****@gmail.com 
 AuthPass=password ※Gmailのパスワード
 UseSTARTTLS=YES 
※場合によってはアカウントのセキュリティ設定変更が必要なので注意してほしい


これでメールの設定はOK、次にスケジュール実行機能のあるcronを使う。
これはデフォルトで搭載されているのでインストールは必要ない。

まず設定を変更する。
crontab -e
最後の行にPythonファイルを実行する様に追記する。
0 7,22 * * *sudo python /home/pi/Desktop/i2c.py 

始めの*が左から分、時、日、月、曜日を表す、これだと毎日7:00、22:00にてメール送信をする設定となる。

あとは送信するメールアドレスを追記
MAILTO="メールアドレス"

これでこのメールアドレスに毎日7時、22時に温度のメールが来るようになる。

常時監視なら外気温度を取りたいところだがとりあえず室内で今は我慢。
今後はエアコン操作も視野に入れてみたい。








拍手[0回]

PR

コメント

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30