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){