Home IoT Hub Series · 01
우리집 IoT 허브 - ESP8266 하나로 집에 두뇌 달기

왜 시작했냐면
거실 온도는 핸드폰 앱으로 보고, 현관 센서는 따로 부저 달고, 가스레인지 껐는지는 주방 가서 눈으로 확인하고. 집 안 정보가 죄다 흩어져 있었다.
"이 내용을 작은 화면 하나에 모두 모을 수 있을까요?"
그래서 시작했다. ESP8266에 OLED 하나 달고, 20개의 메모리 슬롯을 파서 센서 값을 죄다 밀어넣는 작은 두뇌. 이름은 우리집 IoT 허브. 앞으로 iothub.co.kr에 시리즈로 연재할 예정이다.
컨셉: 두뇌 먼저, 센서는 나중에
보통 IoT 프로젝트는 센서부터 산다. DHT22 사고, PIR 사고, 릴레이 사고... 그런데 센서만 쌓아두고 정작 어디에 연결할지 몰라서 방치하는 경우가 많더라.
우리는 반대로 간다.
1. 먼저 "두뇌"를 만든다. (ESP8266 + OLED) 2. 두뇌는 센서가 없어도 단독으로 동작합니다. (웹 서버 + OLED 스크롤) 3. 센서 노드를 하루에 하나씩, 두뇌에 갖다 꽂는다.
이 방식의 장점은 처음부터 작동하는 장치가 있다는 점입니다. 첫날 저녁부터 OLED가 켜지고, 아직 --로 비어 있는 슬롯을 하나씩 채워 가면서 시스템을 확장할 수 있습니다.
본체 준비물과 가격 (두뇌 한 세트)
| 부품 | 가격 | 비고 |
|---|---|---|
| ESP8266 (NodeMCU / Wemos D1 Mini) | 2,500원 | AliExpress 기준 |
| SSD1306 128×64 OLED (I2C) | 1,800원 | 0.96인치 흰색 |
| 피에조 부저 | 300원 | 3~5V 능동형 |
| 점퍼 와이어 10개 | 500원 | 암-암 |
| 브레드보드 | 1,500원 | 없어도 됨 |
| Micro USB 케이블 | 1,000원 | 전원 + 업로드 |
| 본체 합계 | 약 7,600원 |
어떤 정보를 모을 건가
20개 슬롯은 일반 가정집 기준으로 미리 정했습니다. 실제 설치 환경에 따라 슬롯 구성은 얼마든지 조정할 수 있습니다.
| # | 측정 항목 | 값 예시 | 측정 방법 | 센서 가격 |
|---|---|---|---|---|
| 1 | 거실 온도 | 24.5℃ | DHT22 | 2,000원 |
| 2 | 거실 습도 | 58% | (1번과 동일) | — |
| 3 | 바깥 온도 | 18.0℃ | DHT22 | 2,000원 |
| 4 | 에어컨 상태 | OFF | IR 송신 피드백 | VS1838B+LED 약 600원 |
| 5 | 보일러 가동 | OFF | DS18B20 (배관) | 1,500원 |
| 6 | 가스레인지 사용 | 0 | K타입 열전대 | 3,000원 |
| 7 | 가스 누출 ⚠ | 0 | MQ-5 가스 센서 | 1,500원 |
| 8 | 화재 감지 ⚠ | 0 | 화염 센서 | 1,000원 |
| 9 | 정문 열림 ⚠ | 0 | MC-38 리드스위치 | 800원 |
| 10 | 현관문 잠금 | 1 | 도어락 상태 센서 | 2,000원 |
| 11 | 거실 조명 | OFF | 조도센서 or 릴레이 | 1,500원 |
| 12 | 냉장고 온도 | 3.5℃ | DS18B20 방수형 | 2,000원 |
| 13 | 실내 CO2 | 620ppm | MH-Z19B | 20,000원 |
| 14 | 미세먼지 PM2.5 | 35㎍/m³ | PMS5003 | 15,000원 |
| 15 | 전력 사용량 | 320W | ACS712 | 2,500원 |
| 16 | 수도 사용량 | 0L | 유량 센서 YF-S201 | 3,000원 |
| 17 | 온수 온도 | 42℃ | DS18B20 (배관) | 1,500원 |
| 18 | 빗물 감지 | 0 | 우적 센서 | 1,000원 |
| 19 | 욕실 습도 | 62% | DHT22 | 2,000원 |
| 20 | 반려견 밥그릇 ⚠ | 120g | HX711 로드셀 | 3,000원 |
⚠ 표시는 경고 대상입니다. 가스가 새거나, 불이 났거나, 문이 열렸을 때 OLED가 깜박이고 부저가 울립니다. 밥그릇은 50g 이하로 떨어지면 "밥 보충 필요" 경고.
WiFi 구조: 두뇌가 공유기가 된다
이 구조를 이해하면 센서마다 ESP8266이 왜 필요한지 쉽게 납득할 수 있습니다.
집 공유기 (192.168.0.1)
│
├── 두뇌 ESP8266 (192.168.0.50)
│ │
│ │ AP 모드: IoT_Hub_Net (비밀번호 걸린 자체 WiFi)
│ │ → 센서 노드들은 이 네트워크에 접속
│ │
│ ├── 센서노드#1 ESP8266 + DHT22 (거실 온도·습도)
│ ├── 센서노드#2 ESP8266 + 리드스위치 (현관문)
│ ├── 센서노드#3 ESP8266 + 열전대 (가스레인지)
│ ├── ...
│ └── 센서노드#19 ESP8266 + HX711 (반려견 밥그릇)
│
└── 내 폰/PC → 두뇌 IP로 웹 대시보드 접속
두뇌 ESP8266:
- STA 모드로 집 공유기에 접속 (인터넷 + 대시보드 제공)
- 동시에 Soft AP 모드로 자체 WiFi
IoT_Hub_Net생성 - 20개 슬롯 HTTP 서버 운영
센서 노드 ESP8266 (19개):
- STA 모드로 두뇌의 AP
IoT_Hub_Net에 접속 - 센서 값 측정 → HTTP GET
/set?noX=값으로 두뇌에 전송 - 전원만 들어오면 자동으로 붙는다
이 구조의 장점은 센서 노드가 집 공유기에 의존하지 않는다는 점이다. 두뇌만 공유기에 연결되어 있으면, 센서들은 두뇌의 자체 WiFi로 통신한다. 공유기 부하도 없고, 센서 노드 추가도 쉽다.
경고는 이렇게
별도 경광등은 안 단다. 0.96인치 OLED라도 화면 전체가 흰색↔검은색으로 반전되면 꽤 눈에 띈다. 피에조 부저 하나만 더해주면 "눈으로 보고 귀로 듣는" 이중 경고 완성. 부저 값은 300원.
ESP8266 모델 고르기: 용도에 맞게 크기별로
ESP8266 보드는 한 종류만 있는 것이 아닙니다. 같은 계열의 칩을 사용하더라도 보드 크기와 핀 개수가 다릅니다. 프로젝트 용도에 맞게 고르면 비용과 설치 공간을 줄일 수 있습니다. GPIO 핀 번호는 보드가 달라도 동일한 경우가 많으므로, 코드에서 D2, D5 같은 라벨만 맞추면 보드를 바꿔도 같은 구조로 동작합니다.
| 모델 | 크기 | GPIO | 가격 | 어디에 쓰나 |
|---|---|---|---|---|
| NodeMCU v3 | 큼 (58×31mm) | 11개 | 2,500원 | 두뇌 본체 (OLED+부저+여유분) |
| Wemos D1 Mini | 작음 (34×26mm) | 9개 | 2,000원 | 일반 센서 노드 (DHT22, DS18B20 등) |
| ESP-01S | 초소형 (25×15mm) | 2개 (GPIO0,2) | 1,500원 | 단순 센서 (리드스위치, PIR, 우적 등 1핀이면 충분한 것). ⚠ USB 업로드 변환기(FTDI, 2,000원) 별도 필요 |
선정 기준:
- 두뇌는 OLED(I2C 2핀), 부저(1핀), 근거리 센서 직결 가능성까지 고려해 핀이 많은 NodeMCU가 적합합니다.
- 센서 노드는 Wemos D1 Mini면 대부분 충분합니다. DHT22처럼 I2C가 아닌 센서도 데이터 핀 하나면 동작합니다.
- 문 열림 감지처럼 1비트 신호만 필요한 곳은 ESP-01S로도 충분합니다. 크기가 작아 문틈 같은 좁은 공간에도 넣기 쉽습니다. 단, NodeMCU나 D1 Mini와 달리 USB 포트가 없어서 PC에 바로 연결할 수 없습니다. 코드를 올리려면 FTDI USB-to-Serial 변환기가 필요합니다.
- 어떤 모델을 쓰든 GPIO 번호 기준은 동일하게 봅니다. 예를 들어
D2=GPIO4,D5=GPIO14는 NodeMCU와 D1 Mini에서 같은 방식으로 사용할 수 있습니다.
정리하면 처음 제작하는 경우 ESP-01S와 FTDI 조합보다 D1 Mini를 기준으로 시작하는 편이 안정적입니다. D1 Mini는 USB 연결과 전원 구성이 단순해 두뇌 장치와 센서 노드 양쪽에 모두 쓰기 쉽습니다. ESP-01S는 더 작은 크기가 꼭 필요할 때 별도로 검토해도 늦지 않습니다.
전원: 전부 USB로 통일한다
ESP8266 보드는 Micro USB 포트로 5V 전원을 공급받습니다. 따라서 사용하지 않는 스마트폰 충전기와 Micro USB 케이블만으로도 전원 구성이 가능합니다. 납땜이나 별도 전압 계산 없이 시작할 수 있다는 점이 이 구성의 장점입니다.
| 위치 | 전원 방식 | 비고 |
|---|---|---|
| 두뇌 본체 | 5V 충전기 + Micro USB | 항상 켜져 있어야 하니 벽 콘센트에 직결 |
| 거실·주방·방 등 콘센트 근처 센서 | 5V 충전기 + Micro USB | 집에 굴러다니는 구형 충전기 재활용 |
| 현관·문틈·베란다 등 콘센트 먼 곳 | 보조배터리 or 18650 배터리 | Deep Sleep + 5분 간격 wake면 보조배터리 하나로 수일~수주 |
| ESP-01S 센서 노드 | 3.3V 레귤레이터 or FTDI에서 직공급 | 핀이 2개뿐이라 전원 핀도 겸용이지만, D1 Mini 쓰면 신경 쓸 일 없음 |
실전 팁:
- D1 Mini에는 Micro USB 포트가 있어 일반 5V 1A 충전기로도 전원을 공급할 수 있습니다.
- 충전기가 부족하면 5V 멀티 USB 충전 허브를 사용해 센서 4~5개를 한곳에 모아 전원을 공급할 수 있습니다.
- 문 위나 창틀처럼 콘센트 위치가 애매한 곳은 2m Micro USB 케이블로 연장할 수 있습니다.
- 전원이 실제로 닿지 않는 위치만 배터리 구성을 검토합니다. 대부분의 실내 설치 지점은 예상보다 콘센트가 가까운 편입니다.
IR 제어도 된다 (나중에)
ESP8266에 적외선 송수신 모듈을 달면 모니터링을 넘어 제어까지 가능합니다. 에어컨, TV, 선풍기 같은 리모컨 장치의 신호를 학습시킨 뒤 HTTP 요청으로 송신하는 구조입니다. 이 내용은 뒤에서 따로 다룹니다.
확장 로드맵
본격적인 빌드는 하루에 하나씩. 센서 부품이 집에 쌓여 있으면 주말에 두 개씩 몰아서.
1일차 → IoT Hub 본체 조립 (두뇌 ESP8266 + OLED + 부저) 2일차 → 거실 DHT22 + 센서용 ESP8266 달기 (온도·습도) 3일차 → 현관 리드스위치 + 센서용 ESP8266 달기 (문 열림) 4일차 → 가스레인지 열전대 + 센서용 ESP8266 달기 5일차 → 냉장고 DS18B20 + 센서용 ESP8266 달기 6일차 → 반려견 밥그릇 HX711 + 센서용 ESP8266 달기 7일차 → 베란다 DHT22 + 센서용 ESP8266 달기 8일차 → 화염 센서 + 센서용 ESP8266 달기 ... 보름 후 → 20개 슬롯 + 19개 센서 노드, 우리집 관제탑 완성
처음에는 OLED에 -- 투성이다. 하루하루 빈칸이 실제 값으로 채워지는 걸 보는 재미가 있다.
다음 글 예고
이 글은 우리집 IoT 허브 시리즈의 첫 번째, 전체 소개 편이다.
다음 글에서는 "두뇌 만들기" — ESP8266에 웹 서버를 올리고 OLED 20채널 스크롤 화면을 구성하는 법을 코드와 함께 다룬다.
매 글마다 이 형식을 지킬 예정이다:
이후 글에서는 센서를 하나씩 붙이는 과정을 다룹니다. 거실 DHT22, 현관 리드 스위치, 반려견 밥그릇 로드셀처럼 장치를 늘려 가면 집 안의 상태를 말하듯 알려주는 시스템에 가까워집니다.
오늘 할 일: ESP8266 하나, OLED 하나, 부저 하나. 이 세 개만 있으면 두뇌는 만들 수 있다. 준비되셨으면 다음 글로.
이 글은 2편의 중앙 두뇌 서버와 3~19편의 분산 엣지 노드가 함께 구성하는 20채널 홈 IoT 시스템의 일부입니다. 필요한 편으로 이동해 슬롯과 센서 흐름을 함께 확인합니다.
[1편] 우리집 IoT 허브 전체 그림[2편] 중앙 두뇌 서버 만들기 · 슬롯 1~20[3편] 집 안 온습도, 감으로 보지 말고 숫자로 보자 · 슬롯 1·2[4편] 문 닫았나 계속 신경 쓰일 때 · 슬롯 9[5편] 냉장고가 제대로 돌고 있는지 눈으로 확인하자 · 슬롯 12[6편] 창문 열어도 될까? · 슬롯 3[7편] 욕실 곰팡이 생기기 전에 습도부터 잡자 · 슬롯 19[8편] 보일러가 실제로 도는지 배관 온도로 확인하자 · 슬롯 5·17[9편] 외출했는데 가스레인지가 켜져 있지 않을까? · 슬롯 6[10편] 가스 냄새가 나기 전에 먼저 경고받자 · 슬롯 7[11편] 집을 비웠을 때 불꽃 징후를 먼저 잡자 · 슬롯 8[12편] 머리가 멍한 이유가 공기 때문인지 확인하자 · 슬롯 13·14[13편] 전기세 무지 나오네, 이번 기회에 눈으로 보자 · 슬롯 15[14편] 물 새는지, 얼마나 쓰는지 숫자로 보자 · 슬롯 16[15편] 비 오는 줄 모르고 창문 열어두지 않게 · 슬롯 18[16편] 불 껐나, 문 잠갔나 한 번에 확인하자 · 슬롯 11·10[17편] 리모컨 없이 에어컨을 IoT 허브에서 제어하자 · 슬롯 4[18편] 강아지 밥그릇이 비었는지 눈으로 보자 · 슬롯 20[19편] 사람 있을 때만 시원하게, 없을 땐 아끼자 · 슬롯 1·4[20편] 집 안 상태가 한 화면에 보이기 시작했다 · 슬롯 전체