Processor
【라즈베리파이】 wiringPi C 언어 : 토양 수분 센서 FC-28
작성자 임베디드코리아
작성일 26-02-17 18:20
조회182회
댓글0건
■ 토양 수분 감지
작물 자동급수장치 등과 같은 식물관리 장치를 만드는 데 이용
토양 내 수분함량에 따른 저항의 변화를 측정하는 센서
토양 내 수분함량이 적어짐 -> 저항값이 커짐 -> 전류가 잘 흐르지 않음
토양 내 수분함량이 많아짐 -> 저항값이 작아짐 -> 전류가 잘 흐름
■ FC-28 스펙
용도 : 토양의 수분을 감지하여 디지털 또는 아날로그 센서값을 출력하는 모듈
동작 전압 : 3.3V ~ 5V
동작 전류 : 30mA
센서 DO (TTL) : 0 or 1 (5V HIGH, 수분 부족시)
출력센서 AO (아날로그) : 0 or 1 (5V HIGH, 수분 부족시)
출력 : 0.1 ~ 0.3V / 5V
핀 구성 : 4핀 (VCC / GND / DO / AO)
◆ MCP3008은 아날로그 값을 디지털 값으로 convert하여 라즈베리파이에 넣어주는 역할을 한다.
◆ FC-28에서 오는 아날로그 전압을 받기 위해서는 ADC 기능을 가진 MCP3008 IC가 필요하다.
■ 연결하기
R-Pi4 > MCP3008
------------------------------------------------
Pin 1 (3.3V) > VDD
Pin 1 (3.3V) > VREF
Pin 6 (GND) > AGND
Pin 23 (SCLK) > CLK
Pin 21 (MISO) > D_OUT
Pin 19 (MOSI) > D_IN
Pin 24 (CE0) > CS/SHDN
Pin 6 (GND) > DGND
R-Pi4 > FC-28
---------------------------------------
Pin 1 (3.3V) > VCC
Pin 6 (GND) > GND
FC-28 > MCP3008
----------------------------------------
AO > CH0
--->>> 예제 : Soil_Moisture.c <<<------------------------
#include <stdio.h>
#include <wiringPi.h>
#include <wiringPiSPI.h>
#define CS_MCP3208 8
#define SPI_CHANNEL 1
#define SPI_SPEED 1000000
int ReadMcp3208ADC(unsigned char adcChannel) {
unsigned char buff[3];
int nAdcValue = 0;
digitalWrite(CS_MCP3208,0);
buff[0] = 0x06 | ((adcChannel & 0x07) >>2);
buff[1] = ((adcChannel & 0x07)<<6);
buff[2] = 0x00;
wiringPiSPIDataRW(SPI_CHANNEL, buff, 3);
buff[1] = 0x0F &buff[1];
nAdcValue= (buff[1]<<8) | buff[2];
digitalWrite(CS_MCP3208, 1);
return nAdcValue;
}
int main(void)
{
int nCdsChannel = 1;
int nCdsValue = 0;
int i;
char str[7];
wiringPiSetupGpio();
wiringPiSPISetup(SPI_CHANNEL , SPI_SPEED);
pinMode(CS_MCP3208, OUTPUT);
while(1)
{
nCdsValue = ReadMcp3208ADC(nCdsChannel);
printf("CSD Sensor Value = %u \n", nCdsValue);
} //while
} //main
------------------------------------------------------------------------------
$ gcc -o Soil_Moisture Soil_Moisture.c -lwiringPi
$ sudo ./Soil_Moisture
158-840 서울시 양천구 남부순환로 571(신월동, 영남타운 307호) l 대표: 박길성 ㅣ Tel:02-2695-1114 ㅣ Fax:02-2695-1113
Copyright © 2015 Embedded Korea. All Rights Reserved.