RaspberryPi3 de I2c SPI ZABBIX

Raspberry Pi3と秋月電子通商で調達した温度・温湿度センサをI2C SPIで接続をしてZABBIXサーバに記録する手順の備忘録。BME280で温湿度/気圧まで取得し完結をはかろうとしたけど値が暴れて断念。なにか構成に問題があるのかも、、

うまくいったらZeroで温湿度ロガーを作ろうと思う。 🙂 

準備編

・I2C/SPIの有効化

raspi_0000

raspi_0003

raspi_0004
raspi_0001

raspi_0002

raspi-configでi2cとspiを有効にするとconfig.txtも書き換わっている

# vi /etc/modules に追記
i2c-dev
ここで再起動

構成

型番 購入先 接続 参考金額
本体 Raspberrypi3 ツクモロボット 5000以下
温度センサ ADT7420 秋月電子通商 I2C 500
温湿度センサ AM2320 秋月電子通商 I2C 600
温度センサ LM35DZ 秋月電子通商 SPI 120
ADコンバータ MCP3002 秋月電子通商 180
ブレッドボード EIC-801 秋月電子通商 270
ジャンプワイヤ   秋月電子通商  

raspi_board

ブレッドボード上に3個のセンサーを設置している

BoardLayout

Fritzing AM2320のデータが無いので代用している(白いセンサ)ブレッドボードの向きが180度違っている。Fritzingで書いて初めて気がついた。。。。

fritzing

デバイスアドレスが取得出来ていることを確認する

温湿度センサは休止モードとなっているため1回目では出現していない。目覚めた後の2回目で認識が確認できた。

・単体センサとしての値をとってみる(すべて先人のコピーです 多謝!)
ADT7420(温度センサー)

LM35DZ+MCP3002(温度センサ+ADコンバータ)
ラズパイマガジンのソースをコンパイルしています 2015年春号項目21から

AM2320(温湿度)
こちらのam2321.cをコンパイルして使わせていただきました。多謝 温度 湿度の順で表示されます。

ZABBIXに取り込むためのデータ準備(数値だけにする)

ここまでに参考にさせていただいたサイト

RaspberryPi i2cgetでADT7410の温度を取得するコマンド

Zabbixへの送信 
エージェントを使わずにzabbix-senderをつかってZabbixサーバに送り込んでやる方法とした。ラズパイは極力シンプルにしておきたいことも理由の一つ。

ラズパイのCPUアーキテクチャ用バイナリプログラムはないのでソースからコンパイルする方法

http://www.zabbix.com/
http://www.zabbix.com/download.php

zabbix_source
https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.4/zabbix-3.0.4.tar.gz/download

zabbixユーザグループの作成

https://www.zabbix.com/documentation/3.2/manual/installation/install

zabbix-3.0.3.tar.gz
ダウンロードしたSourceを/usr/local/srcに移動し解凍

マニュアルより zabbix_senderを使うときは–enable-agentのオプションをつかいますとある

Command-line utilities zabbix_get and zabbix_sender are compiled if –enable-agent option is used.

makeのみでzabbix_senderが出来るのでmake installはやらないでおこう

マニュアルよりmake installするとzabbix_senderは/usr/local/binに格納される
Running make install will by default install the daemon binaries (zabbix_server, zabbix_agentd, zabbix_proxy)
in /usr/local/sbin and the client binaries (zabbix_get, zabbix_sender) in /usr/local/bin.

なのでバイナリを手動で上記フォルダ任意のフォルダにCopyする

ZABBIXに送るための各種センサー値取得スクリプト(Webの切り貼り)
BME280の測定データは暴れるのでコメントアウト
zabbix_sender_cron.shとした

Cronで1分間毎にZABBIXサーバに送る

cronが正常に動いているか
# tail -f /var/log/syslog

ZABBIXのグラフ設定後 AM2320による温湿度をグラフ化している
008

リアルタイムにグラフ作成してくれるのでとてもぃぃ。MRTGはたしかバッチ処理だったかと思う。

スポンサーリンク
レクタングル(大)広告
スポンサーリンク
レクタングル(大)広告