こんにちは、ソフトウェア開発部の向井です。
最近家事を減らしたくて、スマート家電にはまっているのですが、
スマート家電って結構値段しますよね。
そこで勉強がてらマイコンのArduinoを使って、
自分でスマート化させてみようと思いました。
まず今回は家の観葉植物を枯らさないようにして、
楽して育てるためにArduinoで水やりの制御をしてみようと思います。
(勝手に野菜とか出来たらいいですよね。)
用意するもの
- Arduino Uno
- USBケーブル
- ブレッドボード
- ジャンパー線
- トランジスタ(2SC1815)
- 水中用ポンプ(DC5V~12V)
- ポンプ用のチューブ
https://www.amazon.co.jp/dp/B008GRTSV6
https://www.amazon.co.jp/dp/B08B63VNCH
https://www.amazon.co.jp/dp/B00J1N1X94
https://www.amazon.co.jp/dp/B00MCIPBO8
https://www.amazon.co.jp/dp/B002RV2LAW
Arduino IDE のインストール
softwareタブのdownloadsから
https://www.arduino.cc/
プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int MoterPin = 13;//デジタルピン13番 void setup() { Serial.begin(9600); pinMode(MoterPin, OUTPUT); } void loop() { digitalWrite(MoterPin,HIGH); // HIGH = 5V delay(10000);//10000ms 水供給中 digitalWrite(MoterPin,LOW); // LOW = 0V delay(5000);//5000msおきに水やり } |
Arduino IDEでコードを書いて、ボードに書き込んだら動きます。
回路図
モーター動かすだけならデジタルピンのON/OFFするだけいいのでは?と思っていたのですが、
デジタルピンの出力電流ではモーターを動かすのには足りないとのことなので、
電源は別に持ってこの電源を流すかどうかの切り替えをデジタルピンで行いました。
そこでトランジスタを使うのですが、スイッチや電流増幅として使えます。
2SC1815のピンは印字されてる方を表として、
左からエミッタ, コレクタ, ベースと呼ばれていてベースに電圧をかけることで、
コレクタとエミッタ間のON/OFFの切り替えを行います。
ベースとデジタルピンの間は抵抗を挟んだ方が安全かもしれません。
後はポンプにチューブを差して水に沈めれば完成です。
今後の課題
植物の水やりの頻度は季節に応じて変わってくるため、
1日周期だと根腐れや乾燥の原因になってしまいます。なので
時間のみで行うなら→季節に応じて周期を変更する。
土壌湿度センサあるなら→乾燥したタイミングで水やりする。
といった方法で今後改良しようと思いました。
土壌湿度センサー
http://akizukidenshi.com/catalog/g/gM-07047/
水やりだけなく家のエアコンや鍵の制御をアプリで管理出来たら面白いなと考えてます。
アイディア次第で色々と応用できると思うので、ぜひやってみてください。
【参考】
トランジスタによるスイッチング
https://www.hakodate-ct.ac.jp/~moriya/class/2Ssensing/text/006_01transistor.pdf