社長席の温度監視を支える技術。/社長席の温度監視を支える技術。raspbian社長席の温度監視を支える技術。ツイートシェアはてなはじめにこの記事は、こちらの記事で挙げた監視システムを構築した際の技術ログとなります。CloudWatchを使って、暑い場所と寒い場所の温度差を実際の数値で確認しました。以下の手順はすべて、下記の環境で行いました。Utility.app)を用いて下記を行っておくと良いでしょう。参考に、下記コマンドを実行して、ダウンロードしたOSイメージをSDカードに書き込みます。時間(数分〜数十分程度)がかかりますので、ゆっくり待ちます。下記を行い、OSを起動します。Pi2に繋げられば不要なのですが、今回はそれら無し(headless)でのセットアップを行うため、SSH接続経由で諸々の作業を行います。Pi2のIPが不明なため、IPv6のリンクローカルマルチキャストアドレス(ff02::1)へping6して探り当てました。探り当てたIPv6アドレスにSSH接続します。raspi-config(お好みで)SSH接続後に上記コマンドを実行して、各種設定を行います。Filesystemは行ったほうが良いかと存じます。下記の設定変更・確認を行います。内容は、こちらを参考に、wpa_passphraseコマンドを利用して記述します。下記の部分は、自ネットワーク環境の情報に置き換えてください。psk=2b1d17284c5410ee5eaa.............}設定反映のため、再起動します。reboot再起動後に、無線LANの接続を確認します。ESSID:"{{無線LANのSSID}}"...以上で無線LAN接続が確認できました。設定avahiとは、Zeroconfのフリーの実装です。いった{{hostname}}.localという形式の名前で名前解決できるようになります。設定しなくても問題ありませんが、パッケージをインストールする程度で使えるようになるので、インストールしておくと良いかと存じます。avahi-daemon/etc/hostnameと/etc/hostsの内容を確認します。Pi2を再起動します。Pi2再起動後、同一LAN内の他のホストから、raspberrypi.localに向けてpingを飛ばして名前解決の動作確認を行います。インストールする必要があるかと存じます。ms...vimインストールデフォルトだと、viしかインストールされていないので、vimもインストールします。CLIインストールaptのawscliパッケージをインストールします。配線図のとおりに、回路接続を行います。ラズパイGPIOの3.3Vのどれかピン配置は下記サイトを参考にしました。Pi2DS18B201-Wireセットアップ今回使用した温度センサ:DS18B20は、1-Wireというプロトコルで通信を行うことで測定値を取得できます。Pi2側で1-Wireを有効化します。参考に疎通確認を行います。正常に接続・設定できている場合、/sys/bus/w1/devices/内に、28-00000723c22dのような名前形式のディレクトリができます(環境により、このディレクトリ名は異なります)。存在しない場合は、配線・設定をもう一度確認してください。../../../devices/w1_bus_master1...存在する場合、該当するディレクトリ内のw1_slaveという名前のファイルを表示してみます。すると、下記のような文字列が確認できるはずです。t=29437この文字列の、t=29437の部分の値がセ氏温度を1000倍した値を表しています。無事に疎通確認ができましたでしょうか。今回はPythonで実装して、/home/pi/pi_therm_sensor/PiThermSensor.pyへ設置しました。CLIのコマンドによりCloudWatchへ測定した温度を送信する際に用いるIAMユーザを追加します。順に遷移して、新規ユーザ作成ボタンを押下ユーザー名をお好みで入力(今回はIoTとした)。下記のような状態になっていれば大丈夫です。上記手順でIAMユーザを作成した際のcredentials.csvをもとにプロファイルを設定します。configureコマンド実行時に、秘匿情報の入力を要求されるので指示にしたがって入力します。ここでは、作成するプロファイル名をiotとします。測定した温度を送信するシェルスクリプトを実装し、/home/pi/pi_therm_sensor/clowdwatch_put_temperature.shへ設置しました。上記手順で作成したプロファイル:iotを用いて、測定した温度をraspberry_pi_temperatureというメトリクス名で送信しています。$REGIONCronで測定した温度を定期的にCloudWatchへ送信する上記手順で作成したシェルスクリプトを、Cronで定期実行するように設定を追記します。2>&1ただし、Raspbianの初期設定のままだと、/var/log/cron.logへログ出力がなされなかったので下記設定を行いました。下図のような画面が表示されるはずです。Piブームのおかげで、Web上に参考になる先行事例がたくさんある一般的なスクリプト言語でプログラムを記述できるといった理由により、とても簡単にできたと存じます。いくつかのコマンドを叩くだけで、簡単にできてしまいました。アイデアの本質的な部分へ最大限の力を注ぐことが大切なのではないでしょうか。