호텔 객실 에너지 효율 향상을 위한 스마트 객실 환경 관리 시스템 개발일지

프로젝트 소개

본 프로젝트는 Python, Qt, MySQL, Arduino를 활용하여 호텔 객실 내 에너지 소비를 효율적으로 관리할 수 있는 스마트 객실 환경 관리 시스템을 구현하는 프로젝트이다.

객실 환경 정보를 수집하고 객실 상태를 분석하여 불필요한 에너지 사용을 줄이는 것을 목표로 하며, 향후 객실 조명, 냉난방, 욕조 급수 시스템 등 다양한 객실 설비와 연동할 수 있는 구조로 설계한다.

현재 실습 환경에서는 테스트 가능한 센서가 조도 센서이기 때문에, 조도 값을 활용하여 객실 밝기 상태를 측정하고 LED 밝기를 자동으로 제어하는 프로토타입 형태로 구현한다.

활동 일시

계획서 작성 : 06/02

06/08 ~ 06/09

장소

광주인력개발원

주요 주제

Python + Qt + MySQL + Arduino 기반 스마트 객실 환경 관리 시스템 개발

개발 목적

  • 호텔 객실 내 에너지 소비를 효율적으로 관리하기 위한 시스템 설계
  • Python 기반 GUI 프로그램 개발 경험 향상
  • Qt를 활용한 화면 설계 및 이벤트 처리 학습
  • MySQL 데이터베이스 연동 및 데이터 관리 경험 습득
  • Arduino와 Python 간 Serial 통신 구현 경험 습득
  • 하드웨어와 소프트웨어를 연동한 IoT 시스템 개발 경험 습득
  • 스마트 호텔 환경 제어 시스템의 기본 구조 이해

개발 환경

운영체제 : Ubuntu Linux

개발 언어 : Python

GUI 도구 : Qt

개발 툴 : PyCharm

데이터베이스 : MySQL

하드웨어 : Arduino UNO

통신 방식 : Serial Communication

프로그램 구조 : MVC(Model - View - Controller)

데이터 구조 : List, Dictionary, Class

구현 예정

1. 객실 환경 정보 확인 기능

  • 객실 번호 선택
  • 현재 조도 값 확인
  • 객실 상태 확인
  • 실시간 환경 정보 표시

2. 객실 환경 데이터 저장 기능

  • 객실 번호 저장
  • 조도 값 저장
  • 객실 상태 저장
  • 마지막 업데이트 시간 기록

3. 객실 환경 상태 판단 기능

  • 조도 값을 기준으로 객실 상태 분석
  • 밝음 상태 판단
  • 보통 상태 판단
  • 어두움 상태 판단

4. LED 상태 표시 기능

  •  LED 끄기
  • LED 은은하게 켜기
  • LED 밝게 켜기
  • 현재 객실 상태 시각화

5. 데이터베이스 저장 기능

  • 객실 환경 데이터 저장
  • 저장 데이터 조회
  • 저장 데이터 수정 및 삭제
  • 객실별 환경 이력 관리

6. 스마트 호텔 확장 기능 설계

  • 객실 재실 여부 기반 조명 자동 제어
  • 공실 시 절전 모드 전환
  • 온도 및 습도 기반 냉난방 중앙 제어
  • 고객 요청 기반 욕조 자동 급수 기능
  • 객실 환경 통합 관리 기능

테스트 환경

본 프로젝트는 개발 환경 및 센서 보유 상황을 고려하여 조도 센서를 활용한 객실 환경 관리 기능을 중심으로 테스트를 진행한다.

온도, 습도, 재실 감지, 욕조 수위 감지 등의 기능은 실제 호텔 환경에서 활용 가능한 확장 기능으로 설계하며, 현재 프로젝트에서는 조도 센서를 활용한 프로토타입 구현을 목표로 한다.

프로그램 구조

Model은 객실 환경 정보를 저장하고 관리하는 역할을 담당하며, View는 Qt를 활용하여 GUI 화면을 구성한다. Controller는 사용자 입력을 처리하고 Arduino, MySQL, GUI를 연결하여 전체 프로그램을 제어하는 역할을 담당한다.

클래스 구조

RoomModel 클래스는 객실 번호, 조도 값, 객실 상태, LED 상태, 마지막 업데이트 시간 등의 객실 환경 정보를 저장하고 관리한다.

DatabaseManager 클래스는 MySQL 데이터베이스 연결, 데이터 저장, 조회, 수정 및 삭제 기능을 담당한다.

ArduinoManager 클래스는 Arduino와의 Serial 통신을 담당하며 조도 센서 데이터를 수신하고 LED 상태를 제어한다.

MainWindow 클래스는 GUI 화면 제어 및 버튼 이벤트 처리, 데이터 표시, 상태 갱신 등의 기능을 담당한다.

DB 테이블 설계

CREATE TABLE room_environment (
    id INT AUTO_INCREMENT PRIMARY KEY,
    room_number VARCHAR(10),
    light_value INT,
    room_status VARCHAR(20),
    led_status VARCHAR(20),
    updated_at DATETIME
);

예상 문제점

  • Arduino와 Python 간 Serial 통신 연결 오류 발생 가능
  • Linux 환경에서 Arduino 포트 인식 및 권한 설정 문제 발생 가능
  • Arduino 센서 데이터 수신 지연 또는 데이터 누락 문제 발생 가능
  • MySQL 데이터베이스 연결 오류 발생 가능
  • 데이터 저장 및 조회 시 SQL 구문 오류 발생 가능
  • GUI 화면과 데이터베이스 간 데이터 동기화 문제 발생 가능
  • 객실 상태 변경 시 화면 갱신이 정상적으로 이루어지지 않을 수 있음
  • LED 상태와 프로그램 상태가 일치하지 않는 문제 발생 가능
  • 실습 환경의 한계로 인해 온도, 습도, 재실 감지 등의 기능을 직접 테스트하기 어려움
  • 현재는 조도 센서를 활용하여 테스트를 진행하므로 실제 호텔 환경과 차이가 발생할 수 있음

개발 일정표

단계 작업 내용 세부 내용
1일차 오전 개발 환경 구축 Ubuntu 환경 설정, Python 라이브러리 설치, MySQL 설정, Arduino 연결 확인
1일차 오후 GUI 화면 설계 시작 화면, 객실 목록 화면, 객실 관리 화면 설계
1일차 오후 프로그램 구조 설계 MVC 구조 설계, RoomModel, DatabaseManager, ArduinoManager, MainWindow 클래스 설계
2일차 오전 MySQL 연동 데이터베이스 생성, 테이블 설계, 데이터 저장 및 조회 기능 구현
2일차 오전 Arduino 연동 조도 센서 데이터 수신, LED 제어 기능 구현
2일차 오후 기능 통합 GUI, MySQL, Arduino 기능 통합 및 데이터 연동
2일차 오후 테스트 및 결과 정리 센서, LED, DB 테스트 및 발표 자료 정리

기대 효과

  • 호텔 객실 내 에너지 소비를 효율적으로 관리하기 위한 스마트 객실 관리 시스템의 기본 구조를 이해할 수 있다.
  • Python, Qt, MySQL, Arduino를 연동하여 하드웨어와 소프트웨어가 결합된 IoT 시스템 개발 경험을 습득할 수 있다.
  • 객실 환경 데이터를 수집하고 분석하여 자동 제어가 가능한 시스템 설계 능력을 향상시킬 수 있다.
  • 데이터베이스를 활용한 객실 환경 정보 저장 및 관리 경험을 습득할 수 있다.
  • Serial 통신을 활용한 센서 데이터 수집 및 장치 제어 경험을 습득할 수 있다.
  • 실제 호텔에서 활용되는 객실 에너지 관리 시스템의 기본 개념을 이해할 수 있다.
  • 객실 조명, 냉난방, 재실 감지, 욕조 자동 급수 등 스마트 호텔 시스템으로 확장 가능한 구조를 설계할 수 있다.
  • 호텔 산업과 IT 기술을 융합한 스마트 호텔 서비스 개발 역량을 향상시킬 수 있다.