프로젝트 목록

Plantify 스마트 화분

반도체 경진대회 은상2024.09 ~ 2024.12

마이크로프로세서 수업에서 3명이 만든 스마트 화분입니다. 아두이노 UNO가 센서 7종을 읽고, ESP32-CAM이 카메라 영상과 센서 값을 웹 페이지로 보여 줍니다. 우송대학교 반도체 경진대회에서 은상을 받았습니다.

Role
주제와 전체 구조, 일정과 역할 분담, 센서 조사, 코드 보조와 교차 검토, 발표
Team
3명
Result
우송대학교 반도체 경진대회 은상
Stack
Arduino UNO, ESP32-CAM, C++, UART, WebSocket
ESP32가 띄운 웹 페이지
센서 값 7개 표와 카메라 영상, 재생·촬영·LED 버튼이 있는 웹 페이지
앱 화면 (팀원 담당)
센서 값을 보여 주는 안드로이드 앱 화면

Overview

화분 상태를 센서로 읽고, 떨어진 곳에서도 카메라와 수치로 확인하는 것이 목표였습니다. 센서는 조도, 온습도(DHT22), 미세먼지, 토양 수분, 수위, 연기(MQ-2)이고, 급수 펌프와 서보 모터, 조명용 LED 12개를 달았습니다.

What I Did

  • 주제를 정하고 전체 구조를 잡음, 일정과 역할 분담
  • 센서별 원리와 보정 방법 자료 조사, 센서 라이브러리 수정
  • 아두이노 코드 보조와 팀원 코드 교차 검토
  • 발표 자료 제작과 발표

Problem Solving

센서 값이 잘못 들어옴 (제 담당)

문제
회로에서 읽어 오는 센서 값이 실제와 맞지 않았습니다.
해결
센서 라이브러리 소스를 직접 고쳐 회로에서 읽는 값이 맞게 나오도록 했습니다.

웹 페이지를 보드에 올려야 함

문제
ESP32-CAM은 따로 파일 서버가 없어서, 화면 HTML을 펌웨어 안에 넣어야 했습니다.
해결
HTML을 gzip으로 압축한 뒤 C 바이트 배열로 바꿔 넣었습니다. 변환 도구는 C로 작성해, 파일을 1바이트씩 읽어 16진수로 쓰고 파일 크기를 함께 기록하게 했습니다.

Looking Back

웹 화면의 버튼으로 펌프와 서보를 움직이는 연결은 마지막 버전에서 완성하지 못했고, 시리얼 명령으로만 제어했습니다.