Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@MikH

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

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

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
MikH
まず作って試してみるプロトタイプ派。 ProtoOut Studio 1期生,  Call for Code 2019 Regional Finalist, Call for Code 2020 Regional Finalist, IBM Chamipon 2021 ,  医学博士,   実験室と医療現場をAI・IoT化することミッションに、xMedGear株式会社を設立。
protoout-studio
プロトアウトスタジオは日本初のプロトタイピング専門スクールです。プログラミングだけではなく、企画力と発信力を身に付けて”自分で課題を見つけて実装し、発信し続ける人”を育成しています。 圧倒的なアウトプット力を身に付けましょう。 学生募集中です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?