import time
import spidev
spi = spidev.SpiDev()
spi.open(0,0) # 0번채널 open
spi.max_speed_hz = 1000000
def ReadVol(vol):
adc = spi.xfer2([1,(8+vol)<<4,0])
data = ((adc[1]&3)<<8)+adc[2]
return data
mcp3008 = 0
SLOPE = 2.18
INTERCEPT = -0.79
while True:
a_1 = ReadVol(mcp3008) #토양습도센서 출력 전압의 디지털값
Vol = 3.3*a_1/1024 #토양습도센서 출력 전압의 아날로그 값
water = (1.0/Vol)*SLOPE)+INTERCEPT #토양습도의 아날로그 값
print('voltage:',a_1.'V',Vol, 'Water contents:',water)
time.sleep(0.5)
릴레이 모듈
: 입력이 어떤 값에 도달하였을 때 작동하여 다른 회로를 개폐하는 장치 (쉽게 말해 on/off가 있는 스위치)
ex) 접점이 있는 릴레이, thermal 릴레이, 입력 릴레이, 광 릴레이
Relay 종류
[유접점] : 접점의 기계적 개폐를 통해 기능 수행
유접점 Relay 동작 원리
: Relay는 내부에 전자석(코일)을 포함하고 있으며, 이는 전류가 통하면 자석이 되는 성질을 가짐.
즉, 전원을 공급하면 릴레이 내부 코일이 자석이 되어 옆에 있는 철판을 끌어당겨 스위치가 On 된다.
[무접점, SSR (Solid state relay) ]
: 제어용 입력은 내부 led와 연결되어 있으며 부하와 연결된 회로에는 광을 인식하는 센서를 통해 회로를 열고 닫을 수 있음.
*반응속도가 상대적으로 느리며, 접점과 코일이 없어서 기계식 회로에 비해 소음이 적고 기계적 고장이 없음. EX) 반도체 릴레이
무접점 relay 모듈 예시
릴레이 모듈에 신호 주기
Normal Open [NO] (off->on) : 평상시 열려있다는 뜻으로, 릴레이로 신호를 주면 close되므로 전원을 off 상태로 유지하다가 신호를 주어 on 할 때 사용
Normal Close [NC] (on->off) : 평상시 닫혀있다는 뜻으로, 릴레이에 신호를 주면 open되므로 전원을 on 상태로 유지하다가 신호를 주어 off 할 때 사용
{B타입 릴레이 모듈의 경우] 1. PUMP의 (+)극을 NO와 연결한 경우 (PUMP OFF->ON) -정상 상태에서는 NO와 COM이 연결되어 있지 않아 PUMP는 OFF 상태입니다. -외부에서 신호가 들어오면 NO와 COM이 맞닿게 되어 PUMP가 ON 상태가 됩니다.
2.PUMP의 (+)극을 NC와 연결한 경우 (PUMP ON->OFF) -정상 상태에서는 NC와 COM이 연결되어 있어 PUMP는 ON 상태입니다. -외부에서 신호가 들어오면 NC와 COM이 맞닿지 않아 PUMP가 OFF 상태가 됩니다.
*1의 경우든 2의 경우든 일단 평상시에는 COM이 NC와 맞닿아 있다가 전류가 흐르면 NO와 맞닿는다고 생각하면 쉬움. (COM이 NO와 접해야 NO에 전압 공급(ON) 가능 / NC와 접해야 NC에 전압 공급(ON) 가능하다)