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はたしかバッチ処理だったかと思う。

コメント