基本構成
左が水タンク、右に4つのプランターがあります。
栽培ロボットには給水ポンプ、排水ポンプ、バルブ1〜4があります。
バルブ1をON→給水ポンプON でプランター1に給水。
そのままだとあふれるので、センサ連動か、タイマーで給水ポンプを止める必要があります。
バルブ1をON→排水ポンプON でプランター1から排水、水タンクに戻します。
ワークショップ
プログラムワークショップをやってみました。
プログラム例です。
まず、ブザーを鳴らしてみましょう。
次に、ブザーを鳴らしたり止めたりするプログラムです。
設定する
必要なもの
- Arduino 開発環境
- ESP32開発環境
- ドライバインストール
- 栽培ロボット版 ArduBlock
Arduino 開発環境
動作確認は Ver.1系で行っています。
2023/09/18 現在の最新のVer.1系は、Arduino IDE 1.8.19 となります。
ESP32開発環境
ドライバインストール
使用している ESP32 DevKit の USB シリアルドライバをインストールします。
USBシリアルチップは CP210x または CH341 となります。
OS標準ドライバーで動作しない場合は、以下からドライバーをダウンロードし、インストールします。
CP210X
https://jp.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
CH341
https://www.wch-ic.com/downloads/CH341SER_ZIP.html
Ubuntu22.04 の場合は、ドライバはOSに入ってますが設定が必要となります。以下を参照して設定してください。
「USBシリアルモジュールを Ubuntu22.04 で使用する」
https://qiita.com/nanbuwks/items/dd251aab3a8047a47a50
栽培ロボット版 ArduBlock
ardublock-all.jar をこちらからダウンロードします。
Arduinoのスケッチなどを保存するディレクトリ( Ubuntuでは ~/Arduino/ ) に、
./tools/ArduBlockTool/tool
というフォルダを作ります。
そのフォルダに
ardublock-all.jar をコピーします。
Arduino IDE から、「ツール」-「ArduBlock」で起動します。
CUI で制御するには?
IO割当が以下のようになります。
バルブ1 | GPIO27 | High で 開(デフォルト閉) |
バルブ2 | GPIO14 | High で 開(デフォルト開!!) |
バルブ3 | GPIO13 | High で 開(デフォルト閉) |
バルブ4 | GPIO21 | High で 開(デフォルト閉) |
ポンプ1(給水ポンプ) | GPIO25 | High で給水(デフォルト停止) |
ポンプ2(排水ポンプ) | GPIO26 | High で排水(デフォルト停止) |
リレー1 | GPIO12 | High で J20-Pin1Pin2間に12V(デフォルトインアクティブ) |
リレー2 | GPIO13 | High で J20-Pin3Pin4間に12V(デフォルトインアクティブ) |
水位センサ1 | GPIO34 | 水検出でLow(デフォルトHigh) |
水位センサ2 | GPIO35 | 水検出でLow(デフォルトHigh) |
水位センサ3 | GPIO32 | 水検出でLow(デフォルトHigh) |
水位センサ4 | GPIO15 | 水検出でLow(デフォルトHigh) |
ブザー | GPIO2 | High で鳴動(デフォルトLow) |
GROVE1 | GPIO22 | NeoPixel用 |
GROVE2 | VN | センサ入力用 |
スイッチ入力・サーミスタ入力 | VP | (サーミスタ未接続時)LowでSWプッシュ(デフォルトHigh) |
スイッチ入力・サーミスタ入力 | VP | (サーミスタ接続時)サーミスタアナログ分圧入力(R1とぶんあt) |