Skip to content

Latest commit

 

History

History
158 lines (101 loc) · 6.53 KB

iot_cloud_music_player.rst

File metadata and controls

158 lines (101 loc) · 6.53 KB

4. クラウド音楽プレイヤー

このプロジェクトの目標はBlynkを使った音楽プレイヤーを作ることです。 音楽の再生は ar_passive_buzzer と同じように、プログラムに曲を書いてパッシブ・ブザーで再生する。 しかし、この例では、スイッチをクリックすると再生/一時停止ができ、スライダーをスライドさせると再生の進行状況を変えることができます。

必要な部品

このプロジェクトでは、以下の部品が必要です。

一式をまとめて購入するのは便利です。リンクは以下の通りです:

名前 このキットのアイテム リンク
3 in 1 Starter Kit 380+

以下のリンクから、部品を個別に購入することもできます。

コンポーネントの紹介 購入リンク
cpn_uno
cpn_breadboard
cpn_esp8266
cpn_wires
cpn_buzzer

1. 回路を組む

Note

ESP8266モジュールは、安定した動作環境を確保するために高電流が必要です。9Vのバッテリーが接続されていることを確認してください。

image

2. ダッシュボードを編集

  1. Datastream ページで、後で追加されるスライダーウィジェットまたはコードで変更する値として Virtual Pin タイプの Datastream を作成します。データタイプは Integer にし、MINとMAXを 030 に設定します。

    image

  2. 音楽の名前を表示するための Virtual Pin タイプの Datastream も作成します。データタイプは String に設定してください。

    image

  3. Wed Dashboard ページに移動して、 Switch ウィジェットをドラッグし、 Datastream をV0に設定します( iot_blink で既に設定済み); Label ウィジェットをドラッグしてV3に設定; Slider ウィジェットをドラッグしてV2に設定します。

    image

Note

あなたの仮想ピンの番号は私のものと異なるかもしれません。あなたの設定が優先されますので、コード内の対応するピン番号を修正してください。

3. コードの実行

  1. パス 3in1-kit\iot_project\4.cloud_music_player の下にある 4.cloud_music_player.ino ファイルを開きます。

  2. Template IDDevice Name 、および Auth Token を自分のものに置き換えます。使用しているWiFiの ssidpassword も入力する必要があります。詳しいチュートリアルについては、 connect_blynk を参照してください。
  3. 正しいボードとポートを選択した後、 Upoad ボタンをクリックします。
  4. シリアルモニタを開き(ボーレートを115200に設定)、成功した接続のようなプロンプトが表示されるのを待ちます。

    image

    Note

    接続時に ESP is not responding メッセージが表示される場合は、以下の手順に従ってください。

    • 9Vのバッテリーが接続されていることを確認してください。
    • RSTピンを1秒間GNDに接続してESP8266モジュールをリセットし、その後プラグを抜きます。
    • R3ボードのリセットボタンを押します。

    ときどき、上記の操作を3〜5回繰り返す必要がある場合があります。お待ちください。

  5. これで、Blynkのボタンコントロールウィジェットを使用して音楽の再生/一時停止を切り替えたり、スライダーで再生の進行状況を調整したりできます。また、音楽の名前も表示されます。

    image

  6. Blynkをモバイルデバイスで使用したい場合は、 blynk_mobile を参照してください。

どのように動作するのか?

データストリーム V0 は、Switchウィジェットのステータスを取得し、変数 musicPlayFlag に割り当てるために使用されます。これは音楽の再生と一時停止を制御します。

int musicPlayFlag=0;

BLYNK_WRITE(V0)
{
    musicPlayFlag = param.asInt(); // 音楽の開始/一時停止
}

データストリーム V2 は、スライダーウィジェットの値を取得し、スライダーが移動したときに変数 scrubBar に割り当てるために使用されます。

int scrubBar=0;

BLYNK_WRITE(V2)
{
    scrubBar=param.asInt();
}

デバイスが Blynk Cloud に接続されているとき、 V3 データストリームの音楽の名前を書き込み、それを Label ウィジェットで表示します。

BLYNK_CONNECTED() {
    String songName = "Ode to Joy";
    Blynk.virtualWrite(V3, songName);
}

Blynk Timer は毎秒実行されます。 musicPlayFlag が0でない場合、つまり Switch ウィジェットがONの場合、音楽が再生されます。 2つのノートが再生されると、進行バー変数 scrubBar が2増加し、その値は次に Blynk Cloud に書き込まれ、 Slider ウィジェットの値が同期されます。

void myTimerEvent()
{
    if(musicPlayFlag!=0)
    {
        tone(buzzerPin,melody[scrubBar],250);
        scrubBar=(scrubBar+1)%(sizeof(melody)/sizeof(int));
        delay(500);
        tone(buzzerPin,melody[scrubBar],250);
        scrubBar=(scrubBar+1)%(sizeof(melody)/sizeof(int));
        Serial.println(scrubBar);    
        Blynk.virtualWrite(V2, scrubBar);
    }
}