忍者ブログ

設備のマニアどっとこむ

設備、電子工作、DIYのブログ!

02/03

Sat

2018

raspberry pi とslackで温度の遠隔監視

最近やっとラズパイらしい使い方になってきたので今度はAPIにチャレンジしてみた。
意外にもさほど難しくなかったので紹介したい。

Twitterで温度測定してる人は多いみたいだが、自分としてはあまり見られたくないので(鍵アカにすればいいんだけど)slackにしてみた。

まずはslack側でトークンの取得が必要。
incoming-webhookってところからWebhookURLというトークンを取得する。
これをラズパイのパイソンに記入すれば、ラズパイからつぶやく?ことができる。
こんなやつです→https://hooks.slack.com/services/xxxxx

今回はこの記事でつかっている温度センサーADT7410でslackに投稿できるようにしてみました。

コードはこんな感じです。
i2c.py(デスクトップに保存)
import smbus
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
 
i2c = smbus.SMBus(1)
address = 0x48
# coding:utf-8
import requests
import json
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)
               
temp2 = (temp / 16.0)
GPIO.cleanup()
SLACK_URL = "https://hooks.slack.com/services/××××"
#ここだけslackのトークンを入れてください。
def send_slack():
    content = temp2
    payload = {
        "text": content,
        "icon_emoji": ':snake:',
    }
    data = json.dumps(payload)
    requests.post(SLACK_URL, data)
send_slack()

あとはcronでこのパイソンコードを定期的に動作させればOK
まず設定を変更。
crontab -e
最後の行にPythonファイルを実行する様に追記。
* * * * * sudo python /home/pi/Desktop/i2c.py 

そうするとこんな感じででてきます。

とりあえず出先でも家の温度がわかります。いずれ遠隔で設備を動かして温調できればと思ってます。






拍手[0回]

PR

01/28

Sun

2018

raspberry piでソーラーパネルの状態監視

前回記事でバッテリー電圧の監視をはじめたが、今度はパネルの状態が気になってきた。

ベランダに設置しているものの、台風などで吹き飛ばされたら一大事!

今回はパネルの写真をcronでスマホにメールするようにしてみた。




こんな感じ。

まずはraspberry piへUSBカメラを接続

そしてfswebcamを使って静止画の保存をできるようにする。

sudo apt install fswebcam
でダウンロードし
fswebcam test.jpg
コマンドで静止画を保存します。

これをcronで定期的に上書き保存 → メール送信していきます。
メール添付をするのにmuttをインストールします。
sudo apt-get install -y mutt
続いてユーザユーザフォルダにあるMuttの設定ファイル(.muttrc)を編集します。
nano $HOME/.muttrc

set sendmail="/usr/sbin/ssmtp" # smtpクライアント。今回はsSMTPを指定。
set realname="Report sender" # メールの差出人
set from="XXXX@host.jp" # 受信者のメールクライアントで「From:」に表示させるメールアドレス

そしてcronに定期的に実させる様にします。
crontab -e

*/2 * * * *  fswebcam /home/pi/test.jpg
*/4 * * * *  mutt -s "photo from raspi" setsubinomania@gmail.com -a /home/pi/
te$
写真を撮る、送る間隔は2分ごと、4分ごとなど少し分けた方がいいかもしれません。

びっくりするほど画像が送られて来ますがこれでソーラーパネルの監視ができるようになりました。





拍手[0回]

01/14

Sun

2018

ソーラーパネルでraspberry pi常時起動&バッテリー電圧の遠隔監視

以前の記事  【DIY】ソーラーパネルで交流100Vを作る 2 でのUSB電源供給を使って商用電源なしでraspberry piをスタンドアローンで使用できる様にしてみた。しかしながら
raspberry piを外に設置するのは気がひけるのでパネルを外、バッテリーを室内に入れられるように簡単に工事した。

といってもエアコンの冷媒配管のところへ配線しただけ


12Vバッテリーにてraspberry piへ供給する。
いつのまにかバッテリーが放電してしまうのを防ぐ為に前回記事 raspberry piを常時起動して温度を遠隔監視する の内容を応用させて室内温度とバッテリー電圧をGmailへ送信できるようにしてみた。

といっても前回つかった温度センサーADT7410ではI2Cで温度しか測定できないので、アナログの入力4チャンネルあるADS1015を使用した。
使い方はこちらのサイトを順にやれば動作した。(英語だけど)
注意してほしいのがADS1015を使用する場合下記の様に#を付け替えなければならないということ
# adc = Adafruit_ADS1x15.ADS1115()
adc = Adafruit_ADS1x15.ADS1015()



そしてsimpletest.pyをすこし書き換えてGAIN=1のところを2/3にしてレンジを±6.144Vにした

# Choose a gain of 1 for reading voltages from 0 to 4.09V.
# Or pick a different gain to change the range of voltages that are read:
# - 2/3 = +/-6.144V
# - 1 = +/-4.096V
# - 2 = +/-2.048V
# - 4 = +/-1.024V
# - 8 = +/-0.512V
# - 16 = +/-0.256V
# See table 3 in the ADS1015/ADS1115 datasheet for more info on gain.
GAIN = 2/3




それでも12V電圧を測定するのにレンジが不足しているが同じ抵抗を3つつけて分圧すれば測定できる。(電圧は1/3)
そしてADS1015にて表示される数値は6.144Vを2048分割したものなので計算式は

表示値×3倍×6.144V/2048 = 表示値×0.009 (これが係数!!)

となる。これをcronで定期的にメール送信するとこんな感じ。

バッテリー電圧は1326×0.009=11.934Vで算出できる。
pythonをもうすこし勉強すれば計算式を埋め込んで電圧表示にできるんだけど・・・
残念ながらこの表示が精一杯。

ちなみに夜は徐々に電圧が下がっていくだけなので朝までバッテリーが持つかハラハラしますよ!!










拍手[0回]

01/08

Mon

2018

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回]

11/19

Sun

2017

アルティメット雅史、スタバでraspberry piを動かす。

最近、スタバにMacbookを持ってきて長時間居座る輩が多いらしい。昔からちらほらいたのは感じていたが、ドヤラーとか言われているそうな。

もちろん地域によって客層も異なると思うのだが、ちょっと気になるので意識高めの人が多そうなKO大の近くのスタバに行ってみることにした。手ぶらだとアレなのでこちらもraspberry piと電源一式を持参して対抗(?)することにした。

土曜日の昼頃行ってみたのだが、本当にMacbookをはじめノートPCを使っている人であふれかえっていた。全く席が空く気配がなく、店の回転率を明らかに落としている様だった。 店側も「12月×日より 勉強やPCでの作業ができる時間帯を制限します」といった旨の看板を出していた。きっと迷惑なのだろう。

座れないので諦めて帰ろうとすると、ちょうど店の前のオープンカフェ的な席が空いたので飲み物を注文することにした。380円のティーラテを頼んだ。「サイズはどうしますか?」と言われたので「一番小さいやつ」と答えると「は?」といわれたのでもういちど同じ回答をした。
一応その時に「PCを使ってもいいですか?」と聞いたら特に迷惑そうな顔もされずOKをもらえた。




席について電源とraspberry piを展開するとすぐ隣の人が離席した。

その後I2C通信で温度を測定。15度程度で肌寒かった・・・。

もともと長居するつもりもなかったが、10分~15分ぐらいでバッテリーが切れてしまい撤収することになった。だいぶモニターが電力を食ってしまっていたみたいだ。残念ながらアルティメットの持っている機材ではドヤラー達に対抗することはできなかった。

やはりMacbookはじめ最近のノートPCのリチウムイオン電池の進化はすごい、6時間ぐらいは平気で持つらしい。そのバッテリー技術の発展がドヤラーという人たちを産んでしまったのかもしれない。







拍手[0回]

翻訳(Translate)

AD

シェアしてね

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備のマニア
最近はarduino,Raspberry piyear等の電子工作にハマる。
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトほか

カウンター

お問い合わせ

忍者アクセスランキング

Copyright © 設備のマニアどっとこむ : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]