본문 바로가기

바른 생각 바른 글

스마트홈 실습 시스템 소프트웨어 수정

반응형

 

 

일을 잘하는 방법은 별 것 없다. 아주 작은 부분으로 나누고 순서와 절차를 숙지하여 제대로 하나하나 지속적으로 실행하는 것뿐이다. 우리 생각은 행동보다 백만 배는 더 빨라서 일일이 적는 것을 싫어하고, 사이사이 빠뜨린 것들을 생각하지 않고, 제대로 된 과정과 결과를 꼼꼼히 정리하지도 않는다. 물론 그렇게라도 실행하면서 시행착오를 통해 배우기도 하지만 일을 아주 잘하는 수준으로 올라가는 길과 멀리 떨어져 있다. 방법을 안다고 해도 제대로 행동하지 않으면 그것은 아는 게 아니다. 사실 너무 많이 알아서 문제를 만든다. 똑똑한 사람이나 많이 배운 사람들이 성공하거나 부자가 되지 못하는 이유다. 

 

언제 봤는지 기억도 나지 않을 만큼  오래 지나서 다시 만들었다. 회로도도 없고 필 할당, 소프트웨어도 최신 버전이 없다. 다시 거버 파일을 찾아 송부하고, 기억을 더듬어 프린트 한 회로도를 찾아 GPIO 핀 할당 맵을 그린다. 디지털 멀티미터로 모든 핀을 검사하고 제대로 연결을 확인한다. 도어록은 새로 구매한 제품과 연동이 되지 않는다. 라즈베리파이 GPIO 핀에서 사용하지 않는 핀을 찾는다. 3.3v 동작하는 1ch 릴레이를 구매해 제어신호를 연결하여 마치 제대로 동작하는 것처럼 보이게 만든다. 각 구성품 프로그램을 동작시켜 이상 없을 때까지 테스트를 해야 한다. 지루하지만 원래 즐거운 시간보다 훨씬 더 긴 시간을 정체해 있다고 느끼는 시간을, 재미없고 단조로운 일을 하며 보내야 한다. 매미가 그렇다.  

 

아직 남아있는 gpio12번 물리 번호 32번 핀에 릴레이를 On, Off 하여 도어록 제어신호로 사용한다. 릴레이는 low-enable 동작한다. 도어록 제어 프로그램을 수정하고, 스마트홈 서버 프로그램을 수정하여 컴파일 해서 제대로 동작하는지 확인하는 일이 남았다. 혹시 안 되더라도 다시 수정할 여지는 남겨 둔다. 굿 럭!

 

수정 코드 home-door.c

 

#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <wiringPi.h>

#define DOOROPEN 12	// BCM_GPIO 23 - OUT
#define DOORCLOSE 12	// BCM_GPIO 23 - OUT

void Bpluspinmodeset(void);
void doorOpen(void);
void doorClose(void);

int main (void)
{
	//if(wiringPicheck()) printf("Fail");
	wiringPiSetupGpio();
		
	Bpluspinmodeset();	
	
	int i = 1;
	while(1)
	{		
		doorOpen();	
		printf("%s\n", "Door open");
		delay(3000);
		doorClose();	
		printf("%s\n", "Door closed");
		delay(3000);
	}
  
  return 0 ;
}

void doorOpen()
{
	digitalWrite(DOOROPEN, 0);
	delay(100);
	digitalWrite(DOOROPEN, 1);		
}

void doorClose()
{
	digitalWrite(DOOROPEN, 0);
	delay(100);
	digitalWrite(DOOROPEN, 1);		
}

int wiringPicheck(void)
{
	if (wiringPiSetup () == -1)
	{
		fprintf(stdout, "Unable to start wiringPi: %s\n", strerror(errno));
		return 1 ;
	}
}

void Bpluspinmodeset(void)
{
	pinMode (DOOROPEN, OUTPUT);
}

 

혹시라도 재수가 좋아 모든 것들이 잘 동작하면 센서 연결 케이블을 발주하고, 케이스를 주문하고, 실습 시스템을 동작하기 위해 필요한 전원과 케이블 여러 가지를 함께 모아 완성하면 된다. 보기에 단순한 것들은 단지 보기에만 그렇다. 하나의 단순함을 구현하기 위해 보이지 않는 곳에서 몇 배에 달하는 수정과 극도의 복잡함이 감추어져 있다. 바로 그런 것을 해결하는 능력을 갖추느냐의 문제가 바로 성공하든지 실패하든지 결과를 결정한다. 

 

배우고 익히는 시간의 3배 시간을 구현하고 조치를 취하고 생산하는 데 쓰기로 한다. 남자는 시간을 낭비했다고 생각한다. 쓸데없는 것들을 배우느라 너무 허비했다고 생각한다. 물론 자기에게 도움이 되는 자료를 배우는 일은 중요하지만 단지 중요하기 때문에 재미있기 때문에 그것에 많은 시간을 쓰는 일은 자기 삶에서 낭비가 된다. 무엇인가 더 많은 것을 만들고, 더 많이 팔고, 더 많이 제공하는 일을 했어야 했다. 지난 시간은 늘 안타깝기 마련이다. 

 

 

아름다운 IoT 스마트홈 제어 시스템

 

 

 

 

 

 

반응형

캐어랩 고객 지원

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

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

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

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

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

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

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

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

카카오 채널 추가하기

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

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

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

캐어랩