Page 176 - MDP2020-2
P. 176

|    인천전자마이스터고등학교  ·············································································································
            170


            제  2  장  소프트웨어  설계




            1.  개요
                    pH  센서와  tds  센서를  아두이노에  연결해  아두이노가  이  두  센서의  값을  받고  블루투스를
              통해  라즈베리  파이에  이  두  센서의  값을  통신하여  전달한다.  온습도  센서는  라즈베리  파이에
              연결하고  Adafruit의  라이브러리를  사용하여  값을  받도록  하였다.  라즈베리  파이는  이  세  센

              서의  값을  받고  터치스크린에  표시한다.  온도와  습도가  일정  기준을  넘으면  환풍기가  작동하
              고,  tds의  값이  낮으면  양액을  공급하도록  한다.


            2.  소프트웨어

                가.  pH  센서


            #define  SensorPin  A0                        //pH  meter  Analog  output  to  Arduino  Analog  Input  0
            #define  samplingInterval  20
            #define  ArrayLenth    40        //times  of  collection

            int  pHArray[ArrayLenth];      //Store  the  average  value  of  the  sensor  feedback
            int  pHArrayIndex=0;
            void  setup(void)
            {
            }

            void  loop(void)
            {
                static  unsigned  long  samplingTime  =  millis();
                static  float  pHValue,voltage;
                if(millis()-samplingTime  >  samplingInterval)

                {
                        pHArray[pHArrayIndex++]=analogRead(SensorPin);
                        if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;
                        voltage  =  avergearray(pHArray,  ArrayLenth)*5.0/1024;
                        pHValue  =  3.5*voltage+Offset;
                        samplingTime=millis();

                }


            }
            double  avergearray(int*  arr,  int  number){

                int  i;
                int  max,min;
                double  avg;
                long  amount=0;
                if(number<=0){
   171   172   173   174   175   176   177   178   179   180   181