社内のゴミ捨て当番を決めるスイッチをTypetalkとESP8266で作る

Pocket
LINEで送る

プロダクトマネージャーをしている長尾です。今回もTypetalkねたですが、お金を積まれているとかそういうことはありません。

先日の投稿にもありましたが、弊社にはゴミ捨て当番を決めるチャットBotがあります。ゴミが溜まっているのに気づいた人は、チャットbotにメッセージを送信。すると、社内にいる人の中からランダムでゴミ捨て当番が決まります。

非開発職でも簡単に作れる!Google Apps ScriptとTypetalkを使ったチャットBot作成に挑戦
https://blog.shiftall.net/ja/archives/96/

とても便利なbotなのですが、ゴミが溜まってるのを発見→PCスマホでチャットbotにメッセージを送る、というのは少し手間がかかる気がしたので、チャットbotにメッセージを送るスイッチを作ってみました。動作デモの動画を作ってみたのでまずはこちらをご覧下さい。

スイッチの仕様

  • スイッチONにしたら、Wi-Fi経由でゴミ捨て当番を決めるチャットbotにメッセージを送る
  • スイッチOFFにしたら、チャットに完了通知を投稿する
  • スイッチは5個(燃える、燃えない、缶、ペットボトル、段ボール)

 

買ってきたもの

Wi-FiモジュールにはESP8266を使いました。スイッチは、ゴミ捨てへのモチベーションをあげるべくミサイルスイッチにしました。

赤以外にも白、緑、青、オレンジがある。12V用でLEDの電流制限抵抗が内蔵されている

 

ESP8266からTypetalkにメッセージを投稿する

TypetalkのAPIを使ってメッセージを投稿します。ESP8266がbotになってゴミ捨て当番を決めるbot(@shiftallcat+)へメッセージを送ります。こちらのページを参考にさせて頂きました。

メッセージの投稿
https://developer.nulab-inc.com/ja/docs/typetalk/api/1/post-message/

Arduino core for ESP8266でHTTPSが叩けるようになっていた件
http://eleclog.quitsq.com/2015/11/esp8266-https.html


#include <ESP8266WiFi.h> 
#include <WiFiClientSecure.h> 

WiFiClientSecure client; 

const char* host = "typetalk.com"; 
String url = "/api/v1/topics/xxxxx?typetalkToken=xxxxxxxxxxxx"; 
data = "message=@shiftallcat%2B " + "燃えるゴミ捨ててください";

・・・
void postMessage(){
  if (client.connect(host, 443)) {   
  client.println("POST " + url + " HTTP/1.1");   
  client.println("Host: " + (String)host);   
  client.println("User-Agent: ESP8266/1.0");   
  client.println("Connection: close");   
  client.println("Content-Type: application/x-www-form-urlencoded;");   
  client.print("Content-Length: ");   
  client.println(data.length());   
  client.println();   
  client.println(data);   
  delay(10);   
  String response = client.readString();   
  int bodypos = response.indexOf("\r\n\r\n") + 4;   
  return response.substring(bodypos); 
   }
} 

完成

基板はブレッドボードで組んで、筐体は3Dプリンタで作りました。社内のエンジニアに色々教わりながら作れたのもあり、だいたい1週間で完成しました。

スイッチをONにするとLEDが点灯する

改善

当番に指名されたのを忘れてしまう人がいたので、1時間ごとにリマインドを送る機能も追加しました。リマインダーもESP8266から送っています。

せっかくなので、gomi-botに名前をつけようということで「五味捨代」と命名しました。社内の絵のうまい人にお願いしてアイコンも作ってもらいました。きれい好きでおせっかいな50代のおばちゃん、独身という設定です。

社内の少し面倒くさい雑務も、Botとスイッチを組み合わせるとちょっと楽しくなるかも、という話でした。ぜひ御社でも導入をご検討ください。