minlog

ESP32로 만든 스마트 기숙사 시스템

2023.06.20·조회수:
0
thumbnail
 

1. 기획의도

  • 웹을 통해 기숙사 방 문을 원격으로 쉽게 열 수 있습니다.
  • 일과시간 내에 외부 출입자를 감지하고, 해당 정보를 기록할 수 있습니다.
  • 기숙사의 온도와 습도를 실시간으로 모니터링할 수 있습니다.

2. 프로젝트 구성

하드웨어 구성

1. 모션 감지 센서:

  • 사람의 출입을 감지하고, 해당 출입시간을 데이터베이스에 기록합니다.
  • 학교의 일과시간 중에 출입이 감지되면 부저를 울리고 웹으로 경고 메시지를 전송합니다.

2. 온/습도 센서:

  • 기숙사 방 안의 온도와 습도를 실시간으로 측정합니다.
  • 웹에서 실시간으로 이 정보를 확인할 수 있습니다.

3. 서보모터:

  • 웹에서 열림 버튼을 누르면 기숙사 방 내의 서보모터를 제어하여 원격으로 문을 열 수 있습니다.

4. 부저:

  • 정해진 시간 외에 출입이 감지되면 소리를 시끄럽게 울립니다.

5. LCD 디스플레이:

  • 와이파이에 연결되면 IP 주소를 디스플레이에 표시합니다.
  • 온도와 습도 정보를 디스플레이에 표시하여 실시간 모니터링이 가능합니다.

소프트웨어 구성

DB : MYSQL

SERVER : PHP

WEB : HTML/CSS/JAVASCRIPT


1. 홈페이지:

  • DB에서 페이지 3개의 최근 값을 가져와 네비게이션에 표시해 줍니다.
  • ajax를 이용해 5초 마다 값을 새로 고침해서 DB에서 실시간으로 값을 불러옵니다.

2. 기숙사 상태

  • ajax를 이용해 5초 마다 값을 새로 고침해서 DB에서 실시간으로 값을 불러옵니다.
  • 현재 기숙사의 온/습도를 ESP32에서 보낸 값을 DB에 저장하고 불러옵니다.

3. 출입자 관리

  • 전체 보기를 누르면 입과 출입 여부 상관없이 전체 시간대의 출입 내용을 모두 보여준다.
  • 일과 출입 여부를 누르면 일과시간 출입인 값만 필터링해서 가져온다.
  • 데이터값이 많으면 자동으로 페이지네이션 된다.
  • 최근 업데이트를 만들어서 쉽게 몇 분, 몇 시, 며칠 전에 출입했는지 확인할 수 있다.
  • ajax를 이용해 5초 마다 값을 새로 고침해서 DB에서 실시간으로 값을 불러옵니다.

3-1 일과시간 수정

  • 일과시간 수정 버튼을 누르면 일과시간을 수정할 수 있는 모달창이 뜬다.
  • 등교시간/하교시간을 수정하고 저장 버튼을 누르면 ESP32웹 서버에 GET으로 값이 전달된다.
  • DB에도 값이 업데이트 되서 필터링 되는 조건이 변경이 된다.

4. 원격제어

  • ESP32 웹 서버에 OPEN이라는 값을 GET으로 넘긴다.
  • 값이 들어오면 서보모터를 작동시킨다.

5. 로그인

  • 디바이스를 할당하기 위해서 계정이 필요했다.
  • 그래서 로그인/회원가입을 만들기로 했다.

6. 회원가입

  • 아이디를 입력하고 중복확인을 누르면 DB에 중복되는 아이디가 있는지 확인하다.
  • 비밀번호를 4자리 이상으로 입력해야 한다. (비밀번호는 해시로 암호화 한다)
  • 회원가입 할 때 ESP32의 웹 서버 IP주소를 입력하면 디바이스가 할당된다.
  • 이메일도 중복되지 않아야지 가입이 된다.

7. 비밀번호 찾기

  • 로그인을 만들면서 만약 비밀번호를 까먹으면 새로 가입해야 하는 번거로움이 생겼다.

만약 새로 가입하지 않을려면 DB를 직접 수정해야 했다.

  • 그래서 비밀번호 찾기를 만들기로 결정했다.
  • PHP MAILER를 이용해서 이메일로 비밀번호 재설정 코드를 보내줬다.

  • 이렇게 재설정 인증 코드가 이메일로 온다.

  • 인증 코드를 입력하면가 일치하면 비밀번호가 재설정 된다.

3. 기대효과

    1. 웹을 통한 원격 문 열기로 인해 출입의 편의성이 향상됩니다.
    1. 외부 출입자의 감지와 출입 기록으로 보안 강화와 출입 관리가 용이해집니다.
    1. 기숙사 내 온도와 습도를 실시간으로 모니터링하여 안전하고 편리한 환경을 조성합니다.

4. 마무리

이 프로젝트는 스마트 기숙사 시스템으로 원격 문 열기와 출입 감지, 온/습도 모니터링 등을 제공합니다. 다양한 센서와 LCD 디스플레이를 활용하여 학생들의 안전과 편의성을 향상시킬 수 있습니다. 이 프로젝트는 현대적인 기술과 창의적인 아이디어를 결합하여 효율적인 기숙사 관리 시스템을 구축하는 데 성공하였습니다.

GITHUB

https://github.com/MinSeok0123/BSSMSECOM