株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。

Raspberry Pi

Raspberry Piでセンサネットワーク稼働試験(基本編)構成・課題等

投稿日:2018年8月9日 更新日:

Raspberry Piでセンサネットワークを構築して実際に稼働してみます。基本編としてRaspberry Piにセンサを直接接続する構成です。その構成で安定して稼働させるにはどういった課題があるか書いてみます。

システム構成
ハードウェア系
Raspberry Pi Zero WH と公式のACアダプタ
Aitendo BME280(温度、湿度、気圧センサ)Aitendoで購入
Adafruit TSL2561(光センサ)スイッチサイエンスで購入
その他 GROVE I2Cハブ、ブレッドボード、ケース、ジャンパワイヤ等
  スイッチサイエンスで購入

クラウド系
Ambient(IoTデータの可視化サービス)

以下のようなデータの流れになります。
Rapberry Pi本体(センサは直接接続) => (Wi-Fi) ==> インターネット ==> Ambient(ここでデータを確認)

ソフトウェア系
Python系のI2C、各センサのライブラリとAmbientのライブラリ

以下のように接続してWi-Fi経由でAmbientにセンサのデータをアップします。ブレッドボードの左側がTSL2561で右側がBME280です。画像には入っていませんが、GROVE I2Cハブからの配線がRaspberry Piと繋がっています。

(※今回はプログラム詳細については取り上げません。こういった構成で稼働試験をやってみますということが要点です。必要な場合はページ最後の関連リンク等を参照して下さい。)

課題
この構成で安定してセンサのデータをアップするには何が課題というか問題になってくるかです。今までの経験も踏まえてSDカードWi-Fiの接続について考えてみました。

SDカード
Raspberry Piを使っていて急に起動しなくなったという経験をお持ちの方もいらっしゃるかもしれませんが、SDカードに問題が起きることがあります。そこでここでは以下のSDカードを使用しています。

もう少し高額の製品からいろいろと種類があるようです。SDカードのタイプについては以下等を参照して下さい。
SDカードの話 ”産業用SDカード”について

ちなみに、産業用の利用を想定しているRaspberry Pi Compute Moduleの場合はeMMCから起動するようです。

Wi-Fiの接続
Wi-Fiの接続ですが、どうしても切れてしまう瞬間があると思います。Raspberry Piは今現在、接続が切れてまた接続可能な状態になっても自動的に再接続はしません。その対応として以下のような再接続のスクリプトを用意してcronで定期的に実行するという処理を追加しました。

#!/bin/sh
ping -c 1 192.168.3.1
test $? -ne 0 && sudo /etc/ifplugd/action.d/action_wpa wlan0 up

実際の稼働状況
実際の稼働状況ですが、20分毎にセンサのデータを送信するようにして今現在一ヶ月以上経過しました。間違って電源を落とした時以外は正常に稼働し続けています。以下はAmbientのグラフのスクリーンショットです。BME280の温度、湿度、気圧のグラフです。別途TSL2561の照度データも蓄積出来ています。
しばらくはこのままで様子を見たいと思います。

2018/10/22追記
今現在も無事に動作しています。3ヶ月以上経過しました。間違えて電源を切った以外は問題なく動作しています。

プログラム関係の関連リンク
当サイトの記事
Raspberry PiでIoT(温度・湿度・気圧データ編 その1)BME280でデータ取得
Ambientのサイト
AmbientのデーターをPythonで扱う
今回利用したTSL2561のライブラリ
Python library for TSL2561

最後に自社PRですが、Raspberry Pi 関連のご依頼お待ちしております。本記事と同様のセンサネットワークの試用、試作等対応可能です。

AdSense

AdSense

-Raspberry Pi

執筆者:

関連記事

Raspberry Piでタッチアプリ開発(その3)Kivyでレイアウト・ボタン作成

Raspberry Piでタッチアプリ開発の3回目です。前回はKivyの導入について書きました。今回は具体的なレイアウトとボタンを配置してみます。以下のレイアウトについて順番に書きます。Kivyでのレ …

Node.jsでRaspberryPiのGPIOを使う(その2)ブラウザからの操作

Node.jsでRaspberryPiのGPIOを使うの2回目です。前回はGPIOのデバイスドライバをNode.jsのファイル操作を使って操作しました。今回はこれを以下の記事で作成したWebサーバ的な …

Raspberry PiでのNode.jsの導入(その2)Webサーバ的なプログラム

Raspberry PiでのNode.jsの導入の2回目です。前回はインストールと動作確認でした。今回はもう少しWebサーバ的なプログラムを作成してみます。今現在で日本のNode.jsの公式ページにも …

Raspberry Piでタッチアプリ開発(その4)ボタンとGPIOの連動

Raspberry Piでタッチアプリ開発の4回目です。前回作成したレイアウトとボタンのコールバックにGPIOの処理を組み込みます。そして、このアプリを自動起動するように設定します。 今回のシリーズ一 …

Raspberry PiでIoT(MQTTで遠隔操作編 その2)MQTT Brokerの構築とPythonでのpub/sub

Raspberry PiでIoT MQTTで遠隔操作編の2回目です。2台のRaspberry Piでインターネット経由でGPIOを操作するというテーマで書いています。前回はMQTTの基本的な内容とMo …