歩数計(Arduino 101)
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
このプロジェクトは、昨年私の街で開催された「私の体、私の世界」であった科学博覧会の要件を満たすことを目的としていました。
主なアイデアは、各個人の身体的パフォーマンスを測定するデバイスを作成することでした。各動きの歩数計は、移動距離、実行されたステップ数、失われたカロリー、周囲の温度と湿度の測定値を確認します。
収集されたデータのほとんどは、ステップの収集を含むライブラリがあるため、ボードから適切に取得されます。残りを決定するために、私は数学のみを使用します。
ケースは3Dプリンターで印刷されました。歩数計は9V電池で駆動します。
なぜですか?
人々のかなりの部分は、身体活動の習慣や健康的な生活習慣から離れて、座りがちな方法で生活しています。
身体活動を正常な代謝活動の重要な要素として認識し、将来の病気のリスクを減らす必要があります。
この結論で、私はこの問題に役立つプロトタイプデバイスを作成し、より詳細な方法で使用および分析できるデータを収集しました。
これらのデータを見ると、身体活動の練習に刺激を与え始めます。なぜなら、人は自分の収入を監視し、自分の体を理解し、毎日練習を改善できるからです。
このプロジェクトについて質問がある場合は、お任せください a コメント 以下。
私に電子メールメッセージを送信することもできます。
コード
- コード
コード C / C ++
//生きている死者であるフランクがこのコードを作成しました。 //ブラジル、シャペコ//これは2017年のサイエンスフェアの最初のプロジェクトでした。//2018//ありがとう:// Adafruit // Intel // Filipeflop // Keyes#include#include #include #include "CurieIMU.h" #include #include #define DHTPIN 8#define DHTTYPE DHT11 LiquidCrystal lcd(12,10,5,4 、3,2); int state =LOW; int lastState =LOW; const int ledPin =13; boolean stepEventsEnabeled =true; long lastStepCount =0;ブールblinkState =false; float comprimento_do_passo; float calories =0; float peso =57; float altura =168; float calories_lost_per_km; float calories_burned; float distance; float passos_por_milha; float velocidade; char option; float t; DHT_Unified dht(DHTPIN、DHTTYPE); uint32_t delayMS; void setup(){lcd.begin(16、2); dht.begin(); comprimento_do_passo =0.30 * altura; //高さ(cm)calories_lost_per_km =(0.57 * peso * 1.6)/0.453; //重量(kg)passos_por_milha =16000.0 / comprimento_do_passo; // 16000.0 CM =16 KM lcd.clear(); lcd.setCursor(0、0); lcd.print( "歩数計"); lcd.setCursor(0、1); lcd.print( "Made by Frank:P"); delay(3000); // pinMode(13、OUTPUT); CurieIMU.begin(); CurieIMU.setStepDetectionMode(CURIE_IMU_STEP_MODE_NORMAL); CurieIMU.setStepCountEnabled(true); if(stepEventsEnabeled){// eventCallback関数を//ステップイベントハンドラーとしてアタッチします:CurieIMU.attachInterrupt(eventCallback); CurieIMU.interrupts(CURIE_IMU_STEP); }} static void updateStepCount(){//ステップ数を取得します:int stepCount =CurieIMU.getStepCount(); //ステップ数が変更された場合は、それを出力します:if(stepCount!=lastStepCount){//比較のために現在の数を保存します次のチェック:lastStepCount =stepCount; }} static void eventCallback(void){if(CurieIMU.stepsDetected())updateStepCount();} void loop(){if(!stepEventsEnabeled){updateStepCount(); } // __________________________________ // lcd.clear(); lcd.setCursor(0、0); lcd.print( "ステップ:"); lcd.setCursor(0、1); lcd.print(lastStepCount); delay(4000); // __________________________________ // calories_burned =lastStepCount *(lastStepCount / passos_por_milha); if(option =='c'){} lcd.clear(); lcd.setCursor(0、0); lcd.print( "カロリーB 。:"); lcd.setCursor(0、1); lcd.print(calories_burned); lcd.print( "Kcal"); delay(4000); // __________________________________ // distance =(comprimento_do_passo * lastStepCount)/ 100; //メートル単位の距離if(option =='d'){} lcd.clear(); lcd.setCursor(0、0); lcd.print( "Distance:"); lcd.setCursor(0、1); lcd .print(distance); lcd.print( "Meters"); delay(4000); // __________________________________ ////ピン8の接続delay(delayMS); Sensors_event_tイベント; dht.temperature()。getEvent(&event); if(isnan(event.temperature)){Serial.println( "Error-Temp"); } else {lcd.clear(); lcd.setCursor(0、0); lcd.print( "温度:"); lcd.setCursor(0、1); lcd.print(event.temperature); lcd.print( "C *"); delay(3000); } dht.humidity()。getEvent(&event); if(isnan(event.relative_humidity)){Serial.println( "Error --Humi"); } else {lcd.clear(); lcd.setCursor(0、0); lcd.print( "湿度:"); lcd.setCursor(0、1); lcd.print(event.relative_humidity); lcd.print( "%"); delay(3000); } // __________________________________ // lastState =state; digitalWrite(13、blinkState); flashState =!blinkState; delay(300);
回路図
LCDのセットアップは簡単です。 製造プロセス