LoginSignup
3

More than 1 year has passed since last update.

PIR Hat + M5StickC で、人を感知したら、Microsoft Teamsにお知らせする。

Last updated at Posted at 2020-12-22

PIR Hat + M5StickC で、人を感知したら、Microsoft Teamsにお知らせします。

LINEは個人用途、Microsoft Teamsは会社用途って感じで使い分けていると思います。
職場で使うことを想定して、PIRセンサー(人感センサー)がMicrosoft Teamsにお知らせします。
職場で、またはリモートワークで、「この人が机に戻ってきたら知らせてほしいな」とか「この廊下を人が通過したら知らせてほしいな」という場面があったら、これを作ってみましょう。

M5StickC PIR Hatはこちら
https://www.switch-science.com/catalog/5756/
image.png

M5StickC PIR HatとM5StickCを接続します。

Microsoft TeamsのWebhook URLを取得する

このサイトの説明が分かりやすいです。
https://faq.form.run/microsoftteams-webhook
1.Teamsアプリ内で「Incoming Webhook」を追加
2.Incoming Webhookをチームに追加する
3.通知を受け取るチャネルの設定
4.Webhookに任意の名前とアイコンを設定する
5.Webhook URLをコピー
までの手順を行って、Webhook URLを下のコードにペーストします。

M5StickCは以下のコードを

#include <M5StickC.h>
#include <WiFi.h>
#include <ssl_client.h>
#include <HTTPClient.h>

const char* ssid = "XXXXXXXXX";   //INPUT your wifi ssid
const char* passwd = "XXXXXXXXXXXXX";  //INPUT your wifi password

HardwareSerial serial_ext(2);

void setup_wifi() ;
void setup() {
  M5.begin();
  setup_wifi();
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.println("WiFi_Connected, for Teams");
  pinMode(36,INPUT_PULLUP);
}

void loop() {
  M5.update();
  delay(500);
  M5.Lcd.setCursor(60, 30, 4);
    M5.Lcd.println(digitalRead(36));
    int data = digitalRead(36);
    if (data == 0) {
    M5.Lcd.setCursor(60, 30, 4);
    M5.Lcd.println(data);
  } else if (data == 1) {
    send_message();
    M5.Lcd.setCursor(60, 30, 4);
    M5.Lcd.println(data);
  } 
  vTaskDelay(2000 / portTICK_RATE_MS);
}

 /* Wifiに接続する */
void setup_wifi() {
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, passwd);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

// Teamsへの通知
void send_message(){
  HTTPClient http;
  String url = "XXXXXXXXXXXXXXXXXXXX";  //INPUT Teams Webhook URL
  if (http.begin(url))
  {
    String payload = "{'text':'感知した'}"; //INPUT your original message
    int httpCode = http.POST(payload);
  }
}

こんな動きをします

PIRセンサーが感知していない時は0が表示され、感知したときは1が表示されます。

image.png

そして感知したときに、Microsoft Teamsにメッセージが届きます。

image.png

PIRセンサーは、Passive Infra Red(赤外線)センサーで、温度変化が発生すれば、反応します。横切るような動きには敏感に反応しますが、ゆっくりな動きでは反応しないことがあります。また空調による空気の温度変化のユラギにも反応することもあり、思った通りには反応してくれないこともありますが、まず試してみるプロトタイプには最適です。

まず試してみる楽しいプロトタイプ生活を!!

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
3