見出し画像

【SALZ製作】次の一手 obnizによらない装置作り


ちょっと振り返りを。

【SALZ製作日誌】2020.03.18 初期ロードテスト結果
https://note.com/bbd/n/n6812070b1df0

Obnizに水分計、サーボ、水中ポンプを接続し、自動潅水装置を作成することができました。そして、次への課題も色々見えてきました。

今後の課題:
・obnizによらない装置作り
 ・現在、コントロールするスマホ、PCが常時必要。
 ・装置単体で動作し、必要な時に通信できるようにしたい。
・ハードウェアまわりの改善
 ・下部タンクの水抜き栓を付けたい。
・モーターを強力にしたい。
 ・USB接続のモーターを使ってみたい。
・持ち出し可能な物も作りたい。
 ・筐体、配線をきちんとし、見栄え良くする。
・黒松の植え替え
 ・本格的なザルつくりを目指して、排水性を優先させた用土作り。

この中で、次の一歩として考えたいのは、、、

obnizによらない装置作り

です。
obnizをマイコンに選んだおかげで、開発がとても速く進みました。JavaScriptも勉強できました。電子工作の奥深さを垣間見ることもできました。これはこれでよかったのですが、そろそろ次のステップへ進もうと思います。

そんな矢先、Amazonから、素敵な商品紹介メールが届きました。

WayinTop 自動水やり装置 DIYキット 静電容量式土壌水分センサー + 小型ポンプ DC3V 5V + 1M ホース + リレーモジュール 1チャンネル ガーデニング 家庭園芸 盆栽 庭園 花植 木鉢 植木鉢

水分センサーとリレーと小型ポンプのキットです。えっ!これって、そのまま使える!Arduinoは持ってるぞ。
ちょっと押し付けがましいいつものDMではなく、まさに探していたものを紹介してもらえるとは。素晴らしい。あと、排水弁だけ付ければ、なんとかなる。。。しかも、安い!!これは買いだ!

今読んでる「電子工作以前」にも、「電子工作初心者はキットから始めるべし。」と書いています。

確かに、私のような初心者にはキットで、モノが揃っているという安心感はとても大きいです。ただその反面、

キットなんかに頼っていいのか?自力でやってこその電子工作なのではないのか?

という気持ちもあります。

ArduinoやESP32も試したいと思っていたところ。でも、モータードライバの使い方が分からないので、書籍を読みながら、悶々としておりました。このキットでは、リレーを使ってモーターを動かすそうで、これは本当にありがたい。初期テストで上手くいかなかったところも、これで解消できるかもしれない。やっぱり、キットから始めてみよう。
などと葛藤しながらも、結局、ポチって、購入することにしました。

ところが、これがなかなか前へ進まないのです。

第一の壁は、取扱説明書でした。

このようなキットは、電子工作に手慣れた人向けと思っているのですが、やはり、届けられたものの中には取扱説明書の類は見当たりませんでした。電子パーツがパッキングされただけの状態で届けられました。

Amazon経由で販売店に問い合わせると、すぐにメールで、取扱説明書とサンプルコードを送ってもらえました。ほっとひと安心。これをもとに制作に取り掛かることにしました。

サンプルには、ArduinoとESP8266の接続例がありました。

まずは、Arduinoでのテストを試みました。
Arduinoは少し触ったことがあるので、Arduino IDEを起動し、 サンプルコードをコピペしてコンパイルし、プログラムを転送、取扱説明書のとおりパーツを配線し、シリアルモニタを用いて、動作チェックを行いました。リレースイッチを初めて使用したのですが、「ペチッ、 ペチッ」という音とLEDで通電状態がチェックできます。

画像1

水分計に濡れたティッシュを乗せて湿らせている。

int IN1 = 2;
int sense_Pin = 0; // Analog pin A0 is connected to sensor input.
float value = 0;
void setup() {
 Serial.begin(9600);
 pinMode(IN1, OUTPUT);
 pinMode(sense_Pin, INPUT);
 digitalWrite(IN1, HIGH);
 delay(500);
}
void loop() {
 Serial.print("MOISTURE LEVEL:");
 value = analogRead(sense_Pin);
 Serial.println(value);
 if(value > 500)
 {
     Serial.println("LOW");
     digitalWrite(IN1, LOW);
 }
 else
 {
     Serial.println("HIGH");
     digitalWrite(IN1, HIGH);
 }
 delay(1000);
}


これはとても分かりやすい。とても順調に進みました。

私はこのテストでArduinoで制御可能なスイッチのスキルを手に入れました。

車のラジコンのようなものを作りたいと思うと、車速コントロールが必要となります。
このような場合は、モータードライバを使って制御する必要があります。
水やり装置のようなものは、スイッチで事足りるので、リレースイッチで良いのだと、ようやく合点がいきました。外部電源を使って、モーターのON/OFFをすればよいので、マイコンの供給電力に構わなくてもよいことになります。電子工作初心者にとって、想定外の動作はできれば避けたいもの。全く見当がつかず、多くの時間を費やしてしまいます。

次はESP8266です。

マイコン関係の調べ物をしていると、ESPという言葉はちらほら出てきていましたので、少し聞き馴染みはありました。ESPは、Arduinoと同じ開発環境でプログラミングでき、Wifi、BrueToothも持っているそうで、これをうまく使いこなせれば、24時間制御用のコンピュータを動かし続ける必要がなくなります。ということは、SALZを広く使ってもらえる可能性が出てきます。なんとかESPで作り上げたいものです。

そういえば、どこかでESPを見たような。。。ひょっとして家にあるかも。ということで、探してみますと、2個も見つけました。

1つ目は、obniz!

画像2

よく見ると右側のチップにESP32-WROOM-32とかかれていました。

実はこのマイコンESP32搭載でした。
灯台下暗し。もうすでにESPのお世話になっていたのでした。。。ESPが聞き覚えあるのもこのせいか。

そして、2つ目はメルカリで買ってました!

これも、ほとんど自覚なしです。Arduinoで工作した場合、いずれはWifiとか通信が必要になると思っていて、何となくWifiモジュールのつもりで購入していたものが、ESP-WROOM-32だったのです。嬉しいです。
ということで、ESP-WROOM-32を用いて、工作を始めることにしました。
Arduinoでできているので、すぐにできるものと思っていましたが、ここからがまた棘の道だったのです。

あれ?なんか違うぞ。

と気づいたのは、配線をはじめたときです。キットのサンプルで描かれているESP8266の評価キットと、目の前にあるマイコンをよく見ると、基板の色は黒で同じようですが、形が異なっていることに、このときようやく気付いたのです。

NodeMcu ESP8266(取扱説明書のマイコン)

謎のESP(入手したもの)

画像3


まずは、私が手に入れたマイコンの機種を特定するところから始めました。
ESP8266にしろ、ESP-WROOM-32にしろ、最終製品形でないため、検索でヒットするのはチップの情報です。

盆栽でも同じようなことが起こります。

今自分が育てている樹の種類が分からないため、手入れの仕方が分からないのです。樹種さえわかればなんとかなるのに。ってことが間々あります。
マイコンの裏に「DOIT」というメーカーらしき名前が見当たりました。製品名らしき印刷も見えるのですが、とにかく検索。

画像4


そして、ようやく同定までたどり着けました。

DOIT ESP32 DEVKIT V1

NodeMcu ESP8266 と DOIT ESP32 DEVKIT V1 の情報を見比べながら、作業を進めます。ESP8266の機能アップ版がESP32であることも、わかってきました。

DOIT ESP32 DEVKIT V1 は、ピンが出ているため、これをブレッドボードに載せます。すると、ぴったり挿さるのですが、他のパーツを挿す余裕がありません。

画像5

困った時のネット頼み。調べてみると、回避策がありました。

小さいブレッドボードを2枚使い、マイコンをまたがせればよい。

画像6


ことが分かりました。これで、配線もできます。
さあ、挿そう。と思ったら、もう次の試練が待っていました。

結局、どこへ挿したらいいのか、わからない!

Arduinoの「GND」、「A0」などピンの名称は他のボードでも同じものがあると思っていましたが、恐るべしマイコンの世界はボードごとに名称が違っていることに、この時初めて知りました。NodeMcu ESP8266 と DOIT ESP32 DEVKIT V1 でも同じでないと知った時、頭が真っ白になりました。
とりあえず、ペンディングで先に進むことにしました。

ESPのいい所は、Arduinoと同じ開発環境が使えることです。
アドインを追加することで、Arduino IDEから、プログラムの作成、コンパイル、マイコンへの書き込みができます。

のはずなんですが、マイコンへの書き込みでエラーが発生します。
しばらく待っているようですがタイムアウトで終了します。

そもそもケーブルの問題なのか?これまた謎です。
ネット検索で、調べてもなかなか答えにたどり着きません。海外の動画を見ていてようやく解決策がわかりました。答えは、

書き込み開始時に「BOOT」ボタンを押す。

でした。ええっ!そんなー。って感じです。
ともかく、プログラムの書き込みは完了し、動作チェックを行います。シリアルモニタからの信号は変化しません。

適当に挿したピンとピン番号が一致するはずもありません。
ネットで調べた結果、ようやく、ピン番号がわかり、下記の通りサンプルコードを書き換えることで、動作しました。

int R01 = 18;
int S01 = 34; // Analog pin A0 is connected to sensor input.
float value = 0;
void setup() {
 Serial.begin(9600);
 pinMode(R01, OUTPUT);
 pinMode(S01, INPUT);
 digitalWrite(R01, HIGH);
 delay(500);
}
void loop() {
 Serial.print("MOISTURE LEVEL:");
 value = analogRead(S01);
 Serial.println(value);
 if(value > 3000)
 {
     Serial.println("LOW");
     digitalWrite(R01, LOW);
 }
 else
 {
     Serial.println("HIGH");
     digitalWrite(R01, HIGH);
 }
 delay(3000);
}

画像7

ようやく第一段階完了。ふう。疲れました。

この記事が気に入ったらサポートをしてみませんか?