テレワーク中に家族が部屋に入ってきて、Webカメラに映りこんでしまった、音声が入りこんでしまったトラブルってありませんか?私はしょっちゅうの出来事です……。
そんな悩みを解決するため、M5Stackを使って今会議中だよ~って知らせるシステムを作ったので、作り方を紹介します。
この記事はこんな人におすすめ!
- テレワーク中、家族に会議中を知らせたい人
- M5Stackを使って何か作ってみたい人
それでは始めましょう!
会議中モニタの紹介
今回作ったものはこれ!会議中お知らせディスプレイ。
M5Stackは会議中の部屋の前もしくはリビングに置いておきます。
スマホから会議中ボタンを押すとM5Stackのディスプレイが赤くなるとともに”Meeting in Progress“と表示され、家族に会議中であることを知らせます。
これで家族が不用意に部屋に入ってくることはありません。会議が終わったらFreeボタンを押すとM5Stackのディスプレイが緑色に変わりますので、部屋に入ってもOKと家族に知らせることが出来ます。
システム構成
スマホからM5Stackの操作は、WiFiルータを経由したUDP通信を使用しました。
必要なもの
システムを作るために必要なものは次のとおりです。
- M5Stack
- WiFiルータ
- Androidスマホ
- Androidアプリ WiFi TCP/UDP Controller
制作方法
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通信方法の解説は、本記事で避けさせて頂きます。
詳細は▼の記事を参照下さい。
スマホ側からUDP送信
スマホからM5StackへUDP通信をするためにWiFi TCP/UDP Controllerというアプリを使います。
▼のリンクからアプリをダウンロードしましょう。
ダウンロードしてWiFi TCP/UDP Controllerを起動したら、設定を変更していきます。
まずはNameから。
Nameは、ボタンの表示名です。
分かりやすい表示名にしましょう。今回はbutton1を’会議中‘、button2を’Free‘としました。
次にCommandです。ボタンを押したときに、どんな値を送信するか決めます。button1に’m‘、button2に’f‘を設定し、M5Stack側のプログラムに合わせます。
更にVisilibityの設定です。関係ないボタンは消してしまい、button1とbutton2だけ残しました。
これまでの設定が終わるとコントロール画面は▼になります。
各ボタンをクリックし、M5Stackのディスプレイが切り替われば完成です!
まとめ
以上、M5Stackを使って今会議中だよ~って知らせるシステムの作り方紹介でした。
これでテレワーク中に家族が部屋に入ってきて、Webカメラに映りこんでしまった、音声が入りこんでしまったトラブルも解消出来ます。
M5StackとAndroidスマホがあれば直ぐに作れちゃいますので、興味のある方は是非挑戦してみて下さい。