写真徒然草...

つれ\〃/なるまゝに、日ぐらしファインダーに向ひて、心に移り行くよしなしごとを、 そこはかとなく撮りつくれば、怪しうこそ物狂ほしけれ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

クリスマスツリーの状態表示をスマホで!

フルカラークリスマスツリーにスマホによる状態表示を追加しました。プログラム等はこちらのGithubにあります。
Screenshot_20171210-220353.png


Androidスマホ上の状態表示イメージです。
接続した状態の表示です。Stage/MaxStageに今どのステージを表示しているか、その下にステージの内容を表示しています。

実は、Banggoodに代品送付依頼していた、ESP32搭載のBanggood製WeMos LILON32 OLEDディスプレイ付きがやっと届いて、交換すれば良いのですが、表示はクリスマスツリーと同じ面で、外向き。自分には見えません。
IMG_20171210_221611.jpg



そこで、BLEとAndroidのプログラミングの練習を兼ねて表示をスマホへ。

クリスマスツリーの回路やプログラムの詳細については、GithubのChristmasTree2017withOTAを参照してください。

また、Arduino上のBluetoothLowEnergyとAndroidスマホアプリについてGithub上のESP32_BLE_DEMOを参照してください。
いずれも本ブログの過去記事にも記載があります。
開発環境やライブラリも上記2つのリポジトリと同じです。但し、MIT App Inventor Extensions BluetoothLEは少し前にアップデートがあった様なので、再度ダウンロード、インストール(正確には.aiのプログラムで改めてダウンロードした、.aixをインポートする)してください。かなり使いやすくなりました。

今回はUUIDで苦しみました。
Android用ESP32のBLEライブラリとして、nkolban/ESP32_BLE_Arduinoを使用していますが、ここに入っているexamplesに記述された、UUIDは16進数の表記が英大文字になっています。しかし世の中は一般的には英小文字を使うらしく、AI2上で比較をする時にリターン値が小文字なのに、あらかじめ書いていたUUIDは大文字で比較が不一致となっている事に気が付かず、2晩悩みました。解ってみれば下らないミスなのですが...。

次は夜になったらクリスマスツリーが動き出すようにRTCでON/OFFするタイマー機能を入れたいと思います。
スポンサーサイト
  1. 2017/12/10(日) 22:32:21|
  2. 電子工作|
  3. トラックバック:0|
  4. コメント:0

ESP32(Arduino)でBLE(BluetoothLowEnergy)して、Androidスマホで見る

いやぁ~、ESP32のBluetooth、なめていました...。

簡単に繋がるだろう、問題はAndroidスマホのプログラミングだ、って思っていたら、ESP32のArduino環境のBluetoothが無い!
ESP-IDFのサンプルはあるけど、Arduinoのライブラリが使えない...やっぱりArduinoだろう、ってところから苦難の道が...

まず、ESP32のArduino環境にSimpleBLEってあるので、どんな関数があるのかな?ってヘッダファイル見たら、beginとendしか関数が無い!

次に検索したら、ESP-IDFのサンプルがゴロゴロ...。やっと見つけたArduino環境のライブラリ。渡りに船!さすがArduino!

って思ったら、なにこれ?シリアル通信無いの?サンプルプログラムが何やっているか判らない!Notifyって何?

BLE(Bluetooth Low Energy)は考え方が違っていて、そこから理解するのに四苦八苦...。そして、サンプルプログラムが無い!

AndroidスマホでESP32が出している信号をモニターしようと各種アプリをGooglePlayストアでダウンロード・インストールするものの、どれも今ひとつ...。
散々悩んで、先のライブラリ作者の英語ビデオ(たぶん英語圏外の人)を見ていて、使っているツール(スマホの画面をPC上から操作していたけど)をNordic Semiconductorって名前から探したら、これを発見

やっとライブラリのサンプルプログラムの、BLEuart.inoの送ってくるデータとスマホからデータを送る事ができて、やれやれ...。

次はAndroidのプログラミング、ネット徘徊中に簡単そうな開発環境を見つけていたので、これを使ってみる。
MIT APP INVENTOR、ってソースコードを書かないクラウド上の開発環境。AI2って略称らしい。
チュートリアルの英語ビデオを4つほど見て、使い方の基礎を勉強。

こんな感じでプログラミング。
blocks.png



ところが、AI2でも、BLEはまだまだ普及していない?Extensionを入れて、サンプルを探して、さぁ、動け!通信できない...

最後にはまったのが、UUIDとかCHARACTERISTICってヤツ。こんな感じの6E400001-B5A3-F393-E0A9-E50E24DCCA9E長い数字の連続で同じに見えて同じ物をサービスのUUIDと送受信のCHARACTERISTICに使ったら、サービス、送信、受信で違ってしばらくハマって進まず...

でも、やっと動きました!ほとんど丸々3日掛かった!
こちらに公開します。
でも、ヨチヨチ歩き状態...。クリスマスツリーの設定変更ができるのは来年かな?

ちゃんとBLEとAI2を勉強して作れば、そんなに大変ではないのでしょうが、Arduino使い始めてから、サンプルをチョコチョコ直して即自分のやりたい事ができてしまうのに、慣れてしまって、ゼロから勉強する根気がなくなった...年なのもあるかも?

(Low Energyを期待した方、ごめんなさい。BLEの記事でも、Low Energyについては何もありません...)
  1. 2017/12/04(月) 00:41:16|
  2. 電子工作|
  3. トラックバック:0|
  4. コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。