IoT」カテゴリーアーカイブ

MRTGで情報を取得する

モバイルルータを利用した、センサーデータのパブリック処理は

試験スタート時から大きな不具合なく動作している。

プログラムが安定して動作している中、トラヒック、CPUはどの程度使っているのか不明だったため、SNMPを利用して情報収集をする。

これについてもソフトウェア開発に強いラズパイを利用して構築することにした。

最低限、取得したい情報として(ラズパイ3を対象)

■CPU

■ETH0

■WiFi0

 

可視化プログラムは、相性の良いMRTGを利用する。

 

【大まかな流れ】

WEBサーバ化にする (apache2パッケージインストール)

snmpマネージャーにする(snmpdパッケージインストール)

MRTGプログラムのインストール(mrtgパッケージインストール)

snmpwalkでMIBを見ながらの監視をしたいので(snmp-mibs-downloaderパッケージのインストール)

※snmp-mibs-downloaderは入れておいた方がいいでしょう。少しはまりました。

シングルボードコンピューターでも、比較的容易に構築自体はできました。

引き続き動作確認を実施します。

SPRESENSEデビュー

SONYより発売されたSPRESENSEを購入しましたので動作確認を含めて試してみます。
購入したのは本体と拡張ボードで下図の通り、拡張ボードの上に本体を搭載します。これには付属のピンを使います。

SPRESENSEとBME280

開発は、Arduino IDEが使えるのでそのまま流用。
動作確認をSPRESENSEのサイトの指示に従い確認し、問題なし。
次いで、BME280センサを図の通りつないでシリアルポートで温度、気温、湿度が測定できることを確認。

注意点として、
・シリアルポートの速度は、9,600bpsにする。
・SPRESENSEの電源を3.3Vに変更。

後者のSPRESENSEの電源ですが、デフォルト5Vであり、これを3.3Vに変更する。これの切り替えは、ボード上に切り替えのジャンパーがあり、3.3Vで動作するよう差替えて測定できるようになりました。
使用したスケッチは、Arduinoの試験で使っていたスイッチサイエンス社のスケッチをそのまま使用し、配線もArduino で使用したものを流用して問題ありませんでした。

次は、通信環境ですが、これもArduino(UNO)と同様に標準でサポートされてませんので、Wi-FiのAdd-onボードのリリースを待つか、Arduinoで使用したESP-WROOM-02つなぐか、ですね。

今日のところはここまでで、追々試してみます。
SPRESSENSEの特徴である音声や映像も扱ってみたいですね。

ではまた。

VPNサーバの構築(IoTとは少しズレるが、)

このご時世、どこでもアクセスできる環境は必須。

お客様は待ってくれない。

といことで、VPN環境の構築をラズパイで実現させる。

私の場合、VPN構築は、高確率でドツボにまるのが鉄則である。ある程度時間に余裕ができないと、作業に取り掛からない。珍しく時間が取れたので作業に着手する。

ubuntuなどで実装済みで、基礎知識はある程度ある(つもり)。

 

意気揚々と資料の収集作業。。。。。。。。。。。。。。。。。。

 

なんと!ありがたい!!!

簡単に実装できる、コードを開発された方が居られました。

すごい!!!

githubにコード公開されておられます。

本当にありがとうございます。

https://github.com/pivpn/pivpn

 

手順通りに実施、、、、

2時間程度で構築できました。

 

セキュリティーを高めに保ちつつ、リモートアクセスできます。

皆さまも是非構築してみてください。

 

 

モバイルルータでの接続

【AWS】=【(地元ISP様SIM)モバイルルータ】==(Wi-Fi)==【ラズベリーパイ】

上記構成で10日間程テストを実施

※センサーデータは(温度・湿度・気圧)で1時間1回のサンプリング

 

■AWSへのPub処理

問題なく動作

 

■モバイルルータ

デフォルト設定だと通信断が発生する

電源設定、LAN設定の微調整が必要

 

■メンテナンス

ローカルメンテナンスでは、特に困ることは無い

リモートメンテナンスを考えると、モバイルルータ側にポートマッピング機能、内部ルーティング機能があるものを選択する必要がありそうだ

 

引き続き実施する。

 

 

 

 

モバイルルータと3Gドングル

必須試験項目として、やっておかないといけない事。

公衆無線網への接続検証。

オフグリッド化という事も大事だが、同レベルで無線インフラへの安定接続も大事である。

今回は、地元ISP様の協力のもと、モバイルルータと3GUSBドングルを使い3G/LTEでの接続性・安定性・利便性を確認していく。

ご協力いただきました皆様に、感謝申し上げます。

 

水位センサーのその後

写真のような構成で1週間程度動作させてみた。

ここで確認したかったこと。

①水位センサーで水位レベルが確認できるか。

②水位センサーに水分がなくなると検知できるか。

③検知後、メール発報はされるか、またどの発報からのメールが見やすいか。

 

①について、コードの書き方にもよるが、%で取得はできた。

ただ、それが正確なのかは疑問で、正確にするにはかなりのチューニングが必要。

 

②について、問題なく検知はできた。

ただ、水位が下がってから、回路の水分がなくなるまで約1時間程度かかる。

それまでは、水分ありの状態で動作し続けるので、それをよしとするか否か。

 

③について、こちらも問題なく発報された。

その次に、cloudwatchからの発報とIoTcoreから直接の発報を見比べてみた。

分かり易いのは、IoTcoreからの方だと私的にはおもう。

jsonで飛んでくるので、それに慣れればの話だが。。

cloudwatchからの発報のような、長い英語+UTCで飛んでくるよりは見やすい。

status:Warning

message:No Water

とした。

もうしばらくこの環境で動作させて様子をみます。

 

救世主となるか? RasPi Zero W

こんにちは、ミウラです。

屋外IoTで問題となる電源問題と導入コストを解決する救世主になるかどうかの目的で購入した、RaspberryPi Zero Wの動作試験です。

RaspberryPi_Zero_W

PiZeroの写真

左がRaspberryPi Zero Wで右のRaspberryPi 3に比べると面積比で約1/2(もう少し小さいかな?)です。
HDMIとUSBのインターフェイスも違いますので注意が必要です。
・USBは、microUSBですが、1ポートしかないのでUSB-HUB(未検証)があったほうがよいです。
・HDMIは、miniHDMIとなります。いずれも変換アダプタ、ケーブルで対応しました。
・電源は、Pi3で使っていたもので大丈夫でしたが、詳しくは、製品の仕様書で確認して下さい。

インストール設定や操作感はほぼ同じです。

ただ、ネットワーク設定が、/etc/dhcpd.confでなく、/etc/dhcpcd.confなので要注意。

前回試した、RaspberryPi3で使ったソースと距離センサをそのまま使って問題なくAWS-IoT Core へのpub-subができているようです。

pi@pizerow1:~/python_programs/hc-sr04 $ sudo python hcsr04_basicPubSub.py -e *********.iot.ap-northeast-1.amazonaws.com -r ./certs/rootCA.pem -c ./certs/********-certificate.pem.crt -k ./certs/********-private.pem.key -id myRasPi******** -t MyTopic***
{"date": "2018-06-20 15:20:04.536784", "distance": 17.656610012054443}
{"date": "2018-06-20 15:21:04.966596", "distance": 17.86690592765808}
{"date": "2018-06-20 15:22:05.426453", "distance": 17.763819694519043}

次はバッテリがどれくらい持つのか耐久試験です。

ではまた。

水位センサー

水位センサーの構築に取り掛かりました。

KKHMFセンサーを利用して、水の有無を判断。

水がなくなったら、特定のメールへPUSH。

サクッとできました。

1週間程度、動作チェックをおこないます。

進捗あり次第更新します。

 

近況

1ヵ月程度、BME280で温度・湿度・気圧とDS18B20で温度を取得してみた。

まず、調べたかった点として、BME280の温度とDS18B20の温度の差分。

結果、データ値の大きな差はなし。

DS18B20は防水なので、野ざらし環境でも十分利用ができそうだ。

 

次に、RSPi⇒IoTcore⇒cloudwatchでのグラフ化。

これも問題なく構築できた。

 

その次の、cloudwatch(閾値設定)⇒SNS⇒メール発報。

ここも問題なく構築できたが、、

メールの内容が英語とUTC時刻で飛んでくる、、、

直したいが、直し方がわからない。。仕様なのか、、

 

こんなところだが、、

ここで一度この構成での検証は止めて、次に移ろうと思う。

 

進捗あったらまた更新します。

BME280とSNS連携(ミウラ編)

こんにちは、ミウラです。

前回に引き続き、センサデータにより温度が異常値になるとメール発報する仕組みを追加しました。
センサの温度が30℃を超えたデータを採取すると、AWSのSNSサービスからメール送信を行います。手でセンサを塞ぎ、30℃以上のデータを検知したタイミングでメールが送信されました。なお、メッセージはデフォルトのままで素っ気ないですが。

図1)SNS機能の追加

ondo30というトピックを作成し、IoTのルールで「SNSプッシュ通知」を選択し追加、そしてSNSターゲットにondo30のトピックと連携させる。

ではまた。