LoginSignup
0
0

More than 1 year has passed since last update.

Ionic6でBLE機器と通信するメモ(今回はM5Stack)

Last updated at Posted at 2022-05-11

BLE機器とスマホアプリでBLE通信するメモ
chromeでウェブBLEで動作は確認してきたですが、起動時に自動接続などブラウザベースではできなさそう?と思いアプリを試してみる次第
ウェブBLEでできちゃうなら、意味は薄くなるが。。
詳しく理解していないが、動くものをやってみる系なので、よくないことしてる可能性もあります。。

概要

下記流れでM5のデータをAPPまで伝える予定

blockly(UART BLE) < - > M5STACK(CORE2) < - > BLE通信 < - > スマホ(SamsungA20) < - > APP(Ionic)

アプリ構築

Ionicについて

Ionic FrameworkはオープンソースのUIツールキット
HTML,CSS,JavaScriptなどのウェブ技術を利用してAngular,React,Vueなどのフレームワークを使ってモバイルアプリやデスクトップアプリを構築可能。

スクリーンショット 2022-04-12 155152.png

開発環境の構築

インストール:VisualStudioCode

インストール:AndoroidStudio

https://developer.android.com/studio?utm_source=android-studio
20220510_135732.png

インストール:Nodeとnpm

Ionicの環境設定を参考

インストール:Ionic Cli

npm install -g @ionic/cli

インストール:IonicのCordova系API

BluetoothLE

npm install cordova-plugin-bluetoothle 
npm install @awesome-cordova-plugins/bluetooth-le 
ionic cap sync

スマホで動作確認

開発者モードへ

設定>デバイス情報>ビルド番号を7回くらい連打

機種によっては、名称がことなるので、ビルド番号までたどり着く必要があります

IonicでBuildとAndroidStudio起動
ionic build #IonicBuild
ionic cap add android #Android用データ生成?
ionic cap open android #Android Studio起動

2回目以降は更新反映で下記を実行

ionic capacitor copy android
PCとUSBで接続しAndroidStudioデバックビルド

AndroidStudioでUSB接続の機器を選択しデバッグビルドを実行

Ionicサイト参考
https://ionicframework.com/docs/ja/angular/your-first-app/deploying-mobile

Bluetooth LEでの通信方法に関して

BLEでデータ取得処理のサイクルお作法

  1. initialize
  2. scan (if device address is unknown)
  3. connect
  4. discover OR services/characteristics/descriptors (iOS)
  5. read/subscribe/write characteristics AND read/write descriptors
  6. disconnect
  7. close

BLE scanできない場合はパーミッション追加

スクリーンショット 2022-07-26 141113.png

app\android\app\src\main\AndroidManifest.xml
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />

M5StackCore2のブロックリー

準備中

Ionicで構築するBLEアプリ

準備中

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0