DesignSpark Electrical Logolinkedin
Menu 検索
フォーラムで質問

認知症患者と高齢者のための医療追跡システム (パート2)

パート1では、Hexiwear (923-6084) プラットフォームと落下をジャイロと加速度を使ってどのように検出するかを紹介しました。Hexiwear はmbedと互換しているため、プログラムがとても簡単です。このセクションでは、OLEDディスプレイの有効化とBluetoothとスマートフォンをつなぎ、緊急時発信の方法を紹介していきます。

次に、Evothingsを使用してAndroidアプリを作成し、スマートフォンをHexiwearに接続する方法について説明します。

ではOLEDディスプレイについて初めて行きましょう。Hexiwear は1.1” フルカラー OLED ディスプレイがあります。プログラムすることで好きに表示させることができます。OLEDディスプレイを使用するとき、Hexi_OLED_SSD1351.hというライブラリをプログラムに追加する必要があります。以下のコードは、テキストプロパティ、背景色、およびテキストの位置を設定します。テンプレートが設定されたら、テキストを変更するだけです。

void initOLED()

{

char text[20]; /* Text Buffer */


/* Get OLED Class Default Text Properties */

oled_text_properties_t textProperties = {0};

oled.GetTextProperties(textProperties);

 /* Turn on the backlight of the OLED Display */

oled.DimScreenON();


/* Fills the screen with solid black */

oled.FillScreen(COLOR_BLACK);


/* Change font color to Blue */

textProperties.fontColor = COLOR_BLUE;

oled.SetTextProperties(textProperties);


/* Display Bluetooth Label at x=15,y=0 */

strcpy((char *) text,"DesignSpark");

oled.Label((uint8_t *)text,15,0);


 /* Display Text at (x=20,y=15) */

strcpy((char *) text,"HexiCare");

oled.Label((uint8_t *)text,20,15);



/* Change font color to blue */

textProperties.fontColor = COLOR_BLUE;

oled.SetTextProperties(textProperties);



/* Set text properties to white and right aligned for the dynamic text */

textProperties.fontColor = COLOR_WHITE;

textProperties.alignParam = OLED_TEXT_ALIGN_RIGHT;

oled.SetTextProperties(textProperties);

 }

OLEDと同様の方法で、ライブラリを追加するだけでBluetoothを追加でき接続できるようになります。 ライブラリはプログラミングを簡単にしますが、mbedはライブラリの巨大なリポジトリをサポートするだけでなく、ハードウェア抽象化ももたらします。 基本的なハードウェア技術との複雑な関係を取り除き、ソフトウェアアルゴリズムに集中できます。

#include "Hexi_KW40Z.h" // BLE

...

KW40Z kw40z_device(PTE24, PTE25); // BLE (UART TX, UART RX)

...

int main()

{

...

Thread txThread; // Thread to handle sending BLE

...

}

...

void txTask(void)

{

while (true)

{

// Send alarm data

kw40z_device.SendFaintAlarm(faintAlarmBLE);

Thread::wait(1000);

}

}

以前の気絶検出アルゴリズムで、faintAlarmBLE変数を変更します。気絶が検出されると、faintAlarmBLEが1になり、毎秒スマートフォンに送信されます。確実に送信されるようにデータを繰り返し送信することをお勧めします。これが煩雑な方法であることを知っていますが、私はシステム全体を設計していないため、すべてのケースでデータが確実に伝送されるようにしたいためこの方法をとります。

BLE部分を記載したら、Androidアプリを作成します。私は今までAndroidアプリを作成したことがなかったため、 HTMLとJavaScriptを使用してモバイルアプリを作成するシステムを使います。 Evothingsはこのシステムの一例です。今回はHexiwear用のアプリケーションを作成する方法を説明したwebinarがあるので、これを使用します。


 

これはAndroidネイティブ言語を覚える必要がないため素晴らしいツールなのですが、いくつかの問題があります。Evothingsはクラウドベースのためメンテナンス中は開発できません。 起源があるプロジェクトの場合、影響してしまう可能性があります2つ目に、Evothings SMSオプションが組み込めません。この機能を追加しようとしたらエラーが出てしまいました。

 
 

 

幸いにも、このアプリは大きなトラブルなく完成しました。ただSMSまたは呼び出しオプションを追加する必要があります。EvothingsにはSMSのプラグインはありませんが、Cordovaプラグインをサポートしています。 このリンクでは、SMS機能をEvothings Studioに追加する方法について説明します。ネイティブ言語でアプリ開発したことがある人はそちらで開発することをお勧めします。

完成品を使用したい方はGitHubまで。

 

 

Mehmet is an Embedded Systems Engineer and he loves to play with new boards(toys). He is looking for PhD opportunities. Lately, he has created a website mehmetbozdal.com where he shares his knowledge and postgraduate experience.

8 Feb 2017, 9:12