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


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

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

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

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が表示されます。

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

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

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