「農業用換気システム」開発ブログ#1

~卒研の開発ブログを学生の記録からお届けします!~
私たちは卒研グランプリのテーマとして「IT × 農業」に取り組んでいます。
自動で作物が病気になっていないかや虫がついていないかなどを調べるシステムや自動で水やりをするシステムなどのアイデアをいくつも出していましたが、これぞ!という企画に仕上がらず、三度目の正直で提出した「農業用ビニールトンネルの換気システム」というアイデアで先生からようやく採用の許可をいただき、制作へ取り掛かっています!

実家で農業を営むメンバーから、作物の安定した育成に欠かせないビニール・トンネル(作物を冷害などから防ぎ、温暖な環境を作るもの)は、温度管理のために開閉作業が必要で、その作業がなかなかな手間なので自動化できないか……。との提案からスタートしました。

まずは自動化の動作を確認するため、稼働するミニチュアモデルを作成しました。こちらは展示会での試作品稼働の様子です!

根幹のシステムは、手元のPCやスマートフォンのブラウザからミニコンピューターのRaspberry piにつないだステッピングモーターを動かすモノです。

webiopiという仕組みを利用しました。
インストール・プログラムは下記のページを参考にしました。
参考にしたページ

使うもの
ステッピングモーター
raspberry pi

実際に書いたpythonプログラムはこちらです。

import webiopi
import subprocess
import RPi.GPIO as GPIO
import os
import time

#GPIO setup
motorPins = (18,23,24,25)
CCWStep = (3,2,1,0)
CWStep = (0,1,2,3)
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(motorPins,GPIO.OUT)

k = 0

def gh(k):
    for step in range(768):
        for j in range(4):
            for i in range(4):
                if(k == 1):
                    GPIO.output(motorPins[i],(CWStep[j] == i and GPIO.HIGH))
                elif(k == 2):
                    GPIO.output(motorPins[i],(CCWStep[j] == i and GPIO.HIGH))
            time.sleep(3*0.001)
@webiopi.macro
def start():
    k = 1
    gh(k)
    
@webiopi.macro
def stop():
    k = 2
    gh(k)

rightを押したら右回りに
leftを押したら左回りになります。

こうした機能を温度変化や時間に合わせて、コントロールできるようにして行きます。

次回は制作編 乞うご期待!!
そして、実際に作物を育ててみます!!