[Juo-Factory]

[Juo-Factory] D.I.Y Smart Home System 1편 - 스마트 센서(하드웨어)

BaeJuo 2019. 4. 2. 14:41

D.I.Y Smart Home System 1편

"스마트 센서(하드웨어)"

프로젝트에 대한 내용은

[Plan] Smart Home System

https://juo-factory.tistory.com/11

참조

 

센서는 가장 기본적인 온습도 센서를 제작한다.

 

 

0. 준비물

Wemos D1 mini (아두이노 메인보드, WIFI 가능)

$2.25

DHT22 온습도 센서

(가지고 있던 것 사용. 안 비쌈.)

18650 충전 배터리 및 배터리 케이스

4,500원 + $0.48

배터리 충전 모듈

1,500원

(배송비는 포함 안된 가격이다.)

 

이 부품 이외에 만능 기판을 사용했다.

LED를 달아 상태도 체크하고

스위치를 이용해 온오프도 하고

기기 리부팅 버튼도 달려고 했으나...

생각보다 너무 복잡해져서 패스~

(다음에 더 완벽히...)

 

그럼 먼저 완성된 모습부터?

 

 

드디어 3D 프린터가 빛을 발하는구나 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ 비싼 놈 ㅠㅠㅠ

사진으론 보이지 않지만 아두이노 보드와 접해있는 아래쪽 짧은 면에는 배터리 충전용 단자가 있다.

그럼 제작 과정을 하나하나 차근히 따라가 보자!

 

1. Wemos D1 mini 및 만능 기판 핀 작업

먼저 아두이노 메인 보드와 만능 기판에 핀 작업을 했다.

처음으로 납땜 보조제를 사용해봤는데... 왜 진작 사용하지 않았을까? ㅋㅋㅋ 신세계 ㅋㅋㅋ

 

딱 사이즈에 맞게 기판을 자르고 핀 작업을 했다.

기판에 보드를 꽂으면 아름다운 모습으로 장착된다... (사진은 없네... ㅎㅎ)

 

 

2. 배터리 충전 모듈 테스트

처음으로 충전식 배터리를 사용하기에 작업에 앞서 테스트 작업이 필요했다.

배터리 모듈에 배터리를 연결하고 LED 모듈을 출력 단자에 연결해 테스트를 진행했다.

 

 

테스트는 성공적! 연결만 잘하면 된다 ㅎㅎ

 

 

3. 기판에 배터리 모듈 연결

기판에 배터리 모듈을 연결했다.

기판의 홀 간격과 배터리 모듈의 홀 간격이 달라 핀을 사용할 수가 없었다.

그래서 그냥 라인으로 연결하고 앞뒤로 납땜을 해 고정시켰다.

(이 작업은 후에 엄청난 나비효과로 다가온다... 제대로 할걸 ㅠㅠㅠ)

 

먼저 배터리 연결 라인을 먼저 기판에 고정시켰다.

 

출력 라인 및 기타 라인은 엔클로저 단계 이후에 살펴보자.

 

4. 엔클로저

큰돈을 투자한 것이 이 날을 위한 것이었던가 ㅠㅠ

매번 엔클로저를 찾다 찾다 지쳐 포기했던 나날들 ㅠㅠ

이제는!! 만들어 쓴다!!

 

구글 스케치업 프리 버전을 이용해 STL 파일을 만들고

직접 3D 프린터를 이용해 멬멬!!

 

초기 설계는...

방바닥에 나뒹구는 종이를 가져다가....

모나미 볼펜으로 지익지익...

15cm짜리 자를 들고...

부품 하나하나 치수를 재어서...

다시 지익지익.....

(와.. 진짜 대충 설계했네....)

 

나름 튼튼하게 만든다고 외장 두께를 2mm로,

슬라이딩 방식의 뚜껑까지!

내부 파티션도 잘 나눴고....

스케치업 도면

회사에서 구글 스케치업을 사용해본 경험이 있는 터라 어렵지 않게 설계할 수 있었다.

이 파일을 STL파일로 저장한 뒤 슬라이싱 프로그램으로 실행시키면

프린팅에 대한 자세한 정보를 알 수 있다.

 

자동으로 서포터를 만들어주고

 

바닥이 뜨지 않게 밑판 작업을 하도록 선택한다.

밑판 작업을 선택했음에도 불구하고 히팅 베드(프린팅 되는 베드에 열선이 깔려 있는 베드)가 아니다 보니,

그리고 물체의 크기가 좀 크다 보니 바닥이 뜨는 현상이 발견됐고,

이 때문에 한 번은 프린팅 도중 물체가 베드에서 떨어져 나가는 현상이 발생 ㅠㅠ (아까운 내 재료들 ㅠㅠ)

두 번째 프린팅 때도 동일한 문제가 발생했지만... 다행히 베드에서 떨어지지는 않았다.

 

하지만 바닥에서 뜬 부분은 높이가 다른 곳에 비해 낮게 출력되었다. 

이것은 프린팅 도중에 바닥이 뜨면서 높이가 변하게 돼

뜬 높이만큼 낮게 출력이 완료된 것이다.

 

아마 다음에도 동일한 문제가 프린팅 중에 발생할 것으로 생각된다... 얼른 해결을 해야겠지 ㅠㅠ

 

이렇게 본체 작업은 총 3시간 11분의 시간이 소요되고 41.47g의 필라멘트가 사용됐다.

(중간에 한 번 실패한 것은 빼고... ㅠㅠ)

 

다음은 뚜껑!

뚜껑은 슬라이딩 레일에 맞게 2mm 두께로 만들고

내부에 들어갈 온습도 센서가 외부 공기와 잘 접촉하기 위해

환기 구멍을 만들어줬다.

뚜껑은 총 1시간 1분의 시간이 소요되고 15.91g의 필라멘트가 사용됐다.

 

엔클로저를 제작하는데 총 소요시간 4시간 12분

50g이 안 되는 양의 필라멘트가 들어갔다.

 

서포터가 생각보다 촘촘해 제거하는데 상당히 오랜 시간이 걸렸다.. ㅠㅠ

(토요 예능과 함께 서포터 제거)

충전 USB 연결 라인도 잘 완성됐고!

 

슬라이딩 뚜껑 레일도 잘 나왔고!

 

서포터를 모두 제거하고.. 

 

뚜껑은... 너무 딱 맞게 출력되었는지 빡빡하게 들어갔다.

한쪽 모서리를 칼로 깎아 부드럽게 들어갈 수 있게 만들었다.

 

그렇게 해서,

가로 5.8cm

세로 9cm

높이 2.cm

엔클로져 완성!

엔클로저 완성

이제 내부를 채우기만 하면 된다.

 

5. 내부 채우기 및 배선

기판에 배선 마무리하는 작업.

사진과 함께 알아보기 쉬운 이미지로 보면 다음과 같다.

(사진의 회로도는 수정 전 사진이라... 이미지를 보시는 게)

회로도

먼저 배터리 모듈에서 출력 +,- 단자를 메인 보드에 5V, GND에 연결한다.

다시 GND에서 선 하나를 연결해 온습도 센서 '-' 핀에 연결한다.

온습도 센서 '+' 핀은 3V3 핀에 연결해 전원을 공급해 준다

온습도 데이터는 D7(GPIO 15)에 연결한다.

 

마지막으로 Wemos D1 mini는 소모 전력을 최소화 하기 위해 deepSleep 모드를 지원한다.

이때 deepSleep 모드에서 다시 wake up을 하기 위해 

D0 핀에서 RST 핀으로 신호를 주어 다시 동작을 하게 한다. 

그래서 D0와 RST 핀을 연결한다.

 

7. 완성

이제 완성된 모든 부품을 엔클로저 안에 위치시키고 뚜껑을 닫으면 완성.

약간의 문제는 배터리 모듈을 기판에 정확하게 장착하지 못해

모듈을 건드릴 때마다 전원이 들어왔다 나갔다를 반복하게 된다. ㅠㅠㅠㅠ

(이 현상 때문에 상당히 오랜 시간 기판을 수정)

 

어쩔 수 없이 전원이 들어오는 상태로 만들어 놓은 뒤 조심히 장착..!!

재빨리 뚜껑을 닫아 완성!!

 

그 완성된 모습을

긴 말 필요 없이 사진으로 ㄱㄱ

 

 

엔클로저 내부

 

뚜껑 장착
완성!!!
충전 시 모습

 

8. 후기

장치의 UI적인 요소를 모두 뺀 탓에

지금 장비가 켜져 있는지 꺼져있는지~

충전 중인지 완충 상태인지~

전혀 알 길이 없다는 거? ㅎㅎ

 

그리고 장치에 문제가 생겼을 때

직접 엔크로저를 열어 보드 자체를 리셋시켜야 한다는 점?

 

내부 펌웨어 업그레이드 시

엔클로저를 열고 장치를 빼서 업데이트를 시켜야 한다는 점?

 

와이파이도 처음에 입력한 와이파이 정보로만 연결된다는 점?

(이건 소프트웨어적 이슈라 소프트웨어 편에서 더 다루도록 하겠다.)

 

등등등... 아직 많은 문제점이 있지만!!

그래도 하나 완성했다는 엄청난 희열이...

 

금요일 밤, 사전 작업과

토요일 10시부터 시작해 다음날 새벽 4시에 끝나는 엄청난 작업시간

(소프트웨어 작업 포함)

 

그.래.도

완성은 했잖아? ㅎㅎ

 

테스트 결과 매우 잘 동작한다.

데이터베이스에 데이터도 잘 쌓이고 있다.

배터리는 완충을 안한 상태인데 3일째 잘 동작 중에 있다.

데이터베이스 (type=1:온도,2:습도)

 

 

 

아두이노 보드에 들어간 소프트웨어 및 개인 서버와 DB(데이터베이스)는 

"D.I.Y Smart Home System 2편 - 스마트 센서 (소프트웨어)"

에서 자세히 다루도록 하겠다.