プロトタイプの開発に必要な手順
必要な技術や環境
Arduino IDE M5StickC Plusのプログラムを作成・アップロードするため。
Web Bluetooth API WebアプリでBLEデバイス(M5StickC Plus)と通信するため。
BLEライブラリ : M5StickC Plus上でBLE通信を行うため。
VScode コードエディタとして使用。
Webサーバー さくらのレンタルサーバーでWebアプリを公開するため。
マイコンの設定とプログラミング
1. マイコンのRSSIとバッテリー残量の取得
M5StickC Plusに対してRSSIとバッテリー残量を取得するコード例です。
(cpp)
#include <M5StickC.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
BLEServer *pServer;
BLECharacteristic *pRSSICharacteristic;
BLECharacteristic *pBatteryCharacteristic;
const char *RSSI_CHARACTERISTIC_UUID = "RSSI_UUID";
const char *BATTERY_CHARACTERISTIC_UUID = "BATTERY_UUID";
void setup() {
M5.begin();
BLEDevice::init("M5StickC");
pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService("SERVICE_UUID");
pRSSICharacteristic = pService->createCharacteristic(
RSSI_CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY
);
pRSSICharacteristic->addDescriptor(new BLE2902());
pBatteryCharacteristic = pService->createCharacteristic(
BATTERY_CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY
);
pBatteryCharacteristic->addDescriptor(new BLE2902());
pService->start();
pServer->getAdvertising()->start();
M5.Lcd.print("Waiting for client...");
}
void loop() {
if (pServer->getConnectedCount() > 0) {
// RSSIの取得
int rssi = pServer->getRSSI();
pRSSICharacteristic->setValue(rssi);
pRSSICharacteristic->notify();
// バッテリー残量の取得
int batteryLevel = M5.Axp.GetBatVoltage(); // 適切なメソッドを使用
pBatteryCharacteristic->setValue(batteryLevel);
pBatteryCharacteristic->notify();
}
delay(5000); // 5秒間隔で取得
}
Webアプリの設定
2. Webアプリの実装
Web Bluetooth APIを使ってRSSIとバッテリー残量を表示するWebアプリのサンプルコードです。
(html)
<!DOCTYPE html>
<html>
<head>
<title>RSSI and Battery Monitor</title>
<style>
#status { font-size: 20px; }
#battery { font-size: 20px; }
#rssi { font-size: 20px; }
#charging { font-size: 20px; color: green; }
ここから先は
¥ 1,500
この記事が気に入ったらサポートをしてみませんか?