Home IoT Hub Series · 01

우리집 IoT 허브 - ESP8266 하나로 집에 두뇌 달기

우리집 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원
다음 글에서는 위 부품들의 핀 연결까지 상세히 다룬다. ESP8266 GPIO 배치는 NodeMCU 기준으로 GPIO4(D2)=SDA, GPIO5(D1)=SCL, GPIO13(D7)=부저.

어떤 정보를 모을 건가

20개 슬롯은 일반 가정집 기준으로 미리 정했습니다. 실제 설치 환경에 따라 슬롯 구성은 얼마든지 조정할 수 있습니다.

#측정 항목값 예시측정 방법센서 가격
1거실 온도24.5℃DHT222,000원
2거실 습도58%(1번과 동일)
3바깥 온도18.0℃DHT222,000원
4에어컨 상태OFFIR 송신 피드백VS1838B+LED 약 600원
5보일러 가동OFFDS18B20 (배관)1,500원
6가스레인지 사용0K타입 열전대3,000원
7가스 누출 ⚠0MQ-5 가스 센서1,500원
8화재 감지 ⚠0화염 센서1,000원
9정문 열림 ⚠0MC-38 리드스위치800원
10현관문 잠금1도어락 상태 센서2,000원
11거실 조명OFF조도센서 or 릴레이1,500원
12냉장고 온도3.5℃DS18B20 방수형2,000원
13실내 CO2620ppmMH-Z19B20,000원
14미세먼지 PM2.535㎍/m³PMS500315,000원
15전력 사용량320WACS7122,500원
16수도 사용량0L유량 센서 YF-S2013,000원
17온수 온도42℃DS18B20 (배관)1,500원
18빗물 감지0우적 센서1,000원
19욕실 습도62%DHT222,000원
20반려견 밥그릇 ⚠120gHX711 로드셀3,000원
센서 총합 약 65,000원 + 본체 7,600원 + 센서 노드용 Wemos D1 Mini 2,000원×19개(1번은 두뇌와 동일 위치)=38,000원 = 프로젝트 총예산 약 11만 원. 단, 하루에 하나씩 사면 부담 없다. CO2·미세먼지만 좀 비싼 편이고 나머지는 1~3천 원 선.

⚠ 표시는 경고 대상입니다. 가스가 새거나, 불이 났거나, 문이 열렸을 때 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로 통신한다. 공유기 부하도 없고, 센서 노드 추가도 쉽다.

물론 집이 작거나 센서가 두뇌 근처에 몰려 있다면, 센서 노드 없이 두뇌 ESP8266에 직접 센서를 배선해도 됩니다. 1~3번 슬롯 정도는 GPIO 핀이 남는 선에서 직접 연결할 수 있습니다. 이 시리즈에서는 "거리가 있는 경우"를 기준으로, 각 센서마다 독립 노드로 구성하는 방식을 택합니다.

경고는 이렇게

별도 경광등은 안 단다. 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는 더 작은 크기가 꼭 필요할 때 별도로 검토해도 늦지 않습니다.

시리즈 글에서는 기본적으로 두뇌=NodeMCU, 센서=D1 Mini로 통일한다. 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 케이블로 연장할 수 있습니다.
  • 전원이 실제로 닿지 않는 위치만 배터리 구성을 검토합니다. 대부분의 실내 설치 지점은 예상보다 콘센트가 가까운 편입니다.
일반인이 해도 되는 이유: ESP8266 + Micro USB 케이블 + 충전기. 이게 전부다. 릴레이, 강압 모듈, 외부 전원 같은 건 전혀 필요 없다. 보드가 알아서 5V→3.3V 변환해 준다.

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 하나, 부저 하나. 이 세 개만 있으면 두뇌는 만들 수 있다. 준비되셨으면 다음 글로.

우리집 IoT HUB 20슬롯 시스템 맵

이 글은 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편] 집 안 상태가 한 화면에 보이기 시작했다 · 슬롯 전체