본문 바로가기

개발자/라즈베리파이4

라즈베리파이4 스마트홈 가스타이머 실습 9

반응형

 

 

가스 밸브는 가정 내의 가스 밸브를 시간 맞춰 잠그거나 여는 기능을 한다. 아래 사진의 가스 밸브는 타이머 가스밸브를 시중에서 구입한 것인데 타이머 설정은 하지 않고 단지 Open/Close 명령만을 수행한다. 인터넷에 연결되어 있다면 원격으로 직접 개폐 제어가 가능하고, 시간을 설정해서 원하는 시간에 개폐가 되도록 프로그램할 수 있다. 가스 타이머의 각 부 명칭을 살펴보자. 

 

 

라즈베리파이 스마트 홈 실습 과정 전체 포스팅 리스트 

 

라즈베리파이4 스마트홈 제품 특징 1

라즈베리파이4 스마트홈 불꽃 센서 코드 2

라즈베리파이4 스마트홈 가스센서 코드 3

라즈베리파이4 스마트홈 소리센서 코드 4

라즈베리파이4 스마트홈 조도센서 코드 5

라즈베리파이4 스마트홈 온도 습도센서 코드 6

라즈베리파이4 스마트홈 인체감지 모션센서 코드 7

라즈베리파이4 스마트홈 액츄에이터 디지털 도어록 실습 8

라즈베리파이4 스마트홈 가스타이머 실습 9

라즈베리파이4 스마트홈 전동볼밸브 실습 10

라즈베리파이4 스마트홈 RFID 실습 11

라즈베리파이4 스마트홈 RGB LED 실습 12

라즈베리파이4 스마트홈 카메라 실습 13

라즈베리파이4 스마트홈 조명 LED bar 실습 14

라즈베리파이4 스마트홈 서버 프로그램 실습 15

라즈베리파이4 스마트홈 안드로이드 앱 설명 16

 

 

 

가스 타이머 각 부 명칭

 

 

본 실습에서 사용하는 가스 타이머의 특징은 아래와 같다.

 

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);	
	
}

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩