IoT

IoTに使うテクニック・サービス、その実装例についてまとめたページです。

センサーやモーターを接続するエッジ・デバイスについては ワンボード・マイコン のページを参考にしてください。

GlobeConsole.com

手前味噌になってしまいますが当サイト管理人が作ったWEBサービスを紹介します。まだ安定運用できていないので初期化によって突然データが無くなったりしますが、実験には使える完成度になっています。※このサイトは現在閉鎖されています。

https://globeconsole.com

IoTシステムを作るとき、マイコンの知識さえあればエッジデバイスを作るのはなんとかなります。次に、マイコンで集めたデータをどこに送信・蓄積するかという段階になると急に敷居が高くなります。サーバーに関する知識、クラウドや通信に関する知識を総動員する必要があるので、経験の浅い初学者や学生にとっては難しいものです。そこで、ユーザー登録してデータ送信するだけのWEBサービスを作ってみましたので試してみてください。

IoTデータの収集

ワンボード・マイコンにセンサーを接続して測定し、そのデータをどこかに送信するというシチュエーションを想定します。

IFTTT

IFTTT(If This Then That)はIoTシステムのハブとしてとても重宝します。

(使用例については作成検討中)

Ambient

通信機能を持つワンボード・マイコン ESPDuino-32 で温度を測定し、IoTデータを可視化するサービス Ambient で測定結果をグラフ化する例です。

ESPDuino-32:Ambientで温度をモニター

Bluetooth

エッジ・デバイスが至近距離に存在することが前提なら、スマホとの間で Bluetooth または BLE を使うことも可能です。

micro:bitのBLE通信のデモ
micro:bitのBLE通信でセンサーデータを送信
ESPDuino-32:Bluetoothシリアル通信

デプロイ

同じネットワーク内で閉じたシステムであればエッジ・デバイスとの通信は簡単なのですが、外部のインターネット環境からファイヤ・ウォールを経由して通信する場合は何らかの工夫が必要になります。

ホスティングサービス

IoTシステムではWEBサーバーを設置してエッジ・デバイスとHTTP通信する場合もありますが、学内にサーバーを設置すると学外からアクセスできません。その様な用途では学外にサーバーを設置する必要があります。Flaskで作成したWEBアプリを例に、インターネットに公開するためのホスティングサービスをいくつか紹介します。

    1. PythonAnywhereにデプロイする
    2. Herokuにデプロイする
    3. AWSにデプロイする

ローカルホストを公開する

ローカル環境で http://localhost:8000 等として動作している環境をそのまま外部インターネットに公開できるサービスがあります。常時稼働する必要がないシステムであればこの方法が使えます。外部にサーバーを立てる必要がありません。ただし、ファイヤ・ウォールを迂回して通信することになるのでセキュリティへの配慮が必要になります。

ngrokでローカルサーバーを公開する

他にも類似のサービスが存在するようだが詳細未確認なので情報源だけ示す。

2021年に知っておくべきトップNgrokの代替案
Weaved で Rasberry Pi を IoT化第一歩
Weaved – IoT Kit による外部ネットークからのSSH接続
ngrokやserveoなしでローカルで開発しているサイトに外部からアクセスする方法

AWS Lambda

システムをデプロイして公開するときにちょっとした処理を挟みたいことがあります。AWS Lambda はそのような目的に使用できるので使い方を書いておきます。

AWS Lambda で Python

 

実装例

(1)M5Stackをセンサー端末として、LPWA通信のSigfoxを使ったIOTシステムの構築例を説明します。

Sigfoxによるシステム構築

(2)壁に取り付けられた照明スイッチを押す工作の例

壁スイッチのリモート操作

(3)猫がトイレに入ったらLINEに通知するシステムを作りました。

猫トイレ問題

 

コメント