ESP8266 및 밝기 센서로 화장실 모니터링

소개



회사의 남자 화장실은 개인실 1개.

작업실을 나와 복도를 건너면 화장실이 거기에 있다.

집중하고 작업을 하고 있는 동안에 화장실에 가고 싶어져 사용중이었을 때의 짜증과 느낌을 없애기 위해 화장실을 감시하는 시스템을 만들었습니다.

했던 일



(개인실이므로) 조도센서로 화장실을 사용중인지를 검지하고 ESP-WROOM-02로 IFTTT 에 메일 통지.

IFTTT에서 Twitter로 화장실 감시 정보를 트윗합니다.

궁극적으로는 화장실의 사용 상황에 변화가 있으면 트윗하도록 합니다.


준비하는 것


  • ESP-WROOM-02 개발 보드( 아키즈키 전자 )
  • 광 센서 모듈 DFR0026( 아키즈키 전자 )
  • microUSB 케이블
  • 브레드 보드 또는 점퍼 라인 또는 납땜 인두 세트

  • 공정



    ○전자공작편



    ESP-WROOM-02 핀아웃DFR0026 설명서 을 주름 잡고 배선합니다.

    Deep-sleep에서 복귀하기 위해 GPIO16 핀과 RST 핀을 연결하는 것을 잊지 마십시오.

    ESP-WROOM-02에서 아날로그 데이터를 얻는 경우 (AnalogRead () 사용) TOUT 핀을 사용합니다. 그러나 TOUT 핀은 전압이 1.0v까지만 다룰 수 있다.

    ESP-WROOM-02의 전원 전압은 3.3v이며, 그대로 TOUT 핀에 연결하면 보드가 파손될 수 있습니다. 그래서 분압을 하여 3.3V에서 1.0V로 전압을 낮춥니다.

    어떻게든 배선한 것이 아래와 같은 상태.


    ○Arduino편



    ESP-WROOM-02에서 Gmail로 보내는 부분은 여기에서 소스를 다운로드.

    소스 일부 발췌

    toilet_monitor.ino
    void loop() {
    
      int illuminance;
    
      illuminance = analogRead(A0);
    
      int diff = abs(rtcData.lastIlluminance -  (int)illuminance);
    
      if(diff > 300) { // 照度300luxより大きな差がある場合を検出
              :
        // send mail
        Gsender *gsender = Gsender::Instance();
        String subject = "";
    
        if((int)illuminance > 300) {
            subject = "男子トイレ使用中";
        }
        else {
            subject = "男子トイレ空いてます!";
        }
    
        if(gsender->Subject(subject)->Send("[email protected]", "時刻:" + String(elem.getString("datetime")) + "<br />照度:" + String(illuminance))) {
          Serial.println("Message send.");
        } else {
          Serial.print("Error sending message: ");
          Serial.println(gsender->getError());
        }
      }
              :
    }
    

    Gsender.h
    class Gsender
    {
        protected:
            Gsender();
        private:
            const int SMTP_PORT = 465;
            const char* SMTP_SERVER = "smtp.gmail.com";
            const char* EMAILBASE64_LOGIN = "<Gメールアカウント base64>";
            const char* EMAILBASE64_PASSWORD = "<Gメールパスワード base64>";
            const char* FROM = "<Gメールアドレス>";
    
    
    };
    

    이번에 만든 소스는 여기

    ○서비스 제휴



    Arduino에서 메일을 보내 메일 수신을 트리거로 트윗합니다.

    ESP-WROOM-02(Arduino) -> Gmail -> IFTTT -> Twitter

    ESP-WROOM-02에서 메일을 보내려면 SMTP 서버에 연결하여 메일을 보내지만 G 메일 계정에서 '안전한 앱이 액세스 할 수 있도록 허용'설정을하지 않으면 인증에 실패합니다. 합니다.

    IFTTT 에서 계정을 만든 후 화면 상단 메뉴 [My Applets] -> [New Applet]을 선택합니다.

    If의 다음 [+]에서 [Email] -> [Send IFTTT any email]을 선택합니다.
    then의 다음 [+]에서 [Twitter] -> [Post a tweet]을 선택합니다.
    트위터 계정과 연계하여 트윗 텍스트를 아래와 같이 하여 [Create action]에서 Applet을 생성합니다.

    {{Subject}}
    {{BodyHTML}}

    ○완성품



    100균으로 구입한 상자에 넣어 막상 화장실에.


    외형은 잡색이지만 밝기에 변화가 있다고 트윗하는 화장실 감시의 완성.

    참고



    ht tp // // r zui-e sp8266. Red d. cs. 이오 / 엔 / 아 st / ぃ b 라리 s. HTML? 히 gh ぃ ght = T
    htps //w w. df 로보 t. 코 m/우우키/그리고 x. php/DF 로보 t_아비비엔 t_ぃght_전선 r_S쿠: DFR0026
    h tp : 소 m/아즈사 9/있어 MS/65 아 5c3772C41631b5일 1
    ぃ tp // 코 m / 료카이 / ms / 9b0c56616b4550 에 b05f1
    h tp // w w. 니 st 루 c타 bぇs. 이 m/i d/에 SP8266-G 마이 l-전으로 r/
    ht tp // ch. 어쩌면 s와 ry. 이 m/2016/10/에 sp8266-g 마이 l-센 d-에마이 l. HTML

    좋은 웹페이지 즐겨찾기