프로젝트

나도 메이커! 메이커스 여러분들의 작품/프로젝트를 공유하는 공간입니다.

나만의 전기 방석 만들기

2016-03-17 17:26:45

안녕하세요!

 

노랑 병아리입니다.

처음으로 프로젝트를 게시해보네요! 

이번에 만들어 본 프로젝트는 따뜻한 봄이 오기 전까지 유용하게 쓸 수 있는 전기 방석으로, 프로젝트 이름은 뜨끈뜨끈입니다.

 

 

 

 

 

프로젝트 개요

 

⓵ 우선 열선패드에 온도 센서(tmp36)을 부착하여 온도를 측정합니다.

 

 2개의 버튼을 이용해 저온/고온의 온도를 설정합니다.

저온버튼이 눌릴 경우 55°C로 설정되며, 열선패드의 온도가 55°C를 초과할 경우 2분간 전원 공급을 중단합니다.

열선패드의 전원 공급을 중단한만큼 온도가 내려가겠죠?

이와 같은 방식으로 고온버튼이 눌릴 경우 80°C로 설정됩니다.

 

⓷ lcd패널에 방석의 실시간 온도와 설정되어진 온도(저온/고온)를 출력합니다.

 

기능이 간단한 만큼 실제 구현하는 방법도 어렵지 않습니다!

자 그럼! 본격적으로 메이킹 방법을 공유해볼까요?

 

 

 

 

 

관련 튜토리얼

 

전기방석 프로젝트에서는 lcd패널, 가변저항, 버튼을 사용합니다.

프로젝트를 진행하면서 코코아팹 학습 튜토리얼에서 많은 도움을 받았는데요~~

여러분들도 학습 튜토리얼을 통해 응용 프로젝트에 도전해보세요 ^^

 

- LCD에 문자 출력하기

- PUSH 버튼으로 LED 제어하기

- 4채널 모스펫 사용하기

 

 

 

 

부품 목록

 

 

NO 부품명 수량 상세 설명
1 오렌지보드 1 아두이노 UNO
2 LCD패널 1  
3 가변 저항 1  
4 버튼 2 PUSH 버튼
5 TMP 36 온도센서
6 4채널 모스펫 1 릴레이 소음 대용
점퍼케이블  30개 이상  
8 외부 전원 1 9v 1.5A 이상
9 열선패드 3  
10 브레드 보드 2  
11 방석 1 열선 패드를 넣어 둘 방석

 

부품명 오렌지보드 열선패드 4채널 모스펫 PUSH 버튼 TMP36
파트

 

 

 

 

하드웨어 메이킹 

 

<열선패드 : Operating Voltage: 5V DC, Operating Current: ~600mA (~8.3Ω)>

열선패드의 전류는 개당 600mA으로 아두이노 한 핀의 출력 전류인 40mA로 제어하기에는 적합하지 않습니다.

그렇기 때문에 외부 전원을 공급하고, 전자 스위치를 이용하여 그 외부 전원를 on/off시켜줍니다.

전자 스위치는 크게 릴레이와 모스펫이 있습니다.

이 프로젝트에서는 릴레이의 딸깍거리는 소음을 방지하기 위해서 모스펫을 사용했습니다!

4채널 모스펫 모듈의 가격이 부담되시는 분들은 릴레이를 사용하셔도 무방합니다! 단 회로가 달라지겠죠? ^^

 

 

 

 

브레드 보드 레이아웃

 

 

 

 

소스코드

/*
 제목 : 열선 패드를 활용한 전기 방석 만들기.
 내용 : 노랑색 스위치를 누르면 낮은 온도로 설정이 되고,
       빨강색 스위치를 누르면 높은 온도로 설정이 되는 
       따뜻한 전기 방석을 만들어 봅시다. 
*/

// LCD를 쉽게 제어하기 위한 라이브러리를 추가합니다.
#include <LiquidCrystal.h>

// 오렌지보드의 3, 4, 10, 11, 12, 13번핀을 사용하도록 지정된 lcd객체를 생성합니다.
LiquidCrystal lcd(3, 4, 10, 11, 12, 13);

// tmp36온도 센서를 A0핀으로 설정합니다.
int tmpSensor = A0; 
// 열선 패드를 각각 5,6,7번 핀으로 설정합니다.
int heatingPad1 = 5;
int heatingPad2 = 6;
int heatingPad3 = 7;
// 약한 온도 설정을 위한 노랑색 스위치를 3번 핀으로 설정합니다.
int btnLow = 8; 
//  높은 온도 설정을 위한 빨강색 스위치를 4번 핀으로 설정합니다
int btnHigh = 9;

// 저온 설정일 때의 최고 온도 값을 저장합니다.
const int tmpLow = 55;
// 고온 설정일 때의 최고 온도 값을 저장합니다.
const int tmpHigh = 80;
// 현재 설정 온도 값을 나타내는 변수입니다.
int tmpSetting = 0;

// tmp36센서가 측정한 현재 온도를 저장할 변수입니다.
float tmpCurrent;
// tmp36센서값으로 읽어온 수치를 계산하기 위해 임시적으로 필요한 변수입니다.
float tmpTemp;

// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {       
    // 열선 패드1을 사용하기로 설정합니다. 
    pinMode(heatingPad1, OUTPUT);
    pinMode(heatingPad2, OUTPUT);
    pinMode(heatingPad3, OUTPUT);
  
    // 스위치가 연결된 핀의 모드를 INPUT_PULLUP 상태(초기 로직레벨을 HIGH로 설정)로 설정합니다.
    // 설정된 디지털 핀은 아래와 같은 값을 반환합니다.
    // 스위치가 열려있다면 (누르지 않은 상태) HIGH
    // 스위치를 닫혀있다면 (누른 상태), LOW
  
    // 저온 설정 스위치입니다.
    pinMode(btnLow, INPUT_PULLUP);  
    // 고온 설정 스위치입니다.
    pinMode(btnHigh,INPUT_PULLUP); 
    // 설정된 온도(저온/고온)을 저장해둘 변수입니다.
    tmpSetting = 0;
  
    // 16개의 셀과 2개의 줄을 사용하도록 설정합니다.
    lcd.begin(16,2);
    // LCD의 모든 텍스트를 제거합니다.
    lcd.clear();
}

// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {   
    // tmp36센서를 이용하여 아래와 같이 온도를 계산합니다.
    tmpTemp = (float)analogRead(tmpSensor)*5/1024;
    tmpCurrent = 100*(tmpTemp-0.5);

    // 저온,고온 버튼이 눌러짐에 따라 설정 온도를 다르게 저장합니다. 
    if (digitalRead(btnLow) == LOW) { 
        tmpSetting = tmpLow;
    }
    if (digitalRead(btnHigh) == LOW) {
        tmpSetting = tmpHigh;
    }

    // 각 버튼이 눌러짐에 따라 lcd패널에 다른 텍스트를 출력합니다.  
    // 설정된 온도가 존재하지 않을 때 lcd패널에 출력되는 메시지입니다.
    if (tmpSetting == 0) {            
        // 0번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,0);       
        // 메시지를 출력합니다.  
        lcd.print(" WELCOME. ");    
        // 1번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,1);         
        lcd.print(" PRESS BUTTON! ");   
    }
    // 설정 온도가 저온일 경우에 lcd패널에 출력되는 메시지입니다.
    else if(tmpSetting == tmpLow) {  
        // 0번째 줄 0번째 셀에 입력합니다. 
        lcd.setCursor(0,0);      
        lcd.print("SETTING : LOW   ");
        // 1번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,1);        
        // 현재 측정되는 온도 수치를 출력합니다.  
        lcd.print("CURRENT : ");   
        lcd.print(tmpCurrent);          
    }
    // 설정 온도가 고온일 경우 lcd패널에 출력되는 메시지입니다.
    else if(tmpSetting == tmpHigh) {        
        // 0번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,0);          
        // 메시지를 출력합니다.
        lcd.print("SETTING : HIGH"); 
        // 1번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,1);          
        // 현재 측정되는 온도 수치를 출력합니다.
        lcd.print("CURRENT : ");     
        lcd.print(tmpCurrent);
    }
    // 방석의 온도를 조절해주는 코드입니다.
    // 현재의 온도 값이 설정 값보다 낮다면 열선 패드에 전원 공급을 지속합니다.
    if (tmpCurrent <= tmpSetting) {
        // 열선패드에 전원을 공급합니다.
        digitalWrite(heatingPad1,HIGH);
        digitalWrite(heatingPad2,HIGH);
        digitalWrite(heatingPad3,HIGH);
    }
    // 현재의 온도 값이 설정 값보다 높다면 열선 패드에 전원 공급을 중단합니다.
    else if ((tmpSetting != 0) && (tmpCurrent > tmpSetting)) {
        // 열선패드에 전원 공급을 중단합니다.
        digitalWrite(heatingPad1,LOW);
        digitalWrite(heatingPad2,LOW);
        digitalWrite(heatingPad3,LOW);

        // lcd의 모든 텍스트를 제거합니다.
        lcd.clear();
        // 0번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,0);    
        // 현재 측정되는 온도 수치를 출력합니다.    
        lcd.print("CURRENT : ");     
        lcd.print(tmpCurrent); 
        // 1번째 줄 0번째 셀에 입력합니다.
        lcd.setCursor(0,1);         
        lcd.print("     OVER ");
        lcd.print(tmpSetting);
        lcd.print("C");    
          
        // 열선패드의 온도를 낮추기 위해 2분간 전원 공급을 중단합니다.
        delay(120000);
    }
    // 2초간 대기합니다. 
    delay(2000); 
    // lcd의 모든 텍스트를 제거합니다.
    lcd.clear();  
}

 

 

 

제작과정

 

오렌지보드, 열선패드, 버튼 등 필요한 회로를 연결하고 열선패드에 tmp36 온도센서를 부착합니다.

(셀로판 테이프를 이용했습니다)

 

         

 

 

 우드락을 20x20 크기로 잘라 오렌지보드 및 모스펫 모듈을 거치해둘 판을 제작합니다.

 체크무늬 시트지를 이용해 꾸며주었답니다.

 

⓷ 미리 준비해둔 방석에 열선 패드가 겹치지 않도록 고정시킵니다. 

 

제작 완료입니다! 

이제 적당한 위치에 방석을 놓아두고, 오렌지보드와 모스펫에 전원을 연결하여 사용하시면 됩니다!

 

 

 

실행 과정

 

 

 

 

동영상

 

 

 

 

마치며...

 

전기 방석 메이킹을 시작했던 때는 다소 쌀쌀해서 유용하겠다는 생각이 들었는데요~

아쉽게도 벌써 따뜻한 봄날씨가 되었네요 ^^

그렇지만 전기방석을 스스로 만들어보면서 재미도 느끼고 유익했던 순간들이었습니다~

다음에는 보다 신선한 아이디어로 돌아오겠습니다~ 감사합니다 ^^

 

노랑병아리

profile

만두 2016-03-17 17:36:01

닉네임이랑 쿠션캐릭터랑 맞추신건가요?ㅎㅎ 넘나 귀엽네요...

profile

쿨리오76 2016-03-17 17:48:55

엉덩이 데는건 아니겠죠? ㅋㅋ ^^

profile

원기옥 2016-03-17 18:06:57

나중에 다양하게 응용해 볼 수 있을 듯 해요.
작게 만들어 건전지 넣고 옷에 넣고다니면 좋겠다. ㅋ

profile

노랑병아리 2016-03-17 18:25:10

클리오76) 생각보다 온도가 높게 올라가서 매우 뜨끈뜨끈하답니다~ㅎㅎㅎ 그치만 화상입을정도는 아닐거예요....(조심하세요ㅎㅎㅎ)

profile

노랑병아리 2016-03-17 18:26:18

만두) 앗 예리하시네요....ㅎㅎㅎ

profile

제임스짱 2016-03-18 12:02:34

우와~ 다음번엔 열선잠바를 부탁합니다~ ^^

profile

노랑병아리 2016-03-18 15:29:26

원기옥) 그럼요~~ 겨울철엔 핫팩보다도 유용할 것 같아요! ㅎㅎ 좋은 의견 감사합니다^^

profile

노랑병아리 2016-03-18 15:31:27

제임스짱) 열선패드 개수를 늘리면 충분히 가능하다고 생각합니다. ㅎㅎ 좋은 아이디어 감사합니다^^~~

profile

유희라 2016-03-18 16:19:30

뜨끈뜨끈한 프로젝트 공유 감사합니다.^^

profile

알파고 2016-03-18 16:31:44

노랑병아리 방석 넘나 귀여워서 탐나네요 ㅋㅋ

profile

돈주앙 2016-03-23 19:15:05

너무너무 잘 만드셨어요!! 귀엽고 딱 제 스타일이예요^^ㅎㅎㅎ

profile

박동현 2016-03-28 12:59:11

이번에 온열패드를 이용해서 작품을 만드려고 하는데 모스펫 모듈을 이용하면 온도가 몇도까지 올라가나요 ??
그리고 모스펫에 사용된 건전지는 어떤것을 사용했는지 궁금해요 ㅠㅠ
마지막으로 모스펫에도 전력을 주고 오렌지보드에도 다른 전력을 주셨나요 ??

profile

노랑병아리 2016-03-29 16:45:30

1. 열선패드는 최고 80도까지 올라가는 것으로 알고있습니다.
2. 저는 건전지를 사용하진 않았구요! 9v 1.5A power 어댑터를 사용했습니다~
3. 모스펫에도 전원 공급을 해주고, 오렌지 보드에도 전원을 공급합니다~!

profile

박사하자 2016-04-21 00:10:32

선만 잘 정리하면 충분히 컴퓨터에 연결해서 사용할수 있겠네요!

profile

공민석 2016-04-25 15:22:51

프로젝트 잘 보고 갑니다 ^^

profile

csm 2016-05-10 09:57:47

아.. 전기 방석 필요했었는데.. 너무 잘 만드셨네요.

profile

rootlee 2016-05-26 16:29:08

프로젝트 잘봤습니다 ^^
근데 혹시 모스펫에는 어떻게 전원을 공급하셨나요??

profile

돈주앙 2016-05-31 09:10:35

rootlee 님 제가 개발하진 않았지만, 저 열선패드의 경우 5V가 필요하기에 외부 전원으로 일반 건전지를 사용한걸로?
예상됩니다.. 사용하시려는 제품의 적정 전류를 확인하시고 그에 맞는 전류를 주시면 됩니다.

profile

김대현 2016-05-31 16:39:36

방석이 너무 귀엽네용

profile

김흥식 2016-07-20 15:04:30

프로젝트 잘 봤습니다.

profile

정상훈 2016-10-11 14:06:14

유용한 정보입니다.

profile

최용혁 2017-05-28 20:59:20

신선하네요

profile

최용혁 2017-05-28 20:59:29

감사합니다

profile

열람실칸막식 2017-10-13 16:52:32

올려주신 정보는 잘 봤습니다. 궁금한 점이 생겼는데 건전지로도 전원을 충분히 공급할 수 있을까여?(무선으로 만들 수 있는지 궁금해서 여쭤봅니다.)

profile

열람실칸막식 2017-10-13 16:58:26

모스펫에 전원 공급을 건전지로 가능한지 여쭤보고 싶습니다.

profile

리아르 2017-11-08 23:42:28

모스펫을 어디서사는건가요 흠..그것만 못구해서

profile

밍밍 2017-12-07 12:03:12

위에 나온거랑 똑같이 연결하고 코드도 똑같이 했는데 안되는건 뭘까요..
lcd에 글씨가 제대로 안나오네요

profile

하늘 2018-01-21 10:02:38

정말 좋아 보이네요

profile

카카오팹 2019-05-15 12:41:47

회로 그림대로 다 구성한 뒤에 모스펫모듈에 전원공급을 했는데 반응이 없습니다. 모스펫이 작동을 안해서 회로 자체가 작동을 안하는데 어떻게 해야하죠