はじめに
3年ほど前に、趣味で実家の農業用ハウスをリモートで開閉できるようにしたのですが、今になって教えてほしいという方が多くなってきました。自分も完全に忘れていることが多いので、、備忘録もかねていくつかのパートにわけながら書いていきたいと思います。
筆者はプログラミングや電子機器の扱いに関して専門的な教育を受けておらず、完全に独学です。仕事もIT関係無し。 完全に趣味の範疇で制作したものであるため、やらなくていいことをやっていたり、やらなくてはいけないことをやっていなかったりします。致命的なミス(特にセキュリティ回り)がありましたらご指摘をお願いします。
なお想定している読者として、ある程度低コストでIoT農業に手を出してみたい方、ラズベリーパイ等を使用して遠隔地のIoTシステムを構築したい方等を考えています。技術系の話を手広く触るので、随時最低限の解説は入れさせていただきます。
システムの概要
電源や細かい配線は邪魔なので端折りました。ハウスへ設置しているハードウェアは以上のとおりです。遠隔地のハウスですが、電気と水道(地下水)は確保できる場所です。ちなみに、水道が使える場合はswitchbotを使用して水やりの自動化なども可能です。(switchbotの解説記事はそのうち書きます)
ハードウェア自体は既存のものを利用しているので、多少工作ができれば簡単に配線をすることができます。モーターの制御、LINEbot運用等のサーバーとしてRaspberryPi(以下ラズパイと呼びます)3BのRev1.3を使用しています。
費用の話
ここから技術の話が多くなるので、先に資材費の話をしておきます。2020年に作ったシステムなので、現在とは価格が大幅に変わっているものもあります。ご了承ください。
- 電動巻き上げ機×2 ¥20,000 https://amzn.asia/d/50ceeG7
- モーター用電源×1 ¥3,500 https://amzn.asia/d/f6rcD73
そこそこの電気が流れるので、国内メーカーのスイッチング電源でもいいかもしれません。少し値が張りますが、https://www.monotaro.com/p/4555/6585/?fem1=1 このあたりが良いと思います。 - リフター ¥3,000 https://amzn.asia/d/6e3jtdS
- モータードライバ ¥3,080 https://jp.robotshop.com/products/cytron-10a-7-30v-dual-channel-dc-motor-driver-shield
- RaspberryPi3a+ ¥5,800 https://amzn.asia/d/0fGNxro
- 単管パイプ等資材費 ¥6,000
- モバイルルーター+回線代 ¥7,900 + 毎月¥528 イオンモバイルタイプ2 データ1GBプラン
※回線はグローバルipアドレスをもらえる回線が必須です。私はこのサイトを参考にして選びました。なお固定ipはDDNSの設定をするので必要ありません。ポート開放も必要になるので、モバイルルーターを購入する際は注意してください。
資材費はホームセンターで適当に買ってきたものも多く、忘れているので多めに見積もっています。
合わせて約5万円弱でしょうか。昨今のいろんなものの価格高騰を入れても6万円くらいでそろうと思います。
モータードライバー(モーターの制御装置)、電源周りについて
モーター一つ当たり4A強ぐらい流れるのでAWG20くらいのものを使用しました。(実装時には10A流せるACアダプタがなかなか見つからなかったので、片方ずつ回転させるようにして電源の負荷を抑えました)
サーバーの選定
サーバーの選定ですが、ネット上の情報の多さやアクセサリの豊富さ、5が出たことで価格が少し落ち着いたRaspberryPi4を使うのが良いと思います。(2024.1現在)
ここからラズパイ以外のコンピュータについて少し蛇足です。IoTで名前が良く出るArduinoは一応サーバーの構築もできるようですが、サーバー上でいろいろ作業をしようと思うとすごく大変そうなのでパスしておいたほうがいいかもしれません。ラズパイ以外の選択肢としては、linux系のOSに対応しているシングルボードコンピュータが扱いやすいと思います。
LINEを使った理由
最初は、Webでインターフェースを作ってそこからボタンを押したり時間を指定する方式を考えていたのですが、マイクラのサーバーしか作ったことのない人間が手を出すにはあまりにも大変です。それにパスワード方式にするのも怖いし、公開鍵認証にしてしまうとクライアント(父親)が大変すぎます。
素人 (アプリなんて作ったことない!) でも簡単に作れてセキュアなものでかつ誰でも扱えるやつないかなーと考えた結果がLineのbotでした。ただし、Lineのbotは原則として非公開にできません。適当にIDを入力した人間に見つかり、勝手にハウスの開閉をさせられる、Dosされる等のリスクはあります。そのため、特定の命令文以外にはわかりませんと返す、Lineのアカウントマネージャーで未認証にする、画像や動画を受け取らない設定にしています。
唐突な終わり
ここまでざっと書いてみたら2000字近くなってしまいました。1ページにまとめて一気に公開も考えたのですが、可読性が悪くなりそうなのと、区切りなく書き続けるのがつらそうなので別ページに分けたいと思います。ここまでありがとうございました。