勝手に裏で水やりくん / 勝手に裏ハックツハッカソン

Python

その名の通り、勝手に僕の代わりに裏で水やりをしてくれるくんです!

ニッシー☆

推しアイデア

意識の外側で草に水やりをしてくれるよ!

作った背景

#勝手に裏ハックツハッカソンvol.1 が開催されると聞きまして。。

推し技術

Raspberry Pi Pico で作ったよ!電子工作を自発的にやったのは生まれて初めてだよ!

プロジェクト詳細

普段はハッカソンでインフラを組んでいるニッシー☆です!業務ではデプロイの爆速化に取り組んでいます!きょうは生まれて初電子工作(?)をやったので見てくださぁーい!

毎朝水やりするのはめんどくさいですよね

私は1度もやったことないですけど、多分メイビーめんどくさいです!!(?)

勝手に水やりしてくれるいいヤツを紹介するぜ

勝手に裏で水やりくんです!

(画像を貼ろうと思ってたよ!サムネを参照!)

デモ動画はこちら↓(音量下げてね!ミュートでもいいよ!)

YouTube

ほんの少し説明

Raspberry Pi Pico やちょっとした周辺機器と、MicroPython を使って自動水やり機もどきを作ったよ!

デモ動画のうち水の入ったカップが植木鉢(仮)で、右下のチューブがくっついているものが水やり用のポンプ。真ん中のモニターが植木鉢の水位を表してる。

植木鉢の水がなくなってきたら、勝手にポンプから水が供給されることを意図してる!!!

今回はプロトタイプまでなのでぱっと見よくわからないと思うけどやりたいことはできた!!!!!

コードはこんな感じ!

import machine from lcd1602 import LCD import utime def get_water_level(): return sensor.read_u16() def print_water_level_for_lcd(water_level): lcd.message("Water level is\n" + str(water_level)) sensor = machine.ADC(28) lcd = LCD() motor1A = machine.Pin(14, machine.Pin.OUT) motor2A = machine.Pin(15, machine.Pin.OUT) WATER_LEVEL_THRESHOLD = 10000 while True: water_level = get_water_level() print_water_level_for_lcd(water_level) utime.sleep(2) lcd.clear() if water_level < WATER_LEVEL_THRESHOLD: lcd.message("Water is\ninsufficient") motor1A.high() motor2A.low() else: lcd.message("Water is\nenough") motor1A.low() motor2A.low() utime.sleep(2) lcd.clear()

感想

  • 裏ハッカソンが爆誕してちょーうれしい!カジュアルに新しい挑戦をするキッカケをありがとう!
  • パーツをブレッドボードにつけたり外したりするのは大変だったね!
  • ここだけの話、ポンプが動き出してから一定以上動かし続けるとハングするから実用化するにはもう少し工夫が必要な点は秘密ね!
  • なんなら15時くらいまでモーターが動かなくなって詰んでたんだけど、単純にリセットボタン押し続けられてるからっていう謎の理由がわかったあとは早かったね。遅れてすみませんでしたぁぁぁぁぁっぁぁl!!!!!!

おまけ

参考にしたサイトは以下だよ!

使った機材は以下でまとめて手に入れたよ!少し高かった、、!

P.S. ポンプの勢いが結構よかったから見て(?)↓

YouTube

ニッシー☆

@yukinissie