로그인회원가입

[카테고리:] 스마트홈

홈 오토메이션 관련 DIY

  • 내 RC카 배터리 얼마나 남았을까? 분압 저항으로 구현하는 실시간 전압계

    내 RC카 배터리 얼마나 남았을까? 분압 저항으로 구현하는 실시간 전압계


    리튬 이온 배터리는 완충 시 약 4.2V, 방전 시 약 3.0V~3.2V 사이의 전압을 가집니다. 하지만 ESP32-C3의 ADC 입력 전압은 보통 0V~2.5V(내부 설정에 따라 다름) 정도로 제한되어 있어, 배터리 전압을 직접 연결하면 MCU가 손상될 수 있습니다.

    이때 가장 간단하고 효과적인 해결책이 바로 분압 저항을 사용하는 방법입니다.

    1. 하드웨어 구성: 분압 저항(Voltage Divider) 원리

    100kΩ 저항 두 개를 직렬로 연결하면 전압이 정확히 **절반(1/2)**으로 줄어듭니다. 배터리 전압이 4.2V일 때 ADC 핀에는 2.1V가 입력되므로 ESP32-C3에서 안전하게 읽을 수 있습니다.

    • 준비물: 100kΩ 저항 2개, ESP32-C3, 리튬 이온 배터리
    • 회로 연결:
      1. 배터리 양극(+) → 첫 번째 100kΩ 저항 시작점 연결
      2. 두 저항 사이의 중간 지점 → ESP32-C3의 ADC 핀(예: GPIO 0) 연결
      3. 두 번째 100kΩ 저항 끝점 → 배터리 음극(-) 및 ESP32-C3 GND 공통 연결

    2. 마이크로파이썬(MicroPython) 구현 코드

    ESP32-C3에서 ADC 값을 읽어 실제 배터리 전압으로 환산하는 코드입니다.

    Python “battery.py”

    3. 더 정확한 측정을 위한 팁

    • 저항 오차: 100kΩ 저항이라도 미세한 오차가 있으므로, 멀티미터로 실제 배터리 전압을 재보고 코드의 2 대신 2.05와 같이 미세하게 조정(Calibration)하면 더 정확합니다.
    • 전력 소모: 상시 구동 기기라면 100kΩ 이상의 높은 저항을 사용하거나, 측정할 때만 회로를 연결하는 트랜지스터 스위치를 추가하는 것이 좋습니다.
    • 노이즈 제거: adc.read() 값을 여러 번 읽어 평균을 내면 값이 훨씬 안정적으로 출력됩니다.

    4. 맺음말

    전원을 직접 연결하기 힘든 위치에 온습도계를 둘 때는 배터리를 쓰게 되죠. 이때 배터리 전압을 실시간으로 체크해주면 정말 편리해요. ‘배터리가 다 됐어요!’라고 기기가 스스로 알려줄 수 있도록 이번 강좌의 ADC 측정 회로를 꼭 적용해 보시기 바랍니다.

  • 대시보드 하나로 집안 환경 정복, ESP32로 구현한 통합 관제 센터

    대시보드 하나로 집안 환경 정복, ESP32로 구현한 통합 관제 센터

    온습도 모니터링과 IR(적외선) 리모컨 제어 시스템은 우리가 흔히 말하는 ‘스마트 홈’의 가장 기초적이면서도 핵심적인 요소입니다. 이 시스템이 물리적인 환경에서 디지털 신호로, 다시 물리적인 동작으로 이어지는 과정을 단계별로 정리해 드릴게요.


    1. 온습도 모니터링 과정 (Sensing to Data)

    센서가 방 안의 상태를 감지하고 사용자에게 보여주기까지의 과정입니다.

    • 데이터 측정 (Sensing): DHT11, SHT3x와 같은 온습도 센서가 대기 중의 전기적 신호를 읽어 온도와 습도 값을 추출합니다.
    • 데이터 처리 및 전송 (Processing & TX): ESP32, Raspberry Pi 같은 MCU(마이크로 컨트롤러)가 센서 값을 디지털 데이터로 변환합니다. 이후 Wi-Fi나 Zigbee 통신을 통해 클라우드 서버나 로컬 허브로 전송합니다.
    • 데이터 저장 및 시각화 (Storage & Display): 전송된 데이터는 데이터베이스에 시각별로 저장됩니다. 사용자가 웹이나 앱을 열면 이 데이터를 불러와 실시간 수치나 1개월간의 그래프(이미지에서 보신 형태)로 그려내게 됩니다.

    2. 가전 IR 리모트컨트롤 과정 (Command to Action)

    사용자가 버튼을 눌러 에어컨이나 TV를 끄고 켜는 과정입니다.

    • 사용자 명령 (Input): 사용자가 웹페이지의 ‘에어컨 ON’ 버튼을 클릭합니다.
    • 신호 전달 (Command): 웹 서버는 이 명령을 받아 집안에 설치된 ‘IR 블래스터(송신부)’로 전달합니다. 이때 주로 MQTT나 HTTP 프로토콜이 사용됩니다.
    • IR 신호 변조 (Modulation): IR 블래스터는 가전제품 제조사마다 정해진 고유의 ‘리모컨 코드’를 생성합니다. 적외선은 눈에 보이지 않는 빛의 깜빡임으로 신호를 전달하며, 보통 38kHz 주파수의 반송파에 실어 보냅니다.
    • 가전 제품 동작 (Execution): TV나 에어컨의 IR 수신 모듈이 이 빛의 패턴을 읽고 해석하여 전원을 켜거나 채널을 바꿉니다.

    요약하자면

    단계온습도 모니터링 (Read)가전 리모트컨트롤 (Write)
    방향가전/환경 → 사용자사용자 → 가전
    매개체센서 소자 (SHT, DHT 등)적외선 LED (IR Transmitter)
    핵심 기술데이터 로깅, 그래프 시각화IR 프로토콜 분석 (Samsung, LG 등)

    가전제품마다 리모컨 신호가 다르기 때문에, 시스템을 구축할 때는 각 제조사의 IR 신호를 미리 ‘학습’시키거나 공개된 라이브러리(DB)를 사용하는 것이 중요합니다.

  • [상위고정] 온습도 모니터링 & IR 리모콘

    [상위고정] 온습도 모니터링 & IR 리모콘

    “가장 소중한 사람을 위한 DIY” (실용적/따뜻함)

    “아이 방의 습도는 적당한지, 부모님 방이 너무 춥지는 않은지 매번 문을 열어 확인하고 계셨나요? 이제 직접 만든 작은 센서들이 당신을 대신해 집안 구석구석을 살핍니다. **’방마다 온습도 모니터링’**은 소중한 사람들의 건강을 위해 시작된 가장 따뜻한 DIY 프로젝트입니다. 부품 하나, 코드 한 줄로 시작하는 우리 집의 작은 변화를 기록합니다.”

    • AHT20 센서 활용한 ESP32-C3 온습도 측정
    • IR Led를 활용한 IR 리모트 컨트롤
    • AHT20+BMP280 센서 : 온도, 습도, 기압 측정
    • OLED SSD1306 디스플레이
    • SR602 미니 모션 센서 감지기 모듈: 디스플레이 자동 on/off
    • ESP32-C3, ST7789 : 9 채널 온습도 모니터링 데시보드

    공간별 온습도 실시간 모니터링 및 가전 기기 원격 통합 제어


    리뉴얼 Renewal With AI. 2026.02.11
    리뉴얼 온습도 그래프 Renewal With AI. 2026.03.25
    1개월간 공간별 온습도 그래프
    1년간 공간별 온습도 그래프
    공간별 IR리모콘
  • 홈 서버가 필요한 이유

    홈 서버가 필요한 이유

    스마트홈의 두뇌 역할을 하는 **’홈 웹서버(Home Web Server)’**의 필요성에 대한 설명글입니다. 초보자도 이해하기 쉽게 비유를 곁들여 작성했습니다.


    왜 스마트홈에는 ‘전용 서버’가 필요할까요?

    스마트홈을 구축할 때 가장 먼저 마주하는 질문은 “센서와 전등만 있으면 되는 거 아니야?”라는 의문입니다. 하지만 진정한 자동화를 위해서는 이 모든 장치를 하나로 묶어 관리하는 ‘관제 센터’, 즉 홈 웹서버가 반드시 필요합니다.

    1. 흩어진 장치들을 하나로 묶는 ‘지휘소’

    각 방에 흩어진 ESP32-C3 보드들은 각각 온도나 습도를 측정할 뿐, 서로 대화할 수 없습니다. 홈 서버는 모든 보드로부터 데이터를 수집하고, “온도가 26도가 넘었으니 에어컨을 켜라”라는 명령을 내리는 지휘관 역할을 수행합니다.

    2. 24시간 기록되는 ‘나만의 데이터 로그’

    서버가 없다면 현재 온도는 볼 수 있지만, ‘어제 밤 우리 집 온도 변화’는 알 수 없습니다. 홈 서버는 1분 1초의 데이터를 저장하여, 우리 가족의 생활 패턴을 분석하고 최적화된 에너지 관리를 가능하게 합니다.

    3. 외부에서도 안전한 ‘원격 제어 창구’

    집 밖에서 스마트폰으로 에어컨을 켜고 싶을 때, 각 장치에 일일이 접속하는 것은 보안상 위험하고 번거롭습니다. 홈 서버는 외부와 내부를 잇는 단 하나의 안전한 통로가 되어, 당신이 어디에 있든 집안 상태를 한눈에 보여줍니다.


    우리가 홈 서버로 ‘라즈베리 파이’나 ‘미니 PC’를 쓰는 이유

    • 저전력 가동: 24시간 켜져 있어야 하므로 전기를 적게 먹어야 합니다.
    • 다양한 프로토콜 수용: Wi-Fi, Zigbee, Bluetooth 등 서로 다른 통신 방식을 사용하는 기기들을 한곳에서 처리합니다.
    • 프라이버시 보호: 클라우드 서버(외부 업체)에 우리 집 데이터를 맡기지 않고, 내 집 안의 서버에만 저장하므로 사생활이 완벽하게 보호됩니다.

    MaNa’s LAB Tip: > 처음에는 거창한 서버 장비가 없어도 괜찮습니다. 남는 노트북이나 저렴한 라즈베리 파이에 Home Assistant 같은 오픈소스 플랫폼을 설치하는 것만으로도 훌륭한 스마트홈 서버를 가질 수 있습니다.


  • 아두이노와 마이크로파이썬

    아두이노와 마이크로파이썬

    아두이노(C++)와 마이크로파이썬(MicroPython)은 임베디드 개발에서 가장 인기 있는 두 가지 선택지입니다. 결론부터 말씀드리면, “세밀한 제어와 성능이 중요하다면 아두이노”, **”빠른 개발과 쉬운 학습이 우선이라면 마이크로파이썬”**을 추천합니다.

    Arduino
    Micropython

    주요 차이점을 네 가지 핵심 포인트로 정리해 드립니다.


    1. 언어와 실행 방식의 차이

    구분아두이노 (Arduino C++)마이크로파이썬 (MicroPython)
    언어C++ 기반 (컴파일 언어)Python 3 기반 (인터프리터 언어)
    실행 방식코드를 기계어로 변환해 업로드보드 내부의 인터프리터가 코드를 즉시 해석
    속도/효율매우 빠름. 하드웨어 자원을 100% 활용상대적으로 느림. 메모리 사용량이 많음
    난이도포인터, 메모리 관리 등 초기 학습이 다소 어려움문법이 간결하고 직관적이라 입문자에게 유리

    2. 개발 프로세스 (워크플로우)

    • 아두이노: 코드를 수정할 때마다 ‘컴파일(빌드) → 업로드’ 과정을 거쳐야 합니다. 코드가 길어질수록 기다리는 시간이 생깁니다.
    • 마이크로파이썬: REPL(Interactive Shell) 기능을 지원합니다. 보드를 PC에 연결한 상태에서 한 줄씩 코드를 입력하면 즉시 하드웨어가 반응합니다. (예: led.on() 입력 시 즉시 불이 켜짐)

    3. 하드웨어 지원 범위

    • 아두이노: 아주 저사양인 8비트 MCU(Arduino Uno 등)부터 고사양 보드까지 거의 모든 하드웨어에서 돌아갑니다.
    • 마이크로파이썬: 파이썬 인터프리터 자체가 메모리를 꽤 차지하기 때문에, 최소 ESP32, Raspberry Pi Pico, STM32 급의 어느 정도 사양이 되는 보드에서만 작동합니다. 구형 아두이노 우노(Uno)에서는 실행할 수 없습니다.

    4. 라이브러리와 커뮤니티

    • 아두이노: 수십 년간 쌓인 방대한 라이브러리가 강점입니다. 듣도 보도 못한 중국산 센서라도 아두이노용 라이브러리는 있을 확률이 매우 높습니다.
    • 마이크로파이썬: 최근 급격히 성장 중이지만, 아두이노에 비하면 센서 라이브러리가 부족할 수 있습니다. 하지만 문자열 처리나 네트워크(Wi-Fi/HTTP) 라이브러리는 파이썬답게 매우 강력합니다.

    💡 요약: 무엇을 선택할까요?

    이런 분께는 아두이노를 추천합니다:

    • 드론 제어, 고속 모터 제어 등 **실시간성(Real-time)**이 매우 중요한 프로젝트
    • 메모리가 적은 아주 작은 칩을 사용해야 하는 경우
    • 임베디드 엔지니어로서의 기초(C/C++)를 탄탄히 다지고 싶은 경우

    이런 분께는 마이크로파이썬을 추천합니다:

    • 이미 파이썬에 익숙하거나, 코딩을 처음 시작하는 입문자
    • 데이터 로깅, 간단한 IoT 기기(웹 서버 등)를 빨리 만들고 싶은 경우
    • 복잡한 알고리즘이나 AI 관련 기능을 기기 내에서 처리하고 싶은 경우

    “스마트 홈 제어는 고도의 연산 성능보다 다양한 시나리오의 적용이 핵심입니다. 따라서 신속한 프로토타이핑과 반복 테스트에 유리한 마이크로파이썬(MicroPython)을 활용하는 것이 개발 효율성 측면에서 가장 적합합니다.”