ESP32にBlynkを入れてフルカラーLEDを動かしてみる
おはようございますこんにちはこんばんは
わんわんです!
今日はスタートアップカフェKOZAで開催された、FAB勉強会に参加して面白いことをして来たので。
その復習を兼ねてブログを書きました。
このブログを読むと、最後にこんなのが出来ます
使うもの
Blynkについて
Blynk アプリを使うと「Raspberry Pi」や「ESP32」などが簡単、スマートフォンからコントロールできます。今までコントローラのようなものをスマートフォンで使えるようにするには、自分たちでアプリ作ったりHTMLを書いていましたが、それを気軽に置き換えれるというような感じです。
ただ、ビルドしたりして自分のサービスみたいにして配布する事はできないようです。
ESP32の設定
秋月とかで買って下さい
LEDを接続して下さい、今回は楽なLEDなので電源とGNDとPIN4だけを使います、以下の画像のような感じです。
ArduinoIDE
ESP32はArduino互換なので、ArduinoIDEで開発ができます、入れていない方は入れて下さい。
ESP32が動くように
ESP32が動くようにボード情報を入れます。
開発元espressifがArduinoボード設定をgithubに置いているので設定。
https://github.com/espressif/arduino-esp32
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools/ && \
python get.py
Blynk用のライブラリをインストール
メニューの 「スケッチ」>「ライブラリのインクルード」>「ライブラリマネージャ」で「Blynk」と検索でインストール。
そのあと一応ソフトを再起動させて下さい。
その他必要なライブラリ
- Windowsだと「Documento」の下Adruinoというフォルダーがあるのでその中の「libraries」にDLしたファイルを入れて下さい
- Macだと「書類」下Adruinoというフォルダーがあるのでその中の「libraries」にDLしたファイルを入れて下さい
(GithubからダウンロードしたZIPは、解凍して、ファイル名-masterのmasterを取り除いて下さい)
以下のを入れて下さい
これは、「hardware」内の「/espressif/esp32/libraries/BLE/」にそのままコピペします。
ソースコード
以下のコードをArduinoのスケッチに書き込み、マイコンに書き込みます、一旦エラーが出ると思います、がとりあえずOK
#define BLYNK_PRINT Serial
#define BLYNK_USE_DIRECT_CONNECT
#include <BlynkSimpleEsp32_BLE.h>
#include <BLEDevice.h>
#include <BLEServer.h>
char auth = "";
//NeoPixelColorのライブラリの読み込み
#include <Adafruit_NeoPixel.h>
#define MAX_VAL 64 // 0 to 255 for brightness
#define DELAY_TIME 50
#define LED_NUM 6
#define PIN_NUM 4
int ledR = 0;
int ledG = 0;
int ledB = 0;
//NeoPixel strip の初期化
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_NUM, PIN_NUM, NEO_GRB + NEO_KHZ800);
//--------------------------------------------
void setup()
{
// Debug console
Serial.begin(9600);
Serial.println("Waiting for connections...");
Blynk.begin(auth);
//Strip initialise
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
//ヴァーチャルピンV0
BLYNK_WRITE(V0)
{
ledR = param[0].asInt();
ledG = param[1].asInt();
ledB = param[2].asInt();
Serial.print( "ledR: ");
Serial.print(ledR);
Serial.print( " ledG: ");
Serial.print(ledG);
Serial.print( " ledB: ");
Serial.println(ledB);
//LED点灯
for(int i=0;i<LED_NUM;i++){
//strip.Color(ledR, ledG, ledB), DELAY_TIME;
strip.setPixelColor(i,ledR, ledG, ledB);
}
strip.show();
delay(DELAY_TIME);
}
void loop()
{
Blynk.run();
}
Blynkアプリの設定
登録はここを見て下さい。
この内容でNewProjectを作ります。
画面で右スライドさせると部品が出てくると思います
その中から、「BLE」ボタンと「zeRGBa」ボタンを選択します。
こんな感じで置けるのおけたらOK
zeRGBaの設定
・MERGEに指定
・V0に指定
仕上げ作業
先ほど、スマホに Blynk アプリをインストールしてプロジェクトを作成した時に送られてきたメールを見てみて下さい。
「Auth Token」が入っているはずなので、それをコピーして、ソースコードの「char auth = "";」に記入して下さい。
以上で設定は完了です
- ArduinoIDEで「マイコンボード」書き込みを行い
-
BLEボタンをクリックして、「Blynk」という項目があるので選択します。
- クリックして起動させる