아두이노 스마트홈 만들기 - adu-ino seumateuhom mandeulgi

코코아팹 IoT 스마트 홈 키트 만들기

https://kocoafab.cc/product/smarthome

1. 조도센서를 이용한 창문 및 조명 제어

- 날이 어두워지면 창문을 내리고 조명 켜기

아두이노 스마트홈 만들기 - adu-ino seumateuhom mandeulgi

- 날이 밝으면 창문을 열고 조명 끄기

2. 온습도 센서를 이용한 에어컨 제어

-불쾌지수가 높아지면 에어컨 켜기

3. 장애물 적외선 센서를 이용한 TV 제어

- TV에 가까이 가면 TV끄기

- TV에서 멀어지면 TV켜기

<만들면서 어려웠거나 주의할 점>

LCD

  • 0x27로 변경

  • 0x3F가 기본인데 이걸로 설정하면 작동이 안됨

서보모터

  • 밝으면 블라인드 열기

    • if (cdsVal > 250) {

      • 250정도로 해야 그냥 밝기에서도 인식하여 작동함

LED램프

  • pinMode(lv1, OUTPUT);  를 추가하니까 밝기가 밝아짐.

음악소리 다르게 하는 방법

  • int notes[] = {4186, 6271}; 에서 'notes'를 다른 이름으로 바꾸면 됨. 그리고 아래 부분에서도 이걸로 써줌.

  • int가 이름을 정의해주는 함수값인 것 같음.

LCD에 온도 습도 나오게 하는 방법

  • LiquidCrystal_I2C TV(0x27, 16, 2);  // I2C LCD를 TV라는 이름으로 선언

    • TV는 이름을 정해준 거임.

was not declared in this scope 오류 메시지 뜰 때

  • 정해준 함수 이름 대소문자가 다른지 확인

온도, 습도 이모티콘은 "emotin.h"파일에서 공급받음. 코코아팹 미세먼지 소스파일에서 "emotion.h"와 아래것만 가져다 썼는데 잘됨.

  • lcd를 TV로 바꿔서 적용했음.

  • void setup에 아래것 추가

    • TV.createChar((byte)0, temp);

    • TV.createChar(1, humi);

    • TV.createChar(3, C);

  • void loop에 아래것 추가

    • byte temp = dht.readTemperature(); 

    • byte humi = dht.readHumidity();

    • lcd.setCursor(0, 1); 

    • lcd.write((byte)0); 

    • lcd.print(" "); 

    • lcd.print((int)temp); 

    • lcd.write(3); 

    • lcd.print(" "); 

    • lcd.write(1); 

    • lcd.print(" "); 

    • lcd.print((int)humi); 

    • lcd.print("%");

<느낀 점>

스마트 홈 뿐만 아니라 미세먼지 측정기, RC카도 만들었습니다. 

아두이노는 3년 전쯤에 접하고 브레드보드에 끼우는게 조잡해서 멀리했었는데, 역시 다시 시작할 때는 브레드보드 때문에 내가 멀리했었구나를 여실히 느끼게 해주었습니다. 

하지만 결과물을 보니 뿌듯하고, 아두이노 활용도가 높아 많이 사용하는구나를 느꼈습니다. 

아두이노에 3일 정도 빠져있다보니 브레드보드의 조잡성 보다는 확장성이라는 장점을 더 느꼈습니다.

그리고 아두이노 코드 소스에 대해서도 공부할 수 있는 기회가 되었습니다.

하지만 초등에서 하기에는 아주 많이 무리가 있네요. 어른들도 브레드보드 끼우고 오류를 찾는데 시간이 걸립니다. 

전선 연결하는 그림을 보는 순간 '뜨악!'합니다.

하지만 3개 정도 만들고 나면 '아~'하고 잘 만들어진 시스템이구나를 느낍니다. 

그래도 여전히 끼우는 구멍이 작고, 전선들이 너무 촘촘히 있어서 복잡한 느낌이 듭니다.

그래서 자석보드나 다른 호환 보드도 해봤는데 장점을 극복하면 단점도 발생했습니다.

물리적인 건 그렇고, 소스도 10번 이상 직접해보면 쉽지만 10번 하기까지가 매우 어렵습니다. 

어렸을 적 GW-Basic배울 때처럼 예제를 10번이상 해야 이해가 될까 할 정도입니다.

그래도 일단 예제에 알맞게 완성을 하고 이곳저곳 응용을 해보니 재미가 생깁니다.

처음에는 설명서, 홈페이지 안내문, 재료가 맞지 않아 고구마를 먹은 듯 답답했는데, 어느 순간 소프트웨어는 창의성을 기르는 것이니까 굳이 설명서에 맞게 하지 않아도 되겠다는 생각이 들었습니다. 

그리고는 제 마음대로 이것저것 만져보니 잘 되네요.

공대를 갔으면 재미있게 일했겠다라는 생각이 들었습니다. 

이것저것 조합하고 만들면서 잠도 안자고 몇시간을 앉아있었으니까요. 

키트 상자에 있던 문구가 인상깊었습니다.

'Do not study it. Just enjoy it.'

아두이노는 초등에 적용하기 어려우니 잘 놀았다고 생각하고, 다시 완성형 로봇의 세계로 고고~!