n_shinichi’s blog

日々の備忘録、 趣味のあれこれなど紹介

MENU

BLE、BlynkでM5の電圧のモニタ つくってみた。

BLE、BlynkでM5の電圧のモニタ つくってみた。

ラジコンやってると電圧、表示はさせてるけど実際見えない。

突然電池切れでこける。

そいえばBlynk、当然受信する方も使えるんだった。。。


www.youtube.com

//Blynk M5Sick_test
#include <BlynkSimpleEsp32_BLE.h>
#include "M5StickCPlus.h"
#define M5_LED    10
char auth[] = "******";
unsigned long ms100;
char   LED_sw,BLE_data,buff[50];
float batt,time_data;

void setup() {
  M5.begin();
  pinMode(M5_LED, OUTPUT);

  M5.Axp.ScreenBreath(8); //0-12 明るさ 6以下は見えない
  M5.Lcd.setTextFont(4);
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextSize(1);
  M5.Lcd.setRotation( 2 );
  M5.Lcd.fillScreen(BLACK);

  Blynk.setDeviceName("Blynk_M5stick");
  Blynk.begin(auth);
  
  digitalWrite(M5_LED, HIGH); // LED OFF
  M5.Lcd.printf("Blynk_test\n");
  ms100 = millis();

}

BLYNK_WRITE(V0) {  int v0 = param.asInt();  LED_sw    = v0;}
BLYNK_WRITE(V1) {  int v1 = param.asInt();  BLE_data  = v1;}
BLYNK_READ(V8)  {  dtostrf(time_data, 7, 0, buff);  Blynk.virtualWrite(V8, buff);}
BLYNK_READ(V9)  {  dtostrf(batt,      4, 2, buff);  Blynk.virtualWrite(V9, buff);}

void loop() {
 Blynk.run();

    if (millis() >  ms100){ // 100ms毎
        M5.Lcd.setCursor(0, 0);
        M5.Lcd.printf("Blynk_test \n\n");
        digitalWrite(M5_LED, LED_sw);
        M5.Lcd.printf("V0:LED\n"); 
        M5.Lcd.printf("%3d     \n\n",LED_sw);  //0:LED ON,  1以上でOFF
        M5.Lcd.printf("V1:data\n"); 
        M5.Lcd.printf("%3d     \n\n",BLE_data);  
        // バッテリー電圧取得
        batt = M5.Axp.GetVbatData() * 1.1 / 1000;   // 3.3-4.1V
        M5.Lcd.printf("Batt: %4.2fv", batt); 
        time_data += 0.1;
    ms100+=100; 
    }
}