# 備忘録

生活習慣改善デバイス

序文

コロナ対策で大学に行けなくなった結果、生活習慣が非常に乱れている。 このままでは社会に適合できない。 夜更かしや長時間のスマホ使用を注意してくれる機械が欲しい。 作ってみる。

現状

10分ごとにGoogle Home に接続し生活習慣に関するアドバイスを音声で伝えてくれる. カバーは未完成で基盤は剥き出し,画像認識も未完成で画像中央の付属カメラは活用されてない. img

構成

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

  • Arduino IDE
    • 「環境設定」 -> 「追加のボードマネージャのURL」
    • 「ツール」 -> 「ボード」 -> 「ボードマネージャ」
      • ESP32を追加しておく。
    • 「ツール」
      • Board ESP32 Wrover Module
      • Partition Scheme Huge App(3MB No OTA)
      • Flash Mode QIO
      • Flash Frequency 80MHz
      • Upload Speed 921600
  • 接続
    • 通信ピン TXD=UOR RXD=UOT
    • 書き込みモードピン GND=IO0
    • 電源 5V=5V GND=GND
      • 実行時はこれだけでよい。
      • GND=GNDはIO0のお陰か無くても動いた

正常に書き込みは完了したがシリアルモニタが文字化けする。 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
Twitter Github Qiita 大学3回生。専門は土木、趣味はプログラミング。 © 2020 lzpel