M5stickCで始める細マッチョ計画💪

はじめまして！　記事をご覧くださりありがとうございます。
半分NEETのようなフリーランスエンジニアのたつのぶと申します。
今回は、**M5stickCで始める細マッチョ計画💪**と題してM5StickCを用いて
**レッグマシンとエアロバイク**の回数を可視化する記事です。ぜひ最後まで読んでくださると幸いです！！



#はじめに
前回の記事([M5stickCで始める筋肉ムキムキ計画💪](https://qiita.com/nobutan_tinou/items/5707793c06fd9c94f448))では、腹筋ワンダーコアという腹筋マシンのトレーニング回数を可視化させました。
今回はついでに、家にある**レッグマシン**と**エアロバイク**も回数を可視化させたいと思い記事を書くに至りました。

#準備するもの
- レンタルサーバー
- PC： WindowsPC
- M5StickC本体/付属USBType-Cケーブル/付属リストバンド×2
- 100均(セリア)で購入したLED自動点灯ライト×2⇒これに入っているマグネットスイッチを利用
<img width="400" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/df96d4c9-f9cb-8a74-5e96-2ba718c359be.jpeg">
- 抵抗10kΩ
- レッグマシン
<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/20444ec8-94e9-822f-1112-ccf337d7fdba.jpeg">

- エアロバイク
<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/2397197e-c546-b507-a8ba-9d2a5f4d0dea.jpeg">

#システム構成図/M5stickCに書き込む準備
前回の記事([M5stickCで始める筋肉ムキムキ計画💪](https://qiita.com/nobutan_tinou/items/5707793c06fd9c94f448))を参照ください！
#回路接続
マグネットスイッチの一方を**GND**へ
マグネットスイッチのもう一方を**3.3Vプルアップ抵抗させて36ピン**へ
#脚トレ＆エアロバイク回数サーバーにPOSTするファームウェア
⇒URLはレッグマシン用とエアロバイク用で分けてください。
⇒実際の可視化画面とサーバ側の基本ロジックは[前回の記事](https://qiita.com/nobutan_tinou/items/5707793c06fd9c94f448)同様なので省略します。

```C++:post.ino
#include <WiFi.h>
#include <HTTPClient.h>
#include <M5StickC.h>
const char* ssid = "yourssid";
const char* password =  "yourpass";
const char* url = "https://hogehoge.jp/legtrain.php";
const int swpin=36;
int swdata;
int swold;
bool sensorflgresult = false;
void setup() {
  M5.begin();
  M5.Lcd.setCursor(0, 0, 1);
  M5.Lcd.print("legtrain");
  // put your setup code here, to run once:
  Serial.begin(115200);
  pinMode(swpin,INPUT);
  //gpio_set_pull_mode( GPIO_NUM_36, GPIO_PULLDOWN_ONLY);
  delay(4000);   //Delay needed before calling the WiFi.begin

  WiFi.begin(ssid, password); 
  
  while (WiFi.status() != WL_CONNECTED) { //Check for the connection
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }

  Serial.println("Connected to the WiFi network");
}
void svrPost(){
  if(WiFi.status()== WL_CONNECTED){   //Check WiFi connection status     
           HTTPClient http;   
           http.begin(URL);  //Specify destination for HTTP request
           http.addHeader("Content-Type", "text/plain");             //Specify content-type header
           int httpResponseCode = http.POST("{ \"data\": \"" + String("leg_earo") + "\"}");   //Send the actual POST request
           if(httpResponseCode>0){
              String response = http.getString();                       //Get the response to the request
              Serial.println(httpResponseCode);   //Print return code
              Serial.println(response);           //Print request answer
           }else{
              Serial.print("Error on sending POST: ");
              Serial.println(httpResponseCode);
           }
           http.end();  //Free resources
       }else{
           Serial.println("Error in WiFi connection");   
       }
}
void loop() {
  // put your main code here, to run repeatedly:
  swdata= !analogRead(swpin);
  if(swdata==0){
      if(swold==1){
       Serial.println(1);
       svrPost();
      }else{
        //Serial.println(0);
      }
  }else{
    //Serial.println(0);
  }
  swold = swdata;
  M5.update();
  delay(500);
}
```

#マグネットスイッチをレッグマシンに取り付けた様子
<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/7e33cefd-1481-7373-f057-910543b9e678.jpeg">
<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/a935dad3-3451-d3ae-bcdd-5d730c9fb4a3.jpeg">
#マグネットスイッチをエアロバイクに取り付けた様子
<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/55ecce7e-4901-bac9-73e6-b7bdce25a58f.jpeg">

#可視化画面
⇒こんな感じで腹筋＋脚トレ＋エアロバイクの回数を可視化できました！！
<img width="300" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/471448ab-d2eb-64bd-96a0-d35163ee58a5.png">

#最後に
腹筋回数を可視化させるのも面白いですが、せっかくなので筋トレを維持させるためにも
定期時間になると一日のトレーニング回数を集計ツイートしてくれるようにしました！！
毎日夕方6時になると自動ツイートされます（）
![te.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580405/1b3e1998-5f2d-77b6-7f01-d6668f5c3ab6.png)

これにより、自分のトレーニングの状況を毎日チェックしやすくなりました。
あとツイートされるのでさぼりにくくなっています🤔

みなさんも、家にトレーニングマシンなどお持ちでしたらぜひIoT化させてみてください。
とれも面白い＋自分のトレーニング管理にもなりますよ👍
それでは✋