728x90 전체 글247 [편하게 살자] 스마트홈 알림 - 다른 휴대폰에서 A50 서버에 연결해봤다 https://github.com/PCY00/aircon-remote-control/tree/main/server aircon-remote-control/server at main · PCY00/aircon-remote-controlContribute to PCY00/aircon-remote-control development by creating an account on GitHub.github.com 앱에서 Google 로그인이 됐다.그런데 앱에 넣을 중앙 서버 주소가 필요했다.A50이 집 Wi-Fi에서 쓰는 주소만 넣어서는 집 밖에서 접속할 수 없다.아직 가지고 있는 도메인도 없었다.그래서 우선 Cloudflare Quick Tunnel로 시험용 HTTPS 주소를 만들었다.HTTPS는 앱과 서버 사.. 2026. 10. 10. [편하게 살자] 스마트홈 알림 - Google 로그인하는 Android 앱을 만들었다 https://github.com/PCY00/aircon-remote-control/tree/main/server aircon-remote-control/server at main · PCY00/aircon-remote-controlContribute to PCY00/aircon-remote-control development by creating an account on GitHub.github.com 서버가 사람과 집을 구분하게 만들었다.이제 휴대폰에 설치할 앱을 만들기로 했다.그동안 쓰던 ‘A50 관리 자동 복구’ 앱은 서버용 폰을 관리하는 앱이다.가족이 설치해서 집 소식을 보는 앱은 따로 만들었다. 두 앱의 역할이 다르다.먼저 Google 로그인부터 붙였다.집 화면을 보여주기 전에 누구의 요청인지.. 2026. 10. 9. [편하게 살자] 스마트홈 알림 - 같은 앱을 써도 자기 집만 보게 만들었다 A50에서 서버가 응답하는 것까지 확인했다. 이제 로그인과 가족 권한을 붙여보기로 했다.처음 생각한 조건은 간단했다. 라즈베리파이 한 대에 가족 여러 명이 붙는 것은 괜찮다. 그런데 다른 집 사람이 앱을 설치했다고 우리 집 문 열림 알림까지 받으면 안 된다.Google 로그인을 넣는 것만으로 이 문제가 끝나지는 않는다. 누군지는 알아도 어느 집에 들어갈 수 있는지는 따로 정해야 한다.그래서 계정, 집, 가족과 라즈베리파이의 연결을 나눠서 만들었다. 앞에서 준비할 것상태 확인에서 ready와 ok로 응답하는 A50 서버, 본인 Google 계정.구분확인할 내용Google 로그인지금 요청한 사람이 누구인가가족 권한그 사람이 이 집에 참여해 있는가Pi 연결 키이 기록을 보낸 라즈베리파이가 어느 집 소속인가내 .. 2026. 10. 8. [편하게 살자] 스마트홈 알림 - A50에서 작은 서버를 돌려봤다 화면을 끄거나 재부팅해도 PC에서 A50에 다시 접속할 수 있게 만들었다.이제 이 휴대폰에 집과 알림 정보를 보관할 프로그램을 올려보기로 했다. 그 전에 휴대폰에 깔린 앱부터 정리했다.서버로 쓸 폰에 동영상이나 게임 관련 앱이 계속 필요하지는 않았다.다만 폰이 동작하는 데 필요한 것까지 없애면 원격으로 복구하는 일이 더 번거로워진다.그래서 필요한 기능은 남겨두고, 쓰지 않는 일반 앱만 사용 중지했다.앱 정리는 선택 사항이다. 정리를 건너뛰고 서버 설치부터 해도 된다. 앞에서 준비할 것SSH와 ADB로 접속되는 A50, 실행해둔 Termux Boot와 PC의 Python 환경. 아래 명령은 모두 압축을 풀어둔 프로젝트 폴더의 PC PowerShell에서 실행한다.지우기 전에 상태부터 봤다.venv/Scri.. 2026. 10. 7. [편하게 살자] 스마트홈 알림 - 휴대폰 서버 구축 ( 1 ) 라즈베리파이에서 문 상태나 온습도를 읽는 것까지는 만들었다.이제 집 밖에서도 휴대폰으로 알림을 받고 싶었다.그런데 여러 집에서 같은 앱을 쓴다면 각 집의 소식을 구분해서 보내줄 장비가 필요했다.노트북을 계속 켜두는 방법도 생각했지만, 평소 쓰는 노트북은 건드리고 싶지 않았다. 마침 남는 Galaxy A50이 있어서 이걸 작은 서버로 써보기로 했다.처음에는 PC에서 접속하면 되겠다고 생각했다.그런데 화면을 끄거나 재부팅하면 어떨까? 매번 휴대폰을 잡고 설정을 켜야 한다면 계속 켜두는 서버로 쓰기에는 번거롭다. 그래서 첫 번째로 휴대폰을 직접 만지지 않고 다시 접속할 수 있는 상태부터 만들었다.우선 접속부터 준비하고, 서버 프로그램은 그다음에 올리기로 했다. 앞에서 준비할 것Windows PC, A50과 같.. 2026. 10. 5. [편하게 살자] Zigbee2MQTT - ESP32H2 노드로 에어컨 제어하기 (마무리) https://github.com/PCY00/aircon-remote-control GitHub - PCY00/aircon-remote-controlContribute to PCY00/aircon-remote-control development by creating an account on GitHub.github.com 전용 PCB 제작 비용을 고려해 ESP32-H2 SuperMini와 만능기판으로 IR 송신기를 조립했다.대시보드 버튼 → 라즈베리파이 → Zigbee USB 동글 ⇢ ESP32-H2 → IR LED → 에어컨 무선 통신 GPIO5에서 IR LED 발광 확인IR LED는 H2 보드의 GPIO5 핀에 연결했다.보드에 올려둔 .. 2026. 10. 4. [편하게 살자] Zigbee2MQTT - UI에 Zigbee 센서와 자동화 연결 https://github.com/PCY00/aircon-remote-control GitHub - PCY00/aircon-remote-controlContribute to PCY00/aircon-remote-control development by creating an account on GitHub.github.com Zigbee/MQTT 스마트홈 확장 시리즈의 Step 3이다. MQTT 수신·정규화·저장·REST API,반응형 센서 UI, SSE 실시간 전달, 서버측 센서 설정, 시간 제한 페어링, 첫 경고 자동화와Raspberry Pi 터치 키오스크까지 운영 Pi v0.7.0에 배포했다. 실제 문 전환과 경고 발생·해제현장시험은 아직 남아 있으므로 검증한 범위와 남은 범위를 글 끝에서 구분한다.이.. 2026. 9. 9. [편하게 살자] Zigbee2MQTT - 온습도·도어 센서를 클라우드 없이 연결 https://github.com/PCY00/aircon-remote-control GitHub - PCY00/aircon-remote-controlContribute to PCY00/aircon-remote-control development by creating an account on GitHub.github.com 앞 편에서 Raspberry Pi, ZBDongle-P, Mosquitto와 Zigbee2MQTT로 로컬 게이트웨이를 구성했다.이번에는 알리에서 구입한 배터리식 센서 두 개를 제조사 앱이나 클라우드 없이 직접 가입시켰다.실물 `Z3-P3-L` 온습도 센서 → Zigbee에서는 `Zbeacon TH01`실물 `UZ-8D` 도어·창문 센서 → Zigbee에서는 `Wing/TS0203`, T.. 2026. 9. 8. [편하게 살자] Zigbee2MQTT - Raspberry Pi를 게이트웨이로 만들기 https://github.com/PCY00/aircon-remote-control GitHub - PCY00/aircon-remote-controlContribute to PCY00/aircon-remote-control development by creating an account on GitHub.github.com 이 글은 에어컨 원격 제어 프로젝트를 스마트홈 플랫폼으로 확장하는 두 번째 시리즈의 Step 1이다. Raspberry Pi에 SONOFF ZBDongle-P를 연결하고, 로컬 Mosquitto와 Zigbee2MQTT를 설치해 다음 단계에서 상용 Zigbee 센서를 붙일 수 있는 게이트웨이를 만든다. 최종 구성은 다음과 같다.Zigbee 센서·노드 │ Zigbee 3.0 .. 2026. 9. 7. [편하게 살자] 에어컨 자동 제어 편 - IR 송신기 구성과 실제 에어컨 제어 이전 포스터의 `mock-ir` 어댑터를 GPIO18 기반 실제 송신기로 교체하고, 웹 UI에서 보낸 Carrier 명령으로 에어컨이 실제 동작하는 것까지 검증한 과정이다.제어에 쓰는 것은 수신기가 아니라 IR 송신기다.왜 GPIO에 모듈 DAT를 바로 연결하지 않았나사용한 IR 송신 모듈은 `VCC`, `GND`, `DAT` 세 핀이 있고 판매 자료에는 5V·38kHz용으로 표시돼 있었다. Raspberry Pi GPIO는 3.3V 로직이며 핀 하나로 IR LED의 순간 전류를 직접 감당하게 해서는 안 된다. 처음에는 `DAT`를 GPIO에 바로 연결하거나 5V 레벨 변환 IC를 쓰는 방안을 검토했다.그러나 모듈 내부 연결을 완전히 확인하지 못한 상태에서 가장 단순하고 안전하게 제어하기 위해P2N222.. 2026. 9. 4. [편하게 살자] 에어컨 자동 제어 편 - UI 구성과 IR 코드 연결 저번 포스터에서 얻은 Carrier 패킷을 화면 버튼에 직접 박아 넣지 않고, 공간·기기·장면을 중심으로 한 반응형 스마트홈 UI와 의미 기반 API로 연결한 과정이다.이 단계의 하드웨어 출력은 Mock이며, 실제 IR 송신은 다음 단계에서 활성화한다.에어컨 리모컨 화면이 아니라 스마트홈의 시작점에어컨 하나만 생각하면 전원과 온도 버튼만 있는 화면으로 충분하다.하지만 앞으로 조명, TV, 센서, ESP32-H2 기반 Zigbee 노드까지 추가할 계획이었다. 그래서 첫 화면의 중심을 제품 종류가 아닌 공간으로 정했다.홈├─ 빠른 장면: 집에서 · 외출 · 취침├─ 공간: 전체 · 거실 · 침실 · 사용자가 만든 공간└─ 공간 안의 기기 카드 원룸에서는 거실과 침실이 같은 공간일 수 있고, 큰집에서는 부엌.. 2026. 9. 3. [편하게 살자] 에어컨 자동 제어 편 - 리모컨 IR 신호 하이재킹 여기서 말하는 하이재킹은 내가 소유한 Carrier CS-A061GS 에어컨 리모컨의 적외선 신호를 수신기로 기록하고, 의미 있는 명령 데이터로 재구성한 과정이다.이 단계에서는 송신하지 않고 수신·분석·저장까지만 완성한다.왜 버튼 코드 하나만 복사하면 안 될까TV 리모컨처럼 버튼마다 짧은 고정 코드가 전송될 것으로 예상했지만 에어컨 리모컨은 달랐다.전원, 운전 모드, 희망 온도, 풍량 같은 현재 설정을 하나의 상태 프레임에 담아 보내는 방식이었다.따라서 `온도 올림` 버튼의 코드 하나를 저장하는 대신 다음 조건을 함께 기록해야 했다.전원 상태자동·냉방·제습·송풍 모드희망 온도자동·약·중·강 풍량풍향, 경제 운전, 쾌속 냉방, LED 같은 순간 명령목표 구조도 단순한 버튼 목록이 아니라 다음과 같이 잡았다.. 2026. 9. 2. 이전 1 2 3 4 ··· 21 다음 728x90