工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ヘルスバンド-高齢者向けのスマートアシスタント

コンポーネントと消耗品

>
Infineon DPS310
× 1
Arduino Nano R3
× 1
Espressif ESP8266 ESP-01
× 1
ジャンパー線(汎用)
× 1
3.7 VLiPoバッテリー
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE
Blynk

このプロジェクトについて

あなたの愛する人は年老いて一人暮らしですか?心配する必要はありません。インフィニオンのDPS310圧力センサーを使用して、バンドの形で腕の周りにぴったりとフィットする仮想アシスタントを開発しました。これにより、この時間のかかる作業を処理し、愛する人を安全な手に任せることができます。

「現在、高齢者は約を代表しています 米国の人口の14.5パーセント そして2030年までに約7400万人の高齢者がいるでしょう。医療費が増大し、適切なケアを提供するよう医療機関に圧力がかかるにつれて、高齢者の健康を管理するための新しいソリューションが不可欠です。」

簡単な検索と衝撃的な数字を見た後、これは高齢者を助けるための私たちの試みです!

ストーリー

私の祖母がアルツハイマー病の初期の兆候に苦しんでから数年が経ちましたが、残念ながら彼女の状態は悪化しているようです。これにより、

などの一連の予期しない問題が発生しました。

1)仕事に出かける(彼女はそうしないように忠告されていたとしても)

2)食事を抜く、または時々2回食事をする

3)彼女の運動をしていない

これはすべて、記憶の欠如と彼女の状態に対する彼女の無意識によるものです。

そのため、母はほぼ1日中、週7日一緒にいる必要がありました。この作業は非常に面倒で時間がかかることがわかりました。その時、祖母の行動や活動を監視し、必要に応じて緊急時に家族に警告することができる仮想アシスタントを作成するというアイデアを思いつきました。母に休憩を与えると同時に、患者を安全な手に保ちます!

システム/コンセプトのコンポーネント

このシステムは主にアルツハイマー病患者が直面する問題に焦点を当てていますが、私たちはプロジェクトに他の多くのシステムを導入し、すべての高齢者の生活に影響を与え、日常生活の障害を独立して乗り越えるのを助けています。

<図>

インフィニオンの圧力センサーの主な特徴の1つは、そのサイズです。これにより、主要コンポーネントがポータブルで非常に用途が広くなります。私たちのシステムの中心には、Arduino Nanoがあり、I2Cバスを介してDPS310圧力センサーに接続されています。アクションと動作は、患者のライブモーションをシミュレートするようにコード化されます。これらのグラフまたは値を使用して、患者の状態を判断し、緊急時にメンバーに警告します。生成されたデータは、Blynkを使用して小さなアプリに表示されます。

このシステム全体がコンパクトでありながら見栄えの良いウェアラブルバンドに統合され、このテクノロジーが患者の生活にシームレスに溶け込みます。

機能と機能

これが私たちのバンドが分析/検出できる主な機能と動きです:

<図>

秋- 研究によると、高齢者の最大の問題は、バランスを崩して転倒することです。多くの場合、患者は無力であり、助けが来るのはいつか後になってからです。これは、圧力の突然の低下を検出することにより、ヘルスバンドで簡単に回避できます。検出されると、怪我の悪化を防ぐために、メッセージが自動的に親戚に送信されます。

<図>

演習 -高齢者にとっては、健康を維持できるとしても、運動させたり、散歩に出かけたりするのはかなり難しいかもしれません。彼らをやる気にさせる方法は、歩数や歩いた時間の長さを見せることで、彼らが運動するように促すことができると考えました。

そして私のおばあちゃんの場合、医者は彼女に彼女が喜んで約1000歩歩くように言いました、しかし彼女は数を失います。カウンターも彼女を助けます!

ヘルスバンドが「波」の動きを検出すると、患者が運動を開始したと推定されます。クレストからクレストまたはトラフからトラフは1サイクルをマークします。ステップが実行されると、サイクル数が生成されて表示され、独自のステップカウンターが作成されます。

<図>

発熱- これは非常に簡単で、センサーも温度を示します。腕に接触しているバンドは、患者の生体温度を示します。スパイクやドロップは、親戚へのメッセージを介して自動的に再度警告されます。

<図>

状態- 親戚に患者の生きている状態を伝えます。たとえば、ヘルスバンドが圧力の変化をあまり検出しない場合、患者は眠っている可能性があります。

睡眠、覚醒、運動の3つの状態があります。 (間違った「状態」を受け取ることがあるため、この機能はまだ完成していません。さらに状態を追加する予定です)

回路

インフィニオンの強力なDPS310センサーは、Bluetoothを使用してアプリに同期できます。アプリは、センサーのライブ視覚表現を生成します。便利でしたが、私たちのコンセプトには限界がありました。

そこで、センサーのデータストリームを利用するために、I2Cバスを介してArduinoNanoを接続しました。これにより、データを計算できるようになり、患者がいたさまざまなシナリオを推測できるようになりました。

そのビットを整理したら、ArduinoをESP8266 WiFiモジュールに接続して、モバイルアプリと通信する手段を提供しました。

セットアップ

<図> <図>

すべてを設定する前に、センサーにピンを追加する必要があります。 7本のピンの2つの長さを切り取り、はんだ付けします。ブレッドボードを使用すると、作業が簡単になります。

<図>
  • DPS310圧力センサーからArduinoNano(I2C)へ
<図>

:センサーの向きは写真のようになっています

ピン1(SDA) センサー上=> アナログピン4 Arduinoで

ピン2(SCL) センサー上=> アナログピン5 Arduinoで

ピン8(GND) センサー上=> GND Arduinoで

  • Arduino NanoからESP8266(WiFiモジュール)
<図>

<図>

:モジュールの向きは写真のようになっています

ピン1 WiFiモジュールの場合=> デジタルピン11 Arduinoで

ピン2 WiFiモジュール上=> デジタルピン10 Arduinoで

ピン7(GND) WiFiモジュールの場合=> GND Arduinoで

ピン8(パワー) WiFiモジュール上=> 3v3 Arduinoで

バンドを作る

小さいすべてのコンポーネントは手首にきちんとフィットします。実際のバンドを作成するために、 Canvas を使用しました およびフォーム コンポーネントを埋め込みます。次にベルクロでストラップを形成します。

<図> <図>

DIYヘルスバンドを作るには、手の幅に合わせてフォームをカットすることから始めます。次に、さまざまなセンサーを配置し、最終的なサイズを切り取ります。エッジを丸めて、見栄えを良くします。ピンをフォームに押し込み(保護とグリップを与える)、バッテリーを小さなスロットに埋め込みます。

<図>

次に、バンドを裏返し、接続をはんだ付けします。ピンが突き出ているはずです...テストランを実行して、すべてが機能しているかどうかを確認します。

<図>

ストラップを作るためにベルクロストリップを追加します。バンドを帆布で包み、ホットグルーで貼り付けます。これにより、すっきりとした仕上がりと感触が得られます!

<図> <図> <図> <図>

3Dプリンターがないため、将来的にはこのプロトタイプをアップグレードして、すべてのコンポーネントに最適なスロットを備えた3Dを印刷し、健康バンドに人間工学的なデザインを与える予定です。

***最終的な3D印刷モデルを写真と印刷ファイルで印刷するときに、このプロジェクトを更新します***

さまざまなアルゴリズムのコーディング

システムのプログラミングを開始する前に、プログラムを機能させるためにインストールする必要のある特定のライブラリがあります。ダウンロードする必要のあるライブラリは次のとおりです。

  • ワイヤーライブラリ (通常、プリインストールされています。これは、Arduino NanoとDPS310圧力センサー間の通信を担当します)https://github.com/PaulStoffregen/Wire
  • DPS310圧力センサーライブラリ https://github.com/Infineon/DPS310-Pressure-Sensor
  • Blynkライブラリ (Arduino NanoがBlynkクラウドと通信できるようにするため)https://github.com/blynkkk/blynk-library

各ライブラリをダウンロードしたら、それぞれのインストールは同じプロセスに従います。 Arduino IDE を開きます。 スケッチに向かいます (ウィンドウの上部)。次に、ドロップダウンリストからライブラリを含めるをクリックします。 。次に、 .ZIPライブラリを追加をクリックします 。次に、ダウンロードしたファイルを保存した場所に移動し、[開く]をクリックします。 3つのライブラリすべてに対してこのプロセスを繰り返します。

これで、トライアルコードをダウンロードしてみることができます コンパイルされるかどうかを確認します。 Arduino Nanoにアップロードし、シリアルモニターを開いて、ライブデータを確実に取得します (IDEの右上隅にあるモニターアイコンで示されます)。

それがうまく機能する場合は、メインコードをアップロードして、アプリの作成を開始できます。

アプリの作成

インターネットに接続するには、Blynkと呼ばれる構築済みのプラットフォームを使用します。これは、AndroidPlayストアからダウンロードできます。以下のリンクを参照してください。 Arduinoでアプリを使用する方法については数え切れないほどの例があり、それらはすべてファイルにアクセスすることで利用できます。 Arduino IDEで、 および Blynkリストの下。

blynkアプリへのリンク :https://play.google.com/store/apps/details?id =cc。

<図>

アプリを使用して、ユーザーフレンドリーな方法でデータを表現しました。

<図> <図>

Arduino Nano を選択します マイクロコントローラーとして、および「接続タイプ」として WiFi 。次に、コードに入力する必要のある「認証トークン」のメールが届きます(コードに記載されています)。

<図> <図>

ゲージなどのウィジェットをいくつか追加しました ライブ温度を表すために、値の表示 ステップカウンターと LCDディスプレイ用 現在の状態を示しています。これらは、他の特定のケースのためにさらに多くの機能を追加できる基本的な構成要素です。

結論、全体的に成功しました!

<図>

プロジェクトにはいくつかのエラーと誤読がありました。 1つは体温でした。 HealthBandによって読み取られたのは摂氏36°(手首の温度)でしたが、医療グレードの体温計は摂氏36.8°(脇の下の温度)として読み取られました。

ステップのアルゴリズムは、最初は間違ったカウントを与えることが判明しましたが、何度か変更を試みた後、かなり正確に機能しました。もう1つの問題は、状態関数にありました。他の状態をさらに理解できるように、変数とステートメントを追加しました。

最終的に、再調整によって問題を修正することができ、HealthBandは必要なデータを正常に収集しました。私の祖母はこの2週間アシスタントがいなくて、バンドは素晴らしい仕事をしてくれました!

今のところ、そのような状況はなかったので、転倒または発熱のメッセージはテストされていませんが、理論的には機能します!

これは素晴らしいプロジェクトであり、かなり簡単に実施できます。このバンドが命を救い、高齢者を安全に保つことができることを願っています!

コード

  • データテストの生成
  • Blynkアプリケーションを使用したHealthBand
データテストの生成 Arduino
さまざまなライブラリがインストールされたら、このプログラムを実行して、すべてが機能するかどうかを確認します。シリアルモニターでデータまたは値のライブストリームを取得する必要があります。
 #include  void setup(){Serial.begin(9600); while(!Serial); //呼び出しはifxDps310の初期化を開始します//パラメータ0x76はバスアドレスです。デフォルトのアドレスは0x77であり、指定する必要はありません。 //ifxDps310.begin(Wire、0x76); //デフォルトのI2Cアドレスを使用するには、代わりに以下のコメント行を使用してください。 ifxDps310.begin(Wire); //重要な注意事項// DPS310が約20°C(室温)であるはずなのに約60°Cの温度を示しているという問題に直面した場合は、ヒューズビットの問題があるICを持っている可能性があります//次の関数を直接呼び出しますbegin()の後、この問題を解決します(起動後に1回だけ呼び出す必要があります)// ifxDps310.correctTemp(); //温度測定率(0から7までの値)// 2 ^ temp_mr1秒あたりの温度測定結果inttemp_mr =2; //温度オーバーサンプリングレート(0から7までの値)// 2 ^ temp_osr結果ごとの内部温度測定値//値を大きくすると精度が向上しますinttemp_osr =2; //圧力測定率(0から7までの値)// 2 ^ prs_mr1秒あたりの圧力測定結果intprs_mr =2; //圧力オーバーサンプリングレート(0から7までの値)// 2 ^ prs_osr結果ごとの内圧測定値//値を大きくすると精度が向上しますintprs_osr =2; // startMeasureBothContは、バックグラウンドモードを有効にします//温度と圧力は自動的に測定されます//高精度とhghの測定レートを同時に使用することはできません。 //詳細については、データセット(または試行錯誤)を参照してくださいint ret =ifxDps310.startMeasureBothCont(temp_mr、temp_osr、prs_mr、prs_osr); //代わりに、以下のコメント行の1つを使用して、温度または圧力のみを測定します// int ret =ifxDps310.startMeasureTempCont(temp_mr、temp_osr); // int ret =ifxDps310.startMeasurePressureCont(prs_mr、prs_osr); if(ret!=0){Serial.print( "Init FAILED!ret ="); Serial.println(ret); } else {Serial.println( "Init complete!"); }} void loop(){unsigned char pressureCount =20; long intpressure [pressureCount]; unsigned chartemperatureCount =20; long inttemperature [temperatureCount]; //この関数は、連続測定の結果をパラメーターとして指定された配列に書き込みます//パラメーターtemperatureCountとpressureCountは、関数が呼び出されたときに配列の温度と圧力のサイズを保持する必要があります//関数の終了後、temperatureCountとpressureCount配列に書き込まれた値の数を保持します//注:Dps310は32を超える結果を保存できません。結果バッファがいっぱいになると、新しい測定結果は保存されません。intret =ifxDps310.getContResults(temperature、temperatureCount、pressure、pressureCount); if(ret!=0){Serial.println(); Serial.println(); Serial.print( "FAIL!ret ="); Serial.println(ret); } else {Serial.println(); Serial.println(); Serial.print(temperatureCount); Serial.println( "温度値が見つかりました:"); for(int i =0; i を補充できるように、しばらく待ちます。 
HealthBandとBlynkアプリケーション Arduino
これは最終的なプログラムです。ヘルスバンドが正常に機能し、コメントに従って調整を行うには、いくつかの変数としきい値を手動で入力する必要があります。必要に応じてBlynkアプリでウィジェットを設定すると、アシスタントが機能するようになります!
 #include  #include  #include  #define BLYNK_PRINT Serialchar auth [ ] ="YourAuthToken"; // WiFi資格情報。//オープンネットワークのパスワードを ""に設定します。charssid[] ="YourNetworkName"; char pass [] ="YourPassword"; const unsigned char pressureLength =50; unsigned char pressureCount =0; long int pressure [pressureLength]; unsigned chartemperatureCount =0; const unsigned chartemperatureLength =50; long inttemperature [temperatureLength]; / *これらのしきい値は、現在の場所に応じて変化します。これらの値は、平均温度が34℃* / intpressureFallingThresh =1; intpressureSleepingThresh =4; int tempFeverThresh =39; intpressureJogThresh =5; void setup(){Serial.begin(9600); Blynk.begin(auth、ssid、pass); while(!Serial); ifxDps310.begin(Wire); int ret =ifxDps310.setInterruptPolarity(1); ret =ifxDps310.setInterruptSources(1、0、0); // ifxDps310.getIntStatusFifoFull();を読み取って割り込みフラグをクリアします。 intinterruptPin =3; pinMode(interruptPin、INPUT); attachInterrupt(digitalPinToInterrupt(interruptPin)、onFifoFull、RISING); //前と同じように連続測定を開始しますinttemp_mr =3; int temp_osr =2; int prs_mr =1; int prs_osr =3; ret =ifxDps310.startMeasureBothCont(temp_mr、temp_osr、prs_mr、prs_osr); if(ret!=0){Serial.print( "Init FAILED!ret ="); Serial.println(ret); } else {Serial.println( "Init complete!"); }} void loop(){Blynk.run(); Serial.println( "ループ実行中"); delay(500); if(pressureCount ==pressureLength &&temperatureCount ==temperatureLength){//結果を出力Serial.println(); Serial.println(); Serial.print(temperatureCount); Serial.println( "温度値が見つかりました:"); for(int i =0; i  tempFeverThresh){feverEmail(); } Serial.println( "摂氏"); } Serial.println(); Serial.print(pressureCount); Serial.println( "圧力値が見つかりました:"); for(int i =0; i  

回路図


製造プロセス

  1. スマートアプライアンスの安全基準を理解する
  2. スマートブラインド
  3. IOT-ESP8266、Arduino、超音波センサーを使用したスマートジャー
  4. 鉄人
  5. Find Me
  6. Arduinoを使用して地球の質量を測定する方法
  7. Arduino加湿器制御
  8. Arduinoジョイスティック
  9. スマートマニュファクチャリングの見返りを見つける
  10. スマートファクトリー用のソフトウェア:ハードウェアに依存しないソフトウェアの利点
  11. あらゆるシーンで活躍する手動バンドソー