IoT Dojo 開催レポート

はじめに

共同編集者: 朱雀匠

みなさんこんにちは!会津大学学部一年のしんぶんぶんです!

今回はAizu Geek Dojoで開催した「IoT Dojo」というイベントについて報告します。

イベント概要

IoT Dojoとは2021/04に開催した「Arduino Dojo」の第二弾で、Arduino Dojoに「Internet」の要素を付加したものになります。

Arduino Dojoではその名の通りArduinoを使用しましたが、IoT DojoではESP32を採用しました。

勉強会2回+2週間のミニハッカソンという構成で実施しました。 1,2年生を中心に22名の参加がありました!

FFcns-VaUAEReW3

使用した主な機材について

ESP32 DevKitC

秋月電子で売っているごくごく一般的なESP32のDevKitCです。

FaBo

初心者対象ということもあり、シールドに刺すだけで簡単にモジュールが使えるFaBoを採用しました。FaBoのモジュールは株式会社FaBo様にお借りしました。

6FB5AAE1-72D6-4E6E-B96E-31A6631D07AA_1_105_c

ESP32 DevKitC用FaBoシールド

Arduino用のシールドは販売されているのですがESP32 DevKitC用のシールドは販売されていないため、奥山先生にご協力いただき自作しました。Eagleで基板設計を行ったのち、深圳の工場に発注して制作しました。

F3D3C04F-DFC6-4979-985D-53CEE02C73F6_1_105_c

9FF63848-D6FE-4AC6-889D-907360344DF3_1_105_c

勉強会前日にGeek SA陣が必死で半田付けや資料準備をしました。
製作中にピンソケットをいくつか破壊してしまい、数が足りなくなるというトラブルがあったり、事前に用意していたプログラムがうまく動作しなかったりしましたが、なんとか参加人数分のシールド完成と資料準備が終わりました。

DSC_0360

勉強会について

勉強会はGeek SAの朱雀先輩に講師をしていただきました。ソースコードのリポジトリはこちらになります。

1日目はESP32でのLチカやHTTP通信(Slack WebhookへのPOST)について学び、2日目はWebとセンサーを組み合わせるところや他のいろいろなモジュールを使ってみるといったことをやりました。

HORIZON_0001_BURST20211205102545206_COVER

ミニハッカソンについて

ハッカソンは6チームに分かれて行い、1チームに1人SAがアシスタントとしてサポートを行いました。

成果物発表会

ここからは、しんぶんぶんくんが成果物発表にこれなかったため、IoT Dojoで講師を務めた朱雀 匠が代わりに書きます。
発表順については会津大学生らしく以下のコマンドを使って決めました。

seq 1 6|sort -R

コマンドの結果、発表順は3,1,2,4,6,5でしたが、Type-CとHDMIの変換が無かったため以下のようになりました。

チーム3の発表

チーム3は「閃光君」という、目覚まし時計の作成をしました。
閃光君の特徴は、

  • 光で起こしてくれる
  • 光を消すには、ブラウザ上で行われるOXゲームに勝たないといけない

node.jsを使用し、サーバを介してスマホとESP32のやり取りをしています。
光に関しては、マトリックスLEDを使用しています。

Team3

感想

このチームは、映像も交えて解説していたためわかりやすい発表でした。
またチーム開発は初めてとのことでしたが、そうとは思えない完成度でした。

チーム2の発表

チーム2が作成したものは、「Too Very Secured Website」です。
この作品は、家の温度と照度の1日のデータをネット上で公開するものです。
自分の生活を公開することで、友達などに生活を監視してもらい、生活習慣を正したい、という思いで開発したとのことです。

技術構成としては

  • フロントエンド: React.ts
  • バックエンド: Common Lisp(clack,ningle)
  • 気温・光度データ収集: ESP32

気温と光度を表示しているサイトの画像 スクリーンショット 2021-12-23 9 33 41

工夫した点としては、以下の点が挙げられます。

  • データの間引きや平滑化などの加工
  • HTTPS通信の使用

感想

このチームは、技術力が高く、正直自分も何をやっているのかわからない部分がありました。
Common Lispでサーバを書くという高度なことをやっていました。しかし、発表では技術についての説明が多く、初学者(多くの受講者)は理解がしにくかったかもしれません。開発しようと思った目的や作ったものについての説明がもっとあるとよかったです。
発表の改善点はいっぱいありましたが、技術的にもモノ的にも面白い作品でした。

チーム4の発表

チーム4が作成したものは、会津大学学祭室の扉の開閉について、自動でお知らせするSlackBotです。

具体的な機能としては以下のものがあります。

  • 扉の開け閉めをしたらSlackに半自動で通知を送る
  • ボタンを押したら定型文を送る
  • その他

扉の開け閉めをしたらSlackに半自動で通知を送る

部屋のブレーカーを挙げた時に、開けた事と年月日・曜日・日時を通知します。
ESP32に繋がれているボタンを押したときに、閉めた事と年月日・曜日・日時・活動時間を通知します。
年月日や曜日はNTPを利用し、取得しているそうです。

Team4

ボタンを押したら定型文を送る

ボタンを長押しすることで、定型文を送っています。
一時的に部屋を出る時に鍵を持ち出した・戻ってきたを知らせるための定型文です。

その他の機能

  • ランダムで言葉を変える 開け閉めの言葉がランダムで変わります。
    1%ぐらいのレアな言葉もあるらしい...
  • 曜日でアイコンが変わる
  • 誕生日やイベントを祝ってくれる

感想

チーム4の作品は、単純ではありますが、便利だったりネタ要素が含まれていたりして面白い作品でした。
また、機能紹介や頑張ったところ・失敗したところなどのスライドの作りが良く、発表としても凄くおもしろかったです。
閉めの判定の全自動化したかったけれど、うまくいかず、半自動に諦めたらしいです。今後もBluetoothやセンサを使用して全自動化を図りたいと意気込みを語ってくれました。

チーム1の発表

チーム1は、EPS32とLINEBotを使って家のエアコンを遠隔操作するものでした。
この作品は、LINEBotを介してスマホとESP32を繋げ、スマホで家の温度情報を見たり、エアコンを起動させたりできます。
目的としては、日常生活で役立つものを作りたいというものがあり、会津の厳しい冬を超えるために作成したそうです。

サーバとLINEBotにはPython(Flask)を使用しています。 エアコンの起動には、スマホからサーバ側にON信号を送り、ESP32が10秒ごとにON信号が来ているか確認しています。

実際に送信した画面 Team1

感想

チーム1は、サーバやLINEBot、赤外線の解析・送信など多くの技術を使用しており、2週間のクオリティではないなと感じました。
ただ、発表ではソースコード全てをベタ張りして説明していたので理解がしにくかったです。(文字が小さすぎて読めなーい)
しかし、ESP32とスマホのやり取りは図があったり、デモは実際にエアコンを操作する映像があったりして、とても分かりやすかったです。

チーム6の発表

チーム6の作品は、「ESP32で操作する走り回るクリスマスツリー」です。
この作品は、クリスマスツリーのような見た目をしており、Bluetooth通信を使用してスマホから操作できます。また、LEDテープを色々な点灯パターンで光らせられます。
作成理由としては、発表日である12/22の2日後にクリスマスがあるからです。

アプリの作成には、MITが公開しているApp Inventorを使用しています。 これを使うことで、ブロックプログラミングで簡単にアプリが作成できます。

Team6

デモでは、実際にスマホからの操作で、LEDを光らせたりツリーを走行させたりしていました。

Team6Demo

今後は、WebSocket通信にも対応させていくとのことです。

感想

チーム6の作品は、FaBoを使わない&レーザーカッターと3Dプリンタで機体を作るという、ハードウェアが強い作品でした。
しかし、ハードウェアだけでなくアプリの製作や勉強会では教えていないBluetooth通信を使用しており、ソフトウェアの面も良かったです。 発表に関しては文句なしで、話す順序やその場でのデモなどいい要素がいっぱいありました。

チーム5の発表

チーム5は、ブラウザから家のエアコンをEPS32で操作させるものでした。
この作品は、サーバを介してスマホとESP32を繋げ、エアコンを起動させます。

サーバにはPython(Flask)を使用しており、スマホからネットを介して家のESP32に繋げています。

しかし、残念ながらこのチームの作品は完成できませんでした。

発表時に出来たものは、webからESP32に起動の情報を送る機能のみで、ESP32からエアコンを起動する機能を完成できなかったようです。

2週間という期間の中であまり時間が取れずに、赤外線の送信が完成していないそうです。

感想

このチームの発表は、図などを多用しており凄くわかりやすかったです。
しかし、作品が完成しなかったことは非常に残念です。
ぜひ、この後も開発を続けてもらいたいです。

順位発表

順位は、参加者全員が良かったと思うチーム2つに投票する形を取りました。(自チームへの投票は不可)

その結果、順位は以下の通りになりました。

1位: チーム1,チーム6
2位: チーム3
3位: チーム2

まさかの1位のチームが2つ出来ました!
今回は順位での差が1票とかがあり、レベルの高い発表だったと思います。

IoT Dojoを主催した感想

しんぶんぶん

ESP32を触ったことがなかった人も多かったと思いますが、みんな最後にはちゃんと形にできるくらいになっていて良かったです! IoTを使えば他にももっと面白いものが色々作れるので、これからも是非開発を続けていってほしいと思いました。

朱雀匠

IoTDojoを通して、多くの人にIoTに触れてもらう事が出来て非常に満足です。
また、改めてESP32の勉強が出来たり、新しい可能性が知れて自分の身にもなりました。

IoT Dojo 開催レポート

はじめに

共同編集者: 朱雀匠

みなさんこんにちは!会津大学学部一年のしんぶんぶんです!

今回はAizu Geek Dojoで開催した「IoT Dojo」というイベントについて報告します。

イベント概要

IoT Dojoとは2021/04に開催した「Arduino Dojo」の第二弾で、Arduino Dojoに「Internet」の要素を付加したものになります。

Arduino Dojoではその名の通りArduinoを使用しましたが、IoT DojoではESP32を採用しました。

勉強会2回+2週間のミニハッカソンという構成で実施しました。 1,2年生を中心に22名の参加がありました!

FFcns-VaUAEReW3

使用した主な機材について

ESP32 DevKitC

秋月電子で売っているごくごく一般的なESP32のDevKitCです。

FaBo

初心者対象ということもあり、シールドに刺すだけで簡単にモジュールが使えるFaBoを採用しました。FaBoのモジュールは株式会社FaBo様にお借りしました。

6FB5AAE1-72D6-4E6E-B96E-31A6631D07AA_1_105_c

ESP32 DevKitC用FaBoシールド

Arduino用のシールドは販売されているのですがESP32 DevKitC用のシールドは販売されていないため、奥山先生にご協力いただき自作しました。Eagleで基板設計を行ったのち、深圳の工場に発注して制作しました。

F3D3C04F-DFC6-4979-985D-53CEE02C73F6_1_105_c

9FF63848-D6FE-4AC6-889D-907360344DF3_1_105_c

勉強会前日にGeek SA陣が必死で半田付けや資料準備をしました。
製作中にピンソケットをいくつか破壊してしまい、数が足りなくなるというトラブルがあったり、事前に用意していたプログラムがうまく動作しなかったりしましたが、なんとか参加人数分のシールド完成と資料準備が終わりました。

DSC_0360

勉強会について

勉強会はGeek SAの朱雀先輩に講師をしていただきました。ソースコードのリポジトリはこちらになります。

1日目はESP32でのLチカやHTTP通信(Slack WebhookへのPOST)について学び、2日目はWebとセンサーを組み合わせるところや他のいろいろなモジュールを使ってみるといったことをやりました。

HORIZON_0001_BURST20211205102545206_COVER

ミニハッカソンについて

ハッカソンは6チームに分かれて行い、1チームに1人SAがアシスタントとしてサポートを行いました。

成果物発表会

ここからは、しんぶんぶんくんが成果物発表にこれなかったため、IoT Dojoで講師を務めた朱雀 匠が代わりに書きます。
発表順については会津大学生らしく以下のコマンドを使って決めました。

seq 1 6|sort -R

コマンドの結果、発表順は3,1,2,4,6,5でしたが、Type-CとHDMIの変換が無かったため以下のようになりました。

チーム3の発表

チーム3は「閃光君」という、目覚まし時計の作成をしました。
閃光君の特徴は、

  • 光で起こしてくれる
  • 光を消すには、ブラウザ上で行われるOXゲームに勝たないといけない

node.jsを使用し、サーバを介してスマホとESP32のやり取りをしています。
光に関しては、マトリックスLEDを使用しています。

Team3

感想

このチームは、映像も交えて解説していたためわかりやすい発表でした。
またチーム開発は初めてとのことでしたが、そうとは思えない完成度でした。

チーム2の発表

チーム2が作成したものは、「Too Very Secured Website」です。
この作品は、家の温度と照度の1日のデータをネット上で公開するものです。
自分の生活を公開することで、友達などに生活を監視してもらい、生活習慣を正したい、という思いで開発したとのことです。

技術構成としては

  • フロントエンド: React.ts
  • バックエンド: Common Lisp(clack,ningle)
  • 気温・光度データ収集: ESP32

気温と光度を表示しているサイトの画像 スクリーンショット 2021-12-23 9 33 41

工夫した点としては、以下の点が挙げられます。

  • データの間引きや平滑化などの加工
  • HTTPS通信の使用

感想

このチームは、技術力が高く、正直自分も何をやっているのかわからない部分がありました。
Common Lispでサーバを書くという高度なことをやっていました。しかし、発表では技術についての説明が多く、初学者(多くの受講者)は理解がしにくかったかもしれません。開発しようと思った目的や作ったものについての説明がもっとあるとよかったです。
発表の改善点はいっぱいありましたが、技術的にもモノ的にも面白い作品でした。

チーム4の発表

チーム4が作成したものは、会津大学学祭室の扉の開閉について、自動でお知らせするSlackBotです。

具体的な機能としては以下のものがあります。

  • 扉の開け閉めをしたらSlackに半自動で通知を送る
  • ボタンを押したら定型文を送る
  • その他

扉の開け閉めをしたらSlackに半自動で通知を送る

部屋のブレーカーを挙げた時に、開けた事と年月日・曜日・日時を通知します。
ESP32に繋がれているボタンを押したときに、閉めた事と年月日・曜日・日時・活動時間を通知します。
年月日や曜日はNTPを利用し、取得しているそうです。

Team4

ボタンを押したら定型文を送る

ボタンを長押しすることで、定型文を送っています。
一時的に部屋を出る時に鍵を持ち出した・戻ってきたを知らせるための定型文です。

その他の機能

  • ランダムで言葉を変える 開け閉めの言葉がランダムで変わります。
    1%ぐらいのレアな言葉もあるらしい...
  • 曜日でアイコンが変わる
  • 誕生日やイベントを祝ってくれる

感想

チーム4の作品は、単純ではありますが、便利だったりネタ要素が含まれていたりして面白い作品でした。
また、機能紹介や頑張ったところ・失敗したところなどのスライドの作りが良く、発表としても凄くおもしろかったです。
閉めの判定の全自動化したかったけれど、うまくいかず、半自動に諦めたらしいです。今後もBluetoothやセンサを使用して全自動化を図りたいと意気込みを語ってくれました。

チーム1の発表

チーム1は、EPS32とLINEBotを使って家のエアコンを遠隔操作するものでした。
この作品は、LINEBotを介してスマホとESP32を繋げ、スマホで家の温度情報を見たり、エアコンを起動させたりできます。
目的としては、日常生活で役立つものを作りたいというものがあり、会津の厳しい冬を超えるために作成したそうです。

サーバとLINEBotにはPython(Flask)を使用しています。 エアコンの起動には、スマホからサーバ側にON信号を送り、ESP32が10秒ごとにON信号が来ているか確認しています。

実際に送信した画面 Team1

感想

チーム1は、サーバやLINEBot、赤外線の解析・送信など多くの技術を使用しており、2週間のクオリティではないなと感じました。
ただ、発表ではソースコード全てをベタ張りして説明していたので理解がしにくかったです。(文字が小さすぎて読めなーい)
しかし、ESP32とスマホのやり取りは図があったり、デモは実際にエアコンを操作する映像があったりして、とても分かりやすかったです。

チーム6の発表

チーム6の作品は、「ESP32で操作する走り回るクリスマスツリー」です。
この作品は、クリスマスツリーのような見た目をしており、Bluetooth通信を使用してスマホから操作できます。また、LEDテープを色々な点灯パターンで光らせられます。
作成理由としては、発表日である12/22の2日後にクリスマスがあるからです。

アプリの作成には、MITが公開しているApp Inventorを使用しています。 これを使うことで、ブロックプログラミングで簡単にアプリが作成できます。

Team6

デモでは、実際にスマホからの操作で、LEDを光らせたりツリーを走行させたりしていました。

Team6Demo

今後は、WebSocket通信にも対応させていくとのことです。

感想

チーム6の作品は、FaBoを使わない&レーザーカッターと3Dプリンタで機体を作るという、ハードウェアが強い作品でした。
しかし、ハードウェアだけでなくアプリの製作や勉強会では教えていないBluetooth通信を使用しており、ソフトウェアの面も良かったです。 発表に関しては文句なしで、話す順序やその場でのデモなどいい要素がいっぱいありました。

チーム5の発表

チーム5は、ブラウザから家のエアコンをEPS32で操作させるものでした。
この作品は、サーバを介してスマホとESP32を繋げ、エアコンを起動させます。

サーバにはPython(Flask)を使用しており、スマホからネットを介して家のESP32に繋げています。

しかし、残念ながらこのチームの作品は完成できませんでした。

発表時に出来たものは、webからESP32に起動の情報を送る機能のみで、ESP32からエアコンを起動する機能を完成できなかったようです。

2週間という期間の中であまり時間が取れずに、赤外線の送信が完成していないそうです。

感想

このチームの発表は、図などを多用しており凄くわかりやすかったです。
しかし、作品が完成しなかったことは非常に残念です。
ぜひ、この後も開発を続けてもらいたいです。

順位発表

順位は、参加者全員が良かったと思うチーム2つに投票する形を取りました。(自チームへの投票は不可)

その結果、順位は以下の通りになりました。

1位: チーム1,チーム6
2位: チーム3
3位: チーム2

まさかの1位のチームが2つ出来ました!
今回は順位での差が1票とかがあり、レベルの高い発表だったと思います。

IoT Dojoを主催した感想

しんぶんぶん

ESP32を触ったことがなかった人も多かったと思いますが、みんな最後にはちゃんと形にできるくらいになっていて良かったです! IoTを使えば他にももっと面白いものが色々作れるので、これからも是非開発を続けていってほしいと思いました。

朱雀匠

IoTDojoを通して、多くの人にIoTに触れてもらう事が出来て非常に満足です。
また、改めてESP32の勉強が出来たり、新しい可能性が知れて自分の身にもなりました。