enebular chain으로 사○타를 포획하는 작전

이 문서는 enebular Advent Calendar 2019의 첫 날입니다.

멋진 크리스마스가 되도록 노력해 씁니다.

enebular x 크리스마스



처음에 enebular 때 떠오르는 것은 성운쇄군요.
성운 체인으로 작성 네뷸라 체인.
안드로메다 순간의 필살기군요.

이번에는 산타 클로스 포획 장치로 enebular chain을 만들어 보았습니다.

메커니즘



침입자에 대해서는 역시 창가 대책이 유효하다고 생각됩니다.

창문이 열리는 → 경보

이제 가자.


시스템 개요



enebular는 Firebase와 Twitter 연계가 간단하다는 소문이므로 그 근처를 사용해 보겠습니다.
  • enebular chain에 M5StickC를 설치하여 가속도를 얻습니다.
  • 가속도에서 얻은 창 열기/닫기 정보를 코드(0,1)로 Firebase로 보냅니다.
  • Firebase 정보를 정기적으로 enebular로 검색합니다.
  • 창이 열려있는 정보를 얻으면 Twitter에 알립니다.


  • Firebase 설정



    이쪽의 기사를 참고로 했습니다!
    htps : // bg. 에네부 r. 코 m / 푹신한 / m5s ck 푹신하다면 네 - 네 루 - 코보라 치온 /

    M5SticC



    위 기사의 Firebase와 M5Stack의 상호 작용 부분 외에도 M5StickC에 장착 된 가속도 센서 MPU6886에 대해 설명합니다.

    창문이 열리면 accY가 커지도록 했습니다.
    accY가 임계값을 초과했을 때 Firebase 데이터를 다시 쓰기로 결정했습니다.
    *귀찮기 때문에 시간에 마음대로 돌아가도록 했습니다.
    #include <M5StickC.h>
    #include <IOXhop_FirebaseESP32.h>
    #include <WiFi.h>
    
    #define WIFI_SSID "XXXXXXXX"
    #define WIFI_PASSWORD "XXXXXXXX"
    
    #define FIREBASE_DATABASE_URL "XXXXXXX"
    
    float accX = 0;
    float accY = 0;
    float accZ = 0;
    float gyroX = 0;
    float gyroY = 0;
    float gyroZ = 0;
    float temp = 0;
    
    void setup() {
      // put your setup code here, to run once:
      M5.begin();
      M5.Lcd.setRotation(3);
      M5.Lcd.fillScreen(BLACK);
      M5.Lcd.setTextSize(1);
      M5.Lcd.setCursor(40, 0);
      M5.Lcd.println("<<GUARD>>");
      M5.Lcd.setCursor(0, 15);
      M5.Lcd.println("  X       Y       Z");
      M5.MPU6886.Init();
    
        // connect to wifi.
      WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
      Serial.print("connecting");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
      }
      Serial.println();
    
      // WiFi Connected
      Serial.println("\nWiFi Connected.");
      Serial.println(WiFi.localIP());
      M5.Lcd.println("WiFi Connected.");
      M5.Lcd.println("");
    
      Firebase.begin(FIREBASE_DATABASE_URL);
      Firebase.stream("/M5Stack/message", [](FirebaseStream stream) {
        String eventType = stream.getEvent();
        eventType.toLowerCase();
    
        Serial.print("event: ");
        Serial.println(eventType);
        if (eventType == "put") {
          String path = stream.getPath();
          String data = stream.getDataString();
          Serial.print("data: ");
          Serial.println(stream.getDataString());
        }
      });
    
      Firebase.setString("/M5Stack/message", "start");
    
    }
    
    int i = 0;
    
    void loop() {
      M5.MPU6886.getAccelData(&accX,&accY,&accZ);
      M5.Lcd.setCursor(0, 30);
      M5.Lcd.printf("%.2f   %.2f   %.2f",accX * 1000,accY * 1000,accZ * 1000);
      M5.Lcd.setCursor(140, 45);
    
      delay(100);
    
        if(accY*1000 > 400) {
    
        // Firebaseへ送信
        Firebase.setInt("/M5Stack/status", 0);
    
        delay(5000);
    
        // Firebaseへ送信
        Firebase.setInt("/M5Stack/status", 1);
    
        delay(1000);
      }
    
      }
    

    enebular



    Firebase에서 온 코드에 Switch를 필터 대신하여 Twitter에 연결했습니다.

    Firebase도 Twitter도 제휴가 매우 간단했습니다!
    어쩐지 계정 넣고 로그인하는 것만 큼 간단합니다.
    * 불행히도 Twitter는 Confirmation 메일이 오지 않아 시간이 끊겼습니다. .



    enebular chain 테스트



    문이 닫히면


    accY가 245정도


    문이 열리면


    accY가 440정도


    창문을 열고 닫을 때 디버깅 화면이 코드를 잡는다.
    * Twitter 할 수 없었기 때문에 디버그 만입니다.


    enebular chain 할 수 있었습니다!



    enebular x Firebase x M5StickC에서 산타 클로스 침입 감지 장치 enebular chain이 완성되었습니다.

    enebular chain으로 산타클로스의 침입을 곧 알아차리세요!
    침입자라고는 해도 산타클로스, 평소의 감사를 전하게 되고, 차를 넣어 지고 평화적인 커뮤니케이션을 바란다.

    요약과 되돌아


  • enebular 로 쉽게 침입자 검출 장치를 할 수 있다!
  • enebular의 제휴는 로그인 레벨로 매우 간단! Firebase 사용할 수 있습니다!
  • M5StickC는 작지만 훌륭합니다!
  • ArduinoJson 버전 참고
  • Twitter 연계는 enebular 측은 간단하지만, Twitter 측의 응답이 무엇인가, , ,
  • Noodl 사용 잊었다!

  • Advent Calendar 첫 참전이었지만 재미 있습니다!
    하지만 이걸로 용서해 주세요.

    올해 6월에 IoT를 괴롭히기 시작해 반년이 지났지만, 그것이 성운과 같이 많은 만남에 축복받아 매우 충실한 2019년이었습니다.
    여러분 감사합니다.

    코타츠 귤보다 고맙습니다.
    모리켄

    좋은 웹페이지 즐겨찾기