1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5Stackでセンサーライト作ってみた

Last updated at Posted at 2020-04-01

今までデスクトップアプリやWeb開発に主に携わってきたので、組み込みとかハード系、特に電気系統が少しでも絡むと拒絶反応を起こしていた。
そんな自分を鍛えるべく、組み込みの初心者向けということでM5Stackなるものを触ってみた。

どうせ作るなら実用性があるものがいいので、PIRセンサーを使ってセンサーライトを作ってみることにした。

完成図がこちら!!
DSC_0225.JPG

とってもシンプル。
M5Stack BasicとPIRセンサー、あと電源としてモバイルバッテリーを接続。

仕組みは簡単。PIRセンサー(平たく言うと人感センサー)から来るON/OFFの信号に合わせて画面を光らせたり暗くしたりするだけ。

試しにPIRセンサーを何かしらで覆ってみると画面が暗くなった。
DSC_0226.JPG

PINアサインはこんな感じ。
DSC_0227.JPG

そんでプログラムは以下。環境はArduino IDE。バージョンは1.8.10

.cpp
#include <M5Stack.h>

#define PIR_PIN 2

bool isPirOn = false;

void setup() {
  M5.begin();
  // スリープ状態にしておく
  M5.Lcd.sleep();
  M5.Lcd.setBrightness(0);
  // 画面を白くすることにより照明の代わりにする
  M5.Lcd.fillScreen(WHITE);
  pinMode(PIR_PIN, INPUT);// set pir sensor pin as input
}

void loop() {

  int value = digitalRead(2);// read the pin(0: not detectd 1: detected)
  
  if (value == 0)
  {
    if (isPirOn == true)
    {
      isPirOn = false;
      // スリープ状態にしておく
      M5.Lcd.sleep();
      M5.Lcd.setBrightness(0);
      M5.update();        
    }
  }
  else
  {
    if (isPirOn == false)
    {
      isPirOn = true;
      // スリープ状態を解除して点灯状態にする
      M5.Lcd.wakeup();
      M5.Lcd.setBrightness(255);
      M5.update();
    }
  }

  delay(500);
}

もう少し実用性を考えるなら、PIRセンサーがOFFになっても点灯を10秒くらい保持するとか入れた方が良いかも。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?