푸딩을 지키는 기술 ~그 1:LINE에의 통지~

개요:



모처럼 취해 둔 푸딩을 가족에게 먹을 수 있었다. 그런 경험이 없습니까?
내가 소속하는 aNo연은, 냉장고의 푸딩 지켜 장치 「푸딩 아라트 2」를 발표했습니다.
 이 기사는, 「푸딩 아라트 2」에 사용되고 있는 기술을 소개합니다.

소개:



냉장고의 푸딩을 지켜보는 가족간의 딱 좋은 보안 푸딩 아라트 2 할 수 있었습니다 #M5Stack 피 c. 라고 r. 이 m/WRlG도 x7l


시스템 구성



2018년 4월 14일

푸딩 아라트 2는 푸딩의 무게를 감지하는 센서와 소형 마이크로 컴퓨터 M5Stack으로 구성되어 있습니다.

푸딩의 감지는 작은 접시 아래의 무게 센서로 수행됩니다. 푸딩이 잡히면 작은 접시가 가벼워지고, 이것을 계기로 Line에 경고를 발합니다.



푸딩 아 라트에서는 Line에 통지하기 위해 "Line Notify"를 사용합니다. 「Line」이 제공하는 서비스로, 사용하면 LINE에 메세지를 보내, 통지를 LINE로 받거나 할 수 있습니다.



Line Notify 서비스 등록



Line Notify를 M5stack에서 사용하려면 Line Nofity 홈페이지에서 Line과의 액세스 토큰을 발급합니다.



Line Nofity:



htps : // 후 fy- 보 t. 네. 메/

Line Nofity 홈페이지에서 '액세스 토큰 발급(개발자용)'을 누릅니다.





그런 다음 필요한 사항을 작성한 후 발급된 액세스 토큰을 복사합니다.

이것으로 M5stack에서 Line Notify를 사용할 준비가 되었습니다.



구현 예



다음은 M5Stack에서 Line Notify를 발행하기 위한 소스 코드입니다.

your_token에는 Line Notify 페이지에서 얻은 액세스 토큰을 기재하십시오.

이번 사례라면 센서와 접속되어 있는 포트(No36)에서 센서에서 High→Low와 반응이 있던 타이밍에 Line에 통지를 합니다.




#include <ssl_client.h>
#include <WiFiClientSecure.h>
#include <M5Stack.h>
const char* ssid = "wifi_ssid";
const char* password = "pass";
int switch_port=36;
void wifi_connect() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)  delay(500);
}
void setup() {
  M5.begin();
  wifi_connect();
}
void loop() {
  M5.update();
  int buttonState = digitalRead(switch_port);
  static int buttonState_old=buttonState;
  if ( (buttonState == 1) && ( (buttonState_old == 0)))  send_line_alert();
  buttonState_old=buttonState;
}
void send_line_alert() {
  const char* host = "notify-api.line.me";
  const char* token = "your_token";
  const char* message1 = "%0D%0A %0D%0Aプリンが取られました!!!%0D%0A";
  WiFiClientSecure client;
  if (!client.connect(host, 443)) {
    return;
  }
  String query = "message=" + String(message1);
  String request = "POST /api/notify HTTP/1.1\r\nHost: " + host + "\r\nAuthorization: Bearer" + token + "\r\nContent-Length: " + String(query.length()) +  "\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n" +query + "\r\n";
  client.print(request);
  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r")   break;
  }
}



참고문헌



·



「푸딩 어 라트」기사



· Nyanteku ☆ 불가능한 아이츠와 ESP8266 - 뚱뚱한 아이츠 다이어트의 시작

· aNo연 공식 홈페이지

· 푸딩을 마음대로 잡으면 "돌려줘"라고 경고 냉장고를 지켜보는 경보기 "푸딩 어 라트"


좋은 웹페이지 즐겨찾기