Edited at

[Arduino]部屋の灯りが消えたら自動でGet Wildを再生してGet Wild退勤する

More than 3 years have passed since last update.

https://twitter.com/kozeni_shkt/status/709743397196541953

http://www.b-ch.com/ttl/index.php?ttl_c=467

[iOS]部屋の灯りが消えたら自動でGet Wildを再生してGet Wild退勤する

一般のご家庭やオフィスにあったArduinoを使ってやってみました。

full.jpg


やりたいこと


  • ある程度暗くなったらGet Wildを再生する

  • 再生が始まったら、明るさの変化は無視する

  • しばらくしたら、また明るさの変化に反応するようにする(翌日再セットアップしなくてもよくする)

  • LEDを取り付け、だんだん暗くすることでエンディング感を出す


用意した物


作り方



  1. MP3プレイヤーシールドArduinoシールド用ピンソケットのセット(R3対応)をはんだ付けします。

  2. LEDに330Ωの抵抗(オレンジオレンジ茶金)をはんだ付けします。LEDには向きがありますが、抵抗はどちらに付けてもいいです。

  3. CdSに10kΩの抵抗(茶黒赤金)をはんだ付けします。CdSには向きがないので安心してください。

はんだ付けはこれだけです。


接続


  • Arduino UnoにMP3プレイヤーシールドを差し込みます。

  • LEDのカソード側(参考)をGNDに、アノード側を5番ピンに差し込みます。led.jpg

  • CdSをGNDとA0に、抵抗をA4に差し込みます。cds.jpg


  • GetWild.mp3が入ったmicroSDをMP3プレイヤーシールドに差し込みます。



スケッチ

Sparkfun-MP3-Player-Shield-Arduino-Libraryを使っているので、ダウンロードしてインストールしてください。


getwild.ino


#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <SFEMP3Shield.h>

SdFat sd;
SFEMP3Shield MP3player;

int lightValue = 0;
int mode = 0;
int ledValue = 0;
int intervalTime = 0;

int ledPin = 5;
int lightPin = A0;
int lightGND = 18;

void getWildandtough() {
MP3player.playTrack(1);
}

// the setup function runs once when you press reset or power the board
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(lightGND, OUTPUT);

digitalWrite(lightGND, HIGH);
Serial.begin(9600);

sd.begin(SD_SEL, SPI_HALF_SPEED);
MP3player.begin();
}

// the loop function runs over and over again forever
void loop() {
lightValue = analogRead(lightPin);

Serial.println(lightValue);
Serial.println(ledValue);
// 暗さが950を超えたら再生モードに移る
if (lightValue > 950 && mode == 0) {
mode = 1;
ledValue = 255;
getWildandtough();
}
// 再生モード時、だんだんLEDを暗くする
if (mode == 1) {
analogWrite(ledPin, ledValue);
if (ledValue > 0) {
ledValue -= 10;
} else {
ledValue = 0;
}
intervalTime += 1;
}
delay(1000);
// 再生開始から300秒経ったら通常モードに戻る
if (intervalTime > 300) {
intervalTime = 0;
mode = 0;
}
}



最後に


  • getWildandtough()を読むとわかるように、microSDに入っている1曲目を再生しますので、GetWild以外を入れないことを強くお勧めします。

  • LEDを印象深く光らせられたかなと思ったら、MP3プレイヤーシールドに電源LEDが載っていて結構明るく光るので、あまり意味なかったです。

  • LEDが無理に曲がっていて5番ピンにつながっているのは、MP3プレイヤーシールドが使わなくてPWMが使えるのが5番ピンくらいしかなかったからです。


  • MP3プレイヤーシールドの回路図をざっと見た感じ、ESP-WROOM-02 Arduino互換ボードなどの3.3V系Arduino互換ボードでも動作するんじゃないかと思います。ただ5V端子から5V(せめて3.3V)が出ないボードはだめそう。