Podomètre (Arduino 101)
Composants et fournitures
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Outils et machines nécessaires
|
Applications et services en ligne
|
À propos de ce projet
Ce projet visait à répondre aux exigences de l'expo-sciences qui s'est déroulée dans ma ville l'année dernière, dans laquelle c'était "Mon corps, mon monde".
L'idée principale était de faire un appareil qui mesure les performances physiques de chaque individu, où le podomètre à chaque mouvement, vérifie la distance parcourue, le nombre de pas effectués, les calories perdues, la température ambiante et la mesure de l'humidité.
La plupart des données collectées proviennent correctement du tableau, car il dispose d'une bibliothèque impliquant la collection d'étapes, et pour déterminer le reste, je n'utilise que les mathématiques.
Le boîtier a été imprimé sur une imprimante 3D. Le podomètre est alimenté par une pile 9v.
Pourquoi ?
Une part importante de la population vit de façon sédentaire, loin des pratiques d'activité physique et des saines habitudes de vie.
Il est nécessaire de reconnaître l'activité physique comme un élément important pour les activités métaboliques normales ainsi que pour réduire les risques de maladies futures.
Avec cette conclusion, j'ai créé un prototype d'appareil qui aide dans ce domaine, en collectant des données qui peuvent être utilisées et analysées de manière plus détaillée.
Ces données, lorsqu'elles sont visualisées, commencent à s'ajouter à un stimulus à la pratique d'activités physiques, puisque, la personne peut surveiller ses revenus, comprendre son corps et améliorer sa pratique jour après jour.
Si vous avez des questions concernant ce projet, veuillez laisser un commenter ci-dessous.
Vous pouvez également m'envoyer un message électronique.
Code
- Code
CodeC/C++
// Frank, le mort-vivant, a fait ce code. // Chapecó, Brésil// C'était mon premier projet en 2017, pour une expo-sciences.// 2018// Merci à:// 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; booléen blinkState =faux ; float comprimento_do_passo;float calories =0;float peso =57;float altura =168;float calories_lost_per_km;float calories_brûlées; float distance;float passos_por_milha;float velocidade;option char;float t;DHT_Unified dht(DHTPIN, DHTTYPE);uint32_t delayMS;void setup() { lcd.begin(16, 2); dht.begin(); comprimento_do_passo=0.30*altura; // Taille en cm calories_lost_per_km=(0,57*peso*1,6)/0,453; // Poids en kg passos_por_milha =160000.0/comprimento_do_passo; // 16000.0 CM =16 KM lcd.clear(); lcd.setCursor(0, 0); lcd.print("Podomètre"); lcd.setCursor(0, 1); lcd.print("Fabriqué par Frank :P"); retard (3000); // pinMode(13, SORTIE); CurieIMU.begin(); CurieIMU.setStepDetectionMode(CURIE_IMU_STEP_MODE_NORMAL); CurieIMU.setStepCountEnabled(true); if (stepEventsEnabeled) { // attachez la fonction eventCallback en tant que // gestionnaire d'événements d'étape :CurieIMU.attachInterrupt(eventCallback); CurieIMU.interrupts(CURIE_IMU_STEP); } }static void updateStepCount() { // Obtenir le nombre de pas :int stepCount =CurieIMU.getStepCount(); // Si le nombre de pas a changé, imprimez-le :if (stepCount !=lastStepCount) { // Enregistrez le nombre actuel pour comparaison vérification suivante :lastStepCount =stepCount; }}static void eventCallback(void) { if (CurieIMU.stepsDetected()) updateStepCount();}void loop() { if (!stepEventsEnabeled) { updateStepCount(); } //__________________________________// lcd.clear(); lcd.setCursor(0, 0); lcd.print("Étapes :"); 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("Calories B.:"); lcd.setCursor(0, 1); lcd.print(calories_brûlées); lcd.print("Kcal"); delay(4000);//__________________________________//distance =(comprimento_do_passo*lastStepCount)/100; // Distance en mètresif (option=='d') { }lcd.clear();lcd.setCursor(0, 0);lcd.print("Distance:");lcd.setCursor(0, 1);lcd .print(distance);lcd.print("Mètres");delay(40000);//_________________________________//// CONECTION EN PIN 8 delay(delayMS); sensor_event_t événement ; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Error - Temp"); } else { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Température :"); lcd.setCursor(0, 1); lcd.print(événement.température); lcd.print("C*"); retard (3000); } dht.humidité().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println("Error - Humi"); } else { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Humidité :"); lcd.setCursor(0, 1); lcd.print(event.relative_humidity); lcd.print("%"); retard (3000); } //__________________________________// lastState=state; digitalWrite(13, blinkState); FlashState =!blinkState; retard (300);
Schémas
L'écran LCD est facile à configurer.Processus de fabrication