가스 밸브는 가정 내의 가스 밸브를 시간 맞춰 잠그거나 여는 기능을 한다. 아래 사진의 가스 밸브는 타이머 가스밸브를 시중에서 구입한 것인데 타이머 설정은 하지 않고 단지 Open/Close 명령만을 수행한다. 인터넷에 연결되어 있다면 원격으로 직접 개폐 제어가 가능하고, 시간을 설정해서 원하는 시간에 개폐가 되도록 프로그램할 수 있다. 가스 타이머의 각 부 명칭을 살펴보자.
라즈베리파이 스마트 홈 실습 과정 전체 포스팅 리스트
라즈베리파이4 스마트홈 액츄에이터 디지털 도어록 실습 8
본 실습에서 사용하는 가스 타이머의 특징은 아래와 같다.
1. 가스밸브 원터치 개폐방법-열림/닫힘 버튼을 하나로 조작.(1번 누르면 열림 다시 누르면 닫힘.)
2. 설정한 시간 지나면 퓨즈콕(중간밸브) 잠김으로 가스 자동차단하는 방식.
3. 밸브잠김 위치 확인방법/위치 부정확 시 작동오류 표시 후 잠김. (오류요인 해제 시 정상작동)
4. 정전시 수동으로 가스중간밸브 수동 개폐 가능.
5. 밧데리 사용 중 극도로 저전압 상태가 발생할 경우 자동으로 잠김. 극도로 저 전압일 때 ON 스위치를 눌렀을 경우 경고음만 발생하고 작동되지 않음. (전원 자동차단 후 수동모드)
6. 제품주변온도가 65 ºC 이상의 고온일 경우 감지 센서가 화재위험으로 체크하여 가스중간밸브를 자동차단.
7. 손쉽게 설치 - 기존 사용하는 퓨즈콕 (15A)에 덧 씌우는 방법으로 전문 시공자 없이 누구나 쉽게 설치 가능함.
가스 타이머의 사세한 사양을 아래에 나타내었다.
가스타이머 K-300 사양
모델명 | K-300 |
제조사 | Hi one plus -http://www.lock1313.co.kr/ |
전원 | DC 6V ( 건전지 1.5V, 4EA / AA 사이즈) |
차단방식 | 모터 구동방식 / 자동 |
형식 | 분리형 |
환경온도 | -15ºC ~ 59ºC |
재질 | 내화 플라스틱 |
제품규격 | 76(W) X 153(H) X 101(D) mm |
제품중량 | 209g |
설치장소 | 아파트 빌라 원룸 기타장소 |
구동방식 | 모터구동방식(콕밸브에 적용) |
밸브차단시간 | 4초 이내 |
외형 재질 | ABS , POM |
설정 시간 | 기본 20분 설정 , 최장 9시간 |
스마트 홈 실습 시스템의 가스타이머의 외형을 아래에 나타낸다.
소스코드로 제어방법을 살표보자. 소스코드 편집은 아래 명령을 이용하여 nano편집기를 사용한다 $nano home-gascontrol.c
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <wiringPi.h>
#define GASON 25 // BCM_GPIO 26 - OUT
#define GASOFF 25 // BCM_GPIO 26 - OUT
#define GAS_STATUS 1// BCM_GPIO 18 - in
void Bpluspinmodeset(void);
// the event counter
volatile int pulseCounter = 0; //pulse 10msec
// -------------------------------------------------------------------------
// myInterrupt: called every time an event occurs
void pulseInterrupt(void) {
pulseCounter++;
}
int main (void)
{
if(wiringPicheck()) printf("Fail");
Bpluspinmodeset();
if ( wiringPiISR (GAS_STATUS, INT_EDGE_FALLING, &pulseInterrupt) < 0 )
{
fprintf (stderr, "Unable to setup ISR: %s\n", strerror (errno));
return 1;
}
int i;
while(1)
{
//digitalWrite(GASON, 1);
delay(10);
digitalWrite(GASON, 0);
delay(50);
digitalWrite(GASON, 1);
delay(5000); //1sec
//get current state
pulseCounter = 0;
delay(100);
if(pulseCounter > 5)
{
printf("Open %d\n", pulseCounter);
}
else
{
printf("Close %d\n", pulseCounter);
}
delay(3000); //1sec
}
return 0 ;
}
int wiringPicheck(void)
{
if (wiringPiSetup () == -1)
{
fprintf(stdout, "Unable to start wiringPi: %s\n", strerror(errno));
return 1 ;
}
}
void Bpluspinmodeset(void)
{
pinMode (GASON, OUTPUT);
pinMode (GASOFF, OUTPUT);
pinMode (GAS_STATUS, INPUT);
}
'개발자 > 라즈베리파이4' 카테고리의 다른 글
라즈베리파이4 스마트홈 RGB LED 실습 12 (0) | 2023.05.25 |
---|---|
라즈베리파이4 스마트홈 RFID RC522 실습 11 (0) | 2023.05.23 |
라즈베리파이4 스마트홈 전동볼밸브 실습 10 (0) | 2023.05.22 |
Raspberrypi MCP3208 ADC 전류 센서 연결도 (1) | 2023.05.19 |
라즈베리파이4 스마트홈 액츄에이터 디지털 도어록 실습 8 (1) | 2023.05.17 |
라즈베리파이4 스마트홈 인체감지 모션센서 코드 7 (0) | 2023.05.16 |
라즈베리파이4 스마트홈 온도 습도센서 코드 6 (0) | 2023.05.15 |
스마트홈 서버 프로그램 데이터 베이스 에러 해결 (1) | 2023.05.12 |
더욱 좋은 정보를 제공하겠습니다.~ ^^