Category Archives: Uncategorized

V2: モニタリング アプリ

デザイン画面

モニタリング アプリ はMIT App Inventorで開発し、エッジクラウドとTinyWebDB APIを用いて通信し、データの確認と修正、削除は可能であり、そして可変ゲインアンのゲインの設定もできる。

V2の実験段階は、ESP32のIoT 見守りデバイスからモニタリング アプリへBlueToothで直接送信しています。

 

 

 

<<<<<<<<< BlueToothで直接送信 >>>>>>>>>>>

 

ブロック一覧画面

 

アプリの実行画面

 

BlueToothの設定するところ。

V2: IoT 見守りデバイス

上野先生のESP32ピエゾセンサーボードを参考、ブレッドボードで組み立てるところ。

ブレッドボードでテスト中

テスト基板に実装しているところ。

配線が複雑だから、まずFritzingで設計した。

 

実装完了した状態です。右中央の4本ピンソケットは、OLED用です。

OLEDを付けた状態です。

ケースに入れた状態です。

 

モニタリング アプリ開発

MIT App InventorとはもともとGoogle Labsで公開されているAndroidアプリを作成ツールです。 今MITに移管された。プログラミングを専門的に学んだことがない学生がプログラムの作り方の基礎を学ぶために作られました。アメリカでは高校やコンピュータサイエンスを専門としない大学での授業でも利用されています。

モニタリング アプリ はMIT App Inventorで開発し、エッジクラウドとTinyWebDB APIを用いて通信し、データの確認と修正、削除は可能であり、そして可変ゲインアンのゲインの設定もできる。

デザイン画面

画面の上部はタグとStoreするためのデータ入力領域、そして中間は生体データ表示エリア、下部はサービスのステータスと生の受信データの表示エリア。

図 4.7 Appデザイン画面

ブロック一覧画面

ブロック一覧画面はアプリの処理を記述する。

 

主な処理

Button_Get.Click 処理ブロック

指定したWebサービスのURLから、TinyWebDB APIを通して、指定してTagのデータを取得する。このアプリでは、生体データの取得に利用する。

 

Button_Store.Click 処理ブロック

指定したWebサービスのURLから、TinyWebDB APIを通して、指定してTagのデータを保存する。このアプリでは、可変ゲインアンプに対して、ゲインの設定を指示する。

 

TinyWebDB1.GotValue

TinyWebDB APIからデータ取得後の処理。 生体データの取得した場合はデータを描画する。

図 4.8 Appブロック一覧画面

 

アプリの実行画面は図 4.9 に示すように、Button_Getをクリックすると、最新の6秒間のデータ描画が確認された。

アプリの実行画面

図 4.9 アプリの実行画面

Raspberry PiでUPD構築

エッジクラウドは通信防御に必要なより高度なセキュリティ機能が代行する。エッジ層はデータの一時保存と転送のみ行う、データ蓄積、共有する機能はクラウド層に任せる。そのため単純な構造のコンピューターRaspberry Piでも十分機能する。

 

Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピューター。イギリスのラズベリーパイ財団によって開発されている。学校で基本的なコンピュータ科学の教育を促進することを意図している。

図 4.5 Raspberry Pi 

Raspberry Piセットアップ

Raspberry PiはDebianというOSを利用する。予めシステム入れたメディアを購入する、またはOSのファイルをダウンロードし、メディアにセットアップする。

LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。動的なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。

それからRaspberry PiにLAMP環境構築してください。

Web サービスの構築

Webサーバに、われわれはTinyWebDB APIを実装したプログラムをインストールすることでTinyWebDB機能を備えるWebサービスも構築可能である。TinyWebDB APIはWeb管理画面が備え、データの確認と修正、削除は可能である。

見守りデータに特化したデータ処理が必要のため、われわれは上記プログラムをカスタマイズしたプログラムもGitHubリポジトリから取得可能である。

カスタマイズしたTinyWebDB APIプログラムは、データ受信すると、見守りデバイスの一覧が表示でき、デバイスのタグ名、サイズ、ソフトのバージョン、IPアドレス、可変ゲインの設定値、データの数、実際に受信したデータの数と日時状態が容易に判別できる。

データ確認画面:

http://noise.uc4.net/tags.php

 

図 4.6 カスタマイズしたTinyWebDB APIのWeb管理画面

 

蓄積した生体信号のデータの表示機能を備えている。

図 4.7 生体信号のデータの表示

Ubi-健康管理(Ubi-Care)

ユビキタス健康管理のUbi-Careフレームワークは、健康データに特化したUPDである。様々個人健康データのセンサーデバイスで構成するセンサーデバイス層、そして個人健康データを集める、初期処理を行うエッジ層、データ蓄積、共有するクラウド層はお互い独立、オープンなAPIで相互接続する。

図 3.1 Ubi-care 分散型フレームワーク

 

健康データのセンサーが生成するデータ量は多いが価値密度は低く、エッジ層で分散機械学習を行うことによってその価値密度を向上させるとともに、エッジ層で処理することで低レイテンシを実現、ワイヤレス送・受信するための消費電力も大幅軽減可能だ。

データ通信をエッジ層に留めることでプライバシを保護するということが可能に。リソース限定された単独のデバイスの重要なデータや機密データをより安全な環境下で保護する。

UPDフレームワーク

ユビキタス個人データストアUPD(Ubiquitous Personal Datastore)

IoTデバイスから続々とセンサーデータが大量に生成された。しかしIoTデバイスの性能によりセンサーデータ送・受信の軽量化が求められている。

センサーからの大量データがそのままクラウドへ送る場合は遅延が問題になり、またデータ通信のセキュリティが求められ、しかしIoTデバイスのマイクロコントローラは強力な暗号化のために処理能力と電力を消費する余裕はない、データ送・受信プロトコルの軽量化が困難である。この問題を対処するには、センサーの近くにエッジサーバを配置して、さらにエッジサーバにはデータとアプリの分離する、個人データストアUPDフレームワークを提案する。

 

個人データストアUPDは単純のUPD-APIがもちWebデータベース、IoTデバイスからのデータ送・受信は容易になり、保存したデータは共通のAPIで再利用可能。例えば可視化アプリケーションでデータを可視化する、または解析アプリケーションでデータから価値ある情報を見出す。

 

クラウドには、個人データはPOD(Personal Online Datasore)に保存する。POD連携アプリケーションは必要なUPDデータのみPODにアップロードする。PODは対応のアプリケーションを通して指定の相手にデータ共有するができる。

 

UPD、PODとそれに対応するアプリケーションでUPDフレームワークを構成する。UPDとそのフレームワーク利用によりセンサーデータ送・受信の軽量化と転送遅延、セキュリティ両立できる。

 

マイクロコントローラは強力な暗号化のために処理能力と電力を消費する余裕はないので、防御に必要なより高度なセキュリティ機能は、近隣のEdge Cloudが代わりに実行する。

図:UPDフレームワーク

 

このようにユビキタス個人データストアUPD(Ubiquitous Personal Datastore)は、センサー、フォグ、クラウドの三層構造で構成されたデータとアプリ分散型のフレームワークである。

 

この三層構造のメリットは、IoTデバイス電力を消費、データ高度なセキュリティための強力な暗号化、大量データ転送するための低レイテンシを両立させた。

 

IoTデバイス層はデータの収集と転送を専任。リソース限定されたデバイスでも利用可能、消費電力の削減にも役に立つ。

 

エッジ層は防御に必要なより高度なセキュリティ機能が代行する。エッジ層はデータの一時保存と転送のみ行う、単純な構造のサーバでも十分機能する。

データ蓄積、共有する機能はクラウド層に任せる。PODの共有について、World Wide Webの創始者、Tim Berners-Leeが新しいプロジェクトをSolid PODというプラットフォームを参考してください。

IoT 見守りデバイスの開発

見守りIoTデバイスは、ウェアフリー生体センサ・シート型圧電センサと開発ボード、電源で構成された。

シート型圧電センサ

本研究では体動がなく静かな状態で得られた生体信号を分析対象とする。センサは敏感すぎて 体動があると、振幅が大大き過ぎになり、それらが検出できなくなる。

図 4.2 センサシートと開発ボード

今回使用したシート型圧電センサの外形寸法(31cm×34cm)により、椅子の座面に敷いた 状態で測定することにした(図 3.2 右側)。座り状態で安定しやすくなり、血圧や脈拍も測 定しやすくなる。本センサでは 得られた信号は呼吸成分や心拍成分でできている。

見守り開発ボード

 

見守り開発ボードにはA/D変換モジュールADS1115、ESP8266マイクロコントローラ内蔵の開発ボードWeMos D1 Miniと、OLED表示モジュール SSD1306が含まれる。

WeMos D1 MiniとはESP8266をメインチップとして、CH340のUSBシリアル変換チップを組み合わせた開発ボードだ。ESP8266マイクロコントローラはWi-Fiネットワークに接続し、簡単なTCP/IP接続を行うことができる。

 

ADS1115は可変ゲインアンプ付き、4チャンネル内蔵の16bit  A/D コンバータ。I2Cというシリアル通信方法で開発ボードに接続する。

 

SSD1306は小型 解像度128×64 OLED ディスプレイである。こちらもI2Cというシリアル通信方法で開発ボードに接続する。

図 4.3 見守りIoTボード

 

UPDとの通信はUPD APIを利用する。データをUPDへ送信と、UPDから見守り開発ボードへの管理コマンド受信に利用されている。送受信データのTAGは、複数の個体を区別するため、マイクロコントローラのMACアドレスの一部を利用する。例えば見守りIoTボードのMACアドレス下6桁は37cb33のマイクロコントローラに対して、ゲインを4に設定する場合は、TAGは gain-37cb33 である。

 

ウェアフリー生体センサからのデータをサンプリング周波 数 100Hz でデータを取得し、A/D変換して保存する。一定期間のデータを収集したら、まとめてUPDへ送信する。データサンプルは付録1を参照。一度にデータの収集できる期間は、見守りデバイスマイクロコントローラの内蔵メモリの容量による。

ESP8266マイクロコントローラの場合、メモリのリミットにより、6 秒間のデータの蓄積、送信できた。プログラムの最適化により、より長い期間のデータの蓄積、送信も可能である。

図 4.4 ケースにいれた見守りIoTボード

 

見守りIoTボードUPDから見守りデバイスへの管理コマンドの受信も可能である。

ADS1115は可変ゲインアンプであり、現在実装したコマンドはそのゲインの設定である。次はADS1115のゲインを指示するコマンドのサンプルである。

 

“VALUE” “gain-37cb33” “4”

われわれ開発した見守りIoTデバイスのプログラムはGitHubのリポジトリを参照する。