9
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Piで水やりをIT化にしましょう

Posted at

###背景###
最近家のベランダでスイカとレモンを田植えています。在宅勤務で毎日の朝一水やりをするのはやや面倒だと思います。また、連続の外出日には水やりを止めることになりますので、リモートで水やりをできるIoT仕組みを作ったらどうと思い始めました。
1.png

完成品は以下になります。
2.png

###準備するもの###

  • ラズベリーパイ3 x 1
  • Arduino ELEGOO UNO R3 x 1
  • Arduino USB コード x 1
  • 湿度センサー x 1
  • ブレイブボード x 2
  • マイクロウォーターポンプ x1
  • ポケットバテッリー
  • 単3形乾電池 x 4
  • プラスチックケース x 2
  • ボウル x 1
  • ゴムパイプ x 1
  • 5v リレー x 1
  • ジャンパワイヤ オス-オス 複数
  • ジャンパワイヤ オスーメス 複数

IMG_9483.png

ブレイブボード2枚を用意したのは、ワニクリップはないからです。またメスーメスのジャンパワイヤがあれば、配線はもっとシンプル化にできます。

###成果###
3.png

IMG_0060.PNG

###ハードウェア###

####配置####
IMG_9460.png

※図にある湿度センサーは土に挿入する状態になります。

####ロジック####

ポケットバッテリーからラズベリーパイに電源を供給します
単3電池からマイクロウォーターポンプに電源を供給します

リレーのOPEN,CLOSEから、マイクロウォーターポンプのON,OFFをコントロールしています。
ラズベリーパイのGPIO 21からリレーのOPEN CLOSEをコントロースしています。

Arduinoは湿度センサーから土の湿度を図ます
ArduinoはUSBを経由でラズベリーパイに湿度情報を送信します

###ソフトウェア###

####ロジック####
#####インフラ側ロジック#####
ラズベリーパイ側はngrokを利用し、イントラネットの浸透がおこなっています

#####サーバーロジック#####
ラズベリーパイはサーバー側として動作します
ラズベリーパイ側はflaskを利用し、GPIO 21をコントロールするapiを提供します
ラズベリーパイ側はgrpc サーバーストリングを利用し、クライアント側に湿度を送信します

#####クライアント側ロジック#####
flutterを利用して、iosアプリを開発します

####サンプルコード####

#####ngrok#####
ngrokでイントラネットの浸透をします

# flaskサーバーのポートは5000になっています
./ngrok http 5000

# 湿度grpcサーバー側のポートは5000になっています
./ngrok tcp -region jp 50051

#####ラズベリーパイ#####

iot_project_server

#####Arduino#####
arduino

#####Flutter#####
iot_project_app

###課題###

  • 電源長時間供給
    ポケットバッテーリーは数時間しか続けられないため、業務化にするためにわ、バッテーリーだけではなく、一般的な家庭用電源につながる必要があります。現在では、家のスイカはベランダーに置いてあるため、家の電源とどうやって繋がっていくことをあらかじめ考えることが必要です。

  • 複数植物対応
    いまは一つのボルトから一つの植物に水やりしか対応できないため、一つのボルトから複数の植物に水やりできるように改善する必要があります。

  • 安全なスレッド対策
    いまは、GPIOを管理するスイッチ変数はメモリに保存されています、もし同時複数のクライアントからリクエストが来たら、メモリに保存されてあるスイッチ変数は同時に変更されてしまいますので、あらかじめスレッドロックをかけるようにしなければなりません。

###感想###

中国のIT業界では最近「内巻」ということばは流行っておりまして、それは一つの分野に対して、参戦する人は多くなって、しかも皆技術のボルトネックからさらに伸ばさないため、みんなさん知恵で勝負するより、時間と体力で勝負することにしています。

9
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?