エンジニア「くがとしお」のレベル上げ

エンジニアとして色々なことができるように資格取得、電子工作、アプリ開発を頑張ります。

ラズベリーパイ2でアクアポニックスに自動餌やり器をつけてみた

   

どーも、くがとしおです!

自宅のアクアポニックス環境にオートフィーダー(自動給餌機)を作成しました。
ブラウザのボタンを押すと、自動でエサが投入されるようにしました。
ラズベリーパイとWordpressとの通信は、MQTTプロトコルを使用します。

参考にさせていただいたサイト
プログラムは、ほぼ流用させていただいています。(><)
Raspberry Pi2で外部から水槽のLEDを点灯する
Raspberry Pi2で外部から水槽のLEDを点灯する その3

 

スポンサードリンク

 

その前に・・・

知っておきたい知識を紹介しておきます。

MQTT

 

Messege Queueing Telemetry Transportの略で、TCP/IPネットワークで利用できる
軽量の通信プロトコルの1つです。

双方向、1対多の通信が可能でシンプル、軽量、省電力という特徴から
IoTやM2Mでの利用が期待されています。

 

 

使用するもの

今回の実験で使用したものはこちらです。

 

 

 

 

ハードウェア

準備

とりあえず、材料費は安く抑える方針で作りました。
プラ箱にモーターを直接接着したくなかったので、100均で固定するものを買いました。

・大きい洗濯バサミ 3個100円(ダイソー)

・サーボモータ SG90 1個400円くらい

・LG21 120円くらい(スーパー)

・固定するやつ 2個100円(ダイソー)

 

工作

LG21のフタにキリで穴を開けます。

サーボモーター本体、サーボモータの可動部と洗濯バサミをグルーガンで接着します。

auto_feeder_hw

 

 

Sangoの準備

ブラウザから制御できるようにSangoというMQTTブローカーを使用します。

 

Sangoへの登録

こちらからMQTTブローカーのSangoに登録します。
メッセージ数が制限されますが、無料プランが用意されています。

スクリーンショット 2016-05-02 22.51.37

 

 

ラズベリーパイ側の準備

MQTTのSubscribe(受信)プログラムと、モーター制御プログラムを準備します。

 

 Servoblasterの導入

サーボモータを制御するためのServoblasterの導入は、以下の記事を参考にしてください。

ラズベリーパイ2に正式対応したServoblasterでサーボモータを制御してみた
どうも、くがとしおです! アクアポニックス環境を自宅に構築中です。 カメラの首振りや自動給餌システムが必要となり、 サーボモータをラズパイ2から制御しようと思います。

 

Ruby MQTT gemのインストール

ラズベリーパイ2にgemをインストールします。

 

モーター制御プログラムの作成(auto_feeder.sh)

サーボモータを使ったエサやりをおこなうプログラムをシェルで作成します。
Servoblasterのサーボ番号5 (ピン番号16)を使用します。
ラズベリーパイとモーターの配線はこちらを参考にしてください。

 

外部から実行時にパスワードを聞かれないようにしておきます。

 

Subscribe(受信)プログラムの作成(auto_feed_subscribe.rb)

MQTTのSubScribe(受信)側のプログラムを作成します。
パスワードは、ダッシュボードの鍵アイコンをクリックすると表示されるものを記載します。
作成したモーター制御スクリプトを絶対パスで指定します。
rubyからシェルを実行するためには、バッククォートでスクリプトを括ります。

 

Subscribe(受信)プログラムの実行

作成したプログラムは、実行権限を付与して実行しておきます。

 

 

サーバー側の準備

MQTTのPublish(送信)プログラムをサーバーに準備します。
サーバーは、Xserverを使用しています。

phpMQTTライブラリの準備

phpからMQTTを使用可能なライブラリが用意されています。
https://github.com/bluerhinos/phpMQTT

Xserverにファイルマネージャにログインして、ダウンロードしたzipファイルをサーバーにアップロードしてください。
public_html以下のブラウザからアクセスできる位置に格納してください。

gitをインストール済みであれば、下記コマンドでインストールできます。

 

MQTT Subscribe(送信)プログラムの作成(auto_feed_publish.php)

MQTTのPublish(送信)側のプログラムをphpMQTTディレクトリ以下に作成します。
パスワードは、ダッシュボードの鍵アイコンをクリックすると表示されるものを記載します。

 

実行権限を追加しておきます。

 

 

ブラウザ側の準備

WordPress側に作成したpublish側のスクリプトを実行するボタンを配置します。

 

「エサやり」ボタンの作成

WordPressの記事内にボタンを作成します。

 

作成したボタンは、こんな感じになります。
押すと作成したPHPが実行されます。

 

デモ

iPadのブラウザ上のボタンを押すと、アクアポニックス水槽に設置した自動給餌器のモーターが動作します。
エサは見やすいようにマーブルチョコを入れています。

ラズベリーパイ2でアクアポニックスに自動餌やり器をつけてみた

 

Sangoのダッシュボードで確認すると、通信ができていることが分かります。
スクリーンショット 2016-05-04 18.34.18

 

 

「くがとしお」的 まとめ

IoT化したアクアポニックス構築の第一歩として、自動エサやり器を作成しました。
今回はふりかけスタイルでエサを投入するマシーンにしてみました。
大きなペットボトルを使用すれば、犬や猫のエサやりも自動化できそうですね。(^^)

今回の実験で、MQTTを使用してヒトからモノへ制御する方法が分かりました。
今後は、カメラの首振りやLED点灯、音声出力等も作成していきたいと思います。

もうすぐ、アクアポニックスの作成に必要なパイプが到着するので
到着次第、作成していきたいと思います。

では!(^^)/

 

 - アクアポニックス , ,

PAGE TOP