【SALZ製作日誌】2020.08.02 SALZ3まもなく完成
サーボ、リレー、水分計の難所を越え、まもなく完成、実地テストまでこぎつけそうです。
電源投入時の初期テストを作りました。
void
InitialTest(void) {
WsTest();
WdTest();
WlTest();
}
電源投入時に一通りの機能を試すセルフテスト機能を実装しました。これにより、最初に不具合がわかるようになりました。
閾値の設定を実装しました。
閾値の設定機能を実装するにあたり、イベントループへの混ぜ込みが大変だなぁと感じておりましたが、マルチタスク機能が使えるんじゃないかと、うっすら期待しておりました。
ESP32すごい!
マルチタスクができる!
マルチタスクについては、昔からのトラウマで尻込みしがちなのですが、バッティングして困る処理は何もないため、どんどんチャレンジできます。
調べてみると、ESP32の機能として、すでに良い感じで使えるようになっていました。
setup関数内で、新しいタスクを発生させれば、別ループを回すことができます。
メインループ、Ambientへの情報発信ループ、閾値設定ループの3つをくるくる回すことにしました。
void
setup(void) {
:
xTaskCreatePinnedToCore(Task0, "Task0", 4096, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(Task1, "Task1", 4096, NULL, 1, NULL, 1);
}
void
Task0(void* arg) {
while (1) {
SettingLoop();
}
}
void
Task1(void* arg) {
while (1) {
SendData();
delay(SECONDS(10));
}
}
このように書くと難しそうなのですが、非常に簡単に目的の動作をさせることができました。
Ambientサービスをつかってみました。
へアクセスし、「ユーザー登録(無料)」から、「メールアドレス」を入力し、「パスワード」を決めてやると、認証メールが送られてきます。
あとはサンプルコードを見ながら、コードを数行追加するだけで、あっという間にできてしまいました。しかも、自動でいい具合のグラフを作成してもらえます。これは素晴らしい。
SALZ3に組み込む上で課題となりそうなのが、Ambientサービスの組み込みです。
ソースにキーをハードコーディングしています。Wifiの設定がソースから切り離せると思っていたので、何か良い方法はないものでしょうか。
配線を改良しました。
note.comでいつも刺激を頂いている神楽坂らせんさんの記事
で勉強し、ブレッドボードでできるだけ、ハードワイヤを使うよう配線を組み替えました。
これにはしびれました。自分の電子工作スキルが上がった瞬間です。グチャグチャだった配線がずいぶんスッキリしました。
実際に水を使って、テストしてみました。
水中ポンプは正常に作動し、吐出し水も良い具合です。排水弁については、水漏れするものの、開閉機能は正しく動作しています。
あともう少し。残りの課題を整理します。
・実時間での動作テスト
最終的には、テストモードではなく、実時間での稼働テストをしたいです。
・Wifiの分離
SmartConfigのテストをしたいと思っているのですが、少しやる気が減っています。Ambientの設定をする際に、やはりハード・コーディングが必要になります。回避方法がないとすると、無理にSmartConfigを使わず、ソースに書いて、コンパイルしてもらった方が、よいのではないか。とも思うようになってきています。ArduinoIDEもダウンロードしてもらい、コンパイルもしてもらう。これでよいような気がしています。
・ユニバーサル基板にする?
あと少しの所で、横着をして、装置が台無しになってしまうのは悲しいことです。せっかくここまでできたのだから、最後はかっこよく仕上げたいと思います。
ここは、ユニバーサル基板を用いて丈夫な装置を作り上げたいと思います。
ネットで、M5Atomicプロトキット なるものを見つけました。
これで、作ればよいのかな。試してみたいと思います。
・耐候性処理
屋外での使用に耐えうる防水性、耐蝕性が求められます。
ケースに収めるのか、袋に入れるのか、どれがいいかあともう少し悩むことにいたします。
・排水弁の水漏れ
まずは、フタとビー玉を密着させた状態で、バスコークを塗り、密閉性を上げました。テストはこれからです。
今年の夏には間に合いませんでした。
ただ今年の夏は、水やりには困らないので、じっくり作りこみたいと思います。
#盆栽 #Bonsai #自動潅水装置 #電子工作 #SALZ #M5ATOM #M5Stack #Arduino #水分計 #analogRead