M5Stackで家族に会議中を知らせるディスプレイを制作してみた

テレワーク中に家族が部屋に入ってきて、Webカメラに映りこんでしまった、音声が入りこんでしまったトラブルってありませんか?私はしょっちゅうの出来事です……。

そんな悩みを解決するため、M5Stackを使って今会議中だよ~って知らせるシステムを作ったので、作り方を紹介します。

この記事はこんな人におすすめ!

  • テレワーク中、家族に会議中を知らせたい人
  • M5Stackを使って何か作ってみたい人

それでは始めましょう!

目次

会議中モニタの紹介

今回作ったものはこれ!会議中お知らせディスプレイ。

M5Stackは会議中の部屋の前もしくはリビングに置いておきます。

スマホから会議中ボタンを押すとM5Stackのディスプレイが赤くなるとともに”Meeting in Progress“と表示され、家族に会議中であることを知らせます。

スマホ画面の一部切り抜き

これで家族が不用意に部屋に入ってくることはありません。会議が終わったらFreeボタンを押すとM5Stackのディスプレイが緑色に変わりますので、部屋に入ってもOKと家族に知らせることが出来ます。

システム構成

スマホからM5Stackの操作は、WiFiルータを経由したUDP通信を使用しました。

必要なもの

システムを作るために必要なものは次のとおりです。

  • M5Stack
  • WiFiルータ
  • Androidスマホ
  • Androidアプリ WiFi TCP/UDP Controller
今回の対象はAndroidユーザーのみとなります。

制作方法

M5Stack側プログラミング

プログラムの流れは、M5Stack初期化→WiFi接続→UDP受信待ちとなります。M5Stackの表示モードは2つあり、スマホからの会議中またはFree信号によって切り替わるようにしました。

#include <M5Stack.h>
#include <WiFi.h>
#include <WiFiUdp.h>

#define MEETING 1
#define FREE 0

void WiFiConnect();

const char* ssid = "*************";
const char* password = "*************";

WiFiUDP wifiUdp;
const char* smpIP = "***.***.***.***";
const int myPort = *****;

int displayMode; // 0: Free, 1: 会議中

void setup() {
  displayMode = FREE; 
  M5.begin();
  M5.Lcd.setTextColor(WHITE);
  M5.Lcd.setTextSize(2);
  WiFiConnect();
  wifiUdp.begin(myPort);

}

void loop() {
  switch (displayMode)
  {
  case FREE:
    if(wifiUdp.parsePacket())
    {
      if((char)wifiUdp.read() == 'm'){
        displayMode = MEETING;
        M5.Lcd.setTextSize(5);
        M5.Lcd.setCursor(0,20);
        M5.Lcd.fillScreen(RED);
        M5.Lcd.printf(" Meeting\n\n   in\n\n Progress\n");
      }
    }
    break;
  
  case MEETING:
    if(wifiUdp.parsePacket())
    {
      if((char)wifiUdp.read() == 'f'){
        displayMode = FREE;
        M5.Lcd.fillScreen(GREEN);
      }
    }
    break;

  default:
    break;
  }  
}

void WiFiConnect(){
  WiFi.begin(ssid,password);
  while(WiFi.status() != WL_CONNECTED){
    delay(500);
    M5.Lcd.print('.');
  }

  M5.Lcd.print("\r\nWiFi connected\r\nIP address: ");
  M5.Lcd.println(WiFi.localIP());
  delay(2000);
  M5.Lcd.fillScreen(GREEN);
}

WiFi接続方法、UDP通信方法の解説は、本記事で避けさせて頂きます。

詳細は▼の記事を参照下さい。

あわせて読みたい
M5Stackの計測データをWiFiを使ってPCやスマホで確認 以前の記事でM5Stackと温度センサを使った気温計の作り方を紹介しました。 この気温計はM5Stackのディスプレイに表示するシンプルなものでした。M5StackにはWiFiが備わ...
あわせて読みたい
UDP通信のメッセージをM5Stackで受信する実験をしてみた 今回は、スマホからUDPでメッセージを送信して、M5Stackがこのメッセージを受信する実験をしたので記事にしてみました。 この記事はこんな人におすすめ! M5Stackを使い...

スマホ側からUDP送信

スマホからM5StackへUDP通信をするためにWiFi TCP/UDP Controllerというアプリを使います。

▼のリンクからアプリをダウンロードしましょう。

Google Play で手に入れよう

ダウンロードしてWiFi TCP/UDP Controllerを起動したら、設定を変更していきます。

まずはNameから。

Nameは、ボタンの表示名です。

分かりやすい表示名にしましょう。今回はbutton1を’会議中‘、button2を’Free‘としました。

次にCommandです。ボタンを押したときに、どんな値を送信するか決めます。button1に’m‘、button2に’f‘を設定し、M5Stack側のプログラムに合わせます。

更にVisilibityの設定です。関係ないボタンは消してしまい、button1とbutton2だけ残しました。

これまでの設定が終わるとコントロール画面は▼になります。

各ボタンをクリックし、M5Stackのディスプレイが切り替われば完成です!

まとめ

以上、M5Stackを使って今会議中だよ~って知らせるシステムの作り方紹介でした。

これでテレワーク中に家族が部屋に入ってきて、Webカメラに映りこんでしまった、音声が入りこんでしまったトラブルも解消出来ます。

M5StackとAndroidスマホがあれば直ぐに作れちゃいますので、興味のある方は是非挑戦してみて下さい。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

大学で機械工学を学んだ後、製造業で働く40代の会社員です。
IT系、電気系を学んでこなかった機械系人間が、ゲーム制作、電子工作に奮闘してます。
極力低コストでものづくりを楽しむのがモットー。

目次