適当な備忘録

生活習慣改善デバイス

序文

コロナウイルス対策で大学に行けなくなった結果、生活習慣が非常に乱れている。 このままでは社会に適合できない。 夜更かしやスマホにうつつを抜かしていたら起こってくれる人がほしい。 そういう面倒なことは機械に任せよう。 名前はクラウドママとかでどうだろう?

構成

esp32-camはwifiとカメラが付いた小さく安価なモジュールでarduinoと同様の環境で開発できる。

このモジュールで部屋でのスケジュール管理を行うデバイスを開発したい。 5分ごとに部屋の写真を撮影しGCPにアップロード。 機械学習により不適切な時間に寝ているか判定。 必要ならば音声ファイルのURLをモジュールに送信。 モジュールはmDNSでGoogle Home か Alexaを検索し音声ファイルのURLを送り付ける。 そしてスマートスピーカーが叱ってくれる。

段取り

esp32-camを購入し適当に開発。 最低限の機能が完成したらクラウドファンディングを募る。

プラスチックの外装は深圳のメーカーにオーダーメイドする。 あるいはm5stack cameraの公模が使えるならばそれでいく。

alibabaでesp32と外装をまとめて発注し自分で組み立てて一個三千円程度で販売する。 電波法と技適に注意すること。

1. esp32のサンプルを動かす

付属するCameraWebServerのサンプルを動かそうとしている https://qiita.com/Nabeshin/items/b195cad1afe99ce29f1e

正常に書き込みは完了したがシリアルモニタが文字化けする。 Serial.begin()の引数と、シリアルモニタの右下のbpsの値が揃っていなかった。 ちゃんと表示された。

ssidとパスワードを設定してないので当然接続できない。

できた。完了。

2. サンプルを見ながら学習

2.1. ディープスリープ

10秒寝てシリアルモニタに出力

バッテリー駆動ではないので寝る利益は薄くwifi設定ができない不利益が上回る

不要

2.2. HTTPServer

CameraWebServerが接続できない>esp32は5Ghzに対応してない2.4GHzで成功

.localは使ってもいいらしい。放置

完了

2.3. フラッシュメモリ読み書き

完了

2.4. WifiServer

https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiAccessPoint/WiFiAccessPoint.ino 途中。

クライアントは正常に動作している。

サーバーはHTTPリクエストを受け取れない

// IPアドレスおよびSSIDにバグあり // バグってもホットスポットを再起動すると接続する // // ポートを分けると両方動作した // http://192.168.4.1:81/ でPC->ESP32->アクセスポイント // http://192.168.4.1:80/ でサーバーに接続 // ひょっとすると両者は同じものかも知れない // 即ちWebServer.hでもClientに対して送信している

同じ、WIFI_AP_STAなどのモードと通信処理はレイヤーが分離しているため 親機でも子機でもmDNSとwebserverを提供できる

完了

2.5. HTTPClient

指定IPにget/postする

完了

3 とりあえず写真判定無しで作ってみる。

https://github.com/lzpel/cloudmama/commit/4002403f63509592e6813b89606ee86b026329de

完成

4 写真判定と設定変更に必要な機能を学習

4.1. 撮影

今ここ

撮影しバイト列をモニタに出力

4.2 内蔵EEPROM

ssid, pass, cameraconfig程度しか保存しないのでeepromに直接書き込むように変更

ファイルシステムは不要

4.3 Google Cloud Vision API で判定

5. ファームウェアを完成させる

6. クラウドファンディングページの作成。

ふんだんに写真を盛り込む。 ニコ動やYoutubeにも公開

7. 射出成型の外装と紙箱と説明書をとりあえず100個作る。

薄く作って封筒で送付出来たらコスパ良さそう。

profile

大学3回生。専門は土木、趣味はプログラミング。
Twitter Github Qiita

© 2020 lzpel