프로젝트 목록

AI · Data Analysis

Featured

Leafree: AI 기반 스마트팜 환경 제어 시스템

Leafree는 식물 이름을 음성 또는 앱으로 입력하면, 작물별 생장 데이터를 바탕으로 온도·습도·조도·토양 수분 등 재배 환경을 자동 설정하고 실시간으로 제어하는 가정용 AI 스마트팜입니다. Android 앱, Spring Boot 백엔드, FastAPI 기반 LLM 서비스, MQTT, STM32·Raspberry Pi 디바이스를 하나의 흐름으로 연결해, 식물을 처음 키우는 사용자도 더 쉽게 재배를 시작할 수 있도록 설계했습니다.

Leafree AI smart-farm product

프로젝트 유형

AI · Data Analysis

진행 기간

2025.04 — 2025.05

진행 상태

완료

담당 역할

AI Engineer

프로젝트 구성

팀 프로젝트 · 4명

대표 여부

대표 프로젝트

Tech Stack

사용 기술

AndroidKotlinJetpack ComposeSpring BootMySQLPythonFastAPILangChainRAGFirebase Cloud MessagingSTM32Raspberry PiQT

Key Highlights

핵심 성과

  • 01

    Android 앱의 실시간 모니터링, 재배 일지, FCM 푸시 알림으로 원격 관리 경험 제공

  • 02

    STM32 기반 워터·에어 솔루션으로 급수, 조명, 환기 등 액추에이터를 제어

  • 03

    온습도, 조도, CO₂, 토양 수분 센서 데이터를 MQTT로 수집하고 환경 제어에 반영

Project Story

상세 내용

작물을 고르는 경험에서 환경 제어까지

식물을 키우고 싶어도 “물을 얼마나, 언제 줘야 하는지”부터 막막한 경우가 많습니다. Leafree는 이 지점을 줄이기 위해 시작했습니다. 사용자는 음성 또는 앱에서 식물 이름을 선택하거나 입력하고, 시스템은 해당 식물의 온도·습도·조도·토양 수분 기준을 준비합니다. 이후 재배기 내부의 센서 값과 기준을 비교해 필요한 제어를 수행합니다.

데이터가 없을 때도 멈추지 않는 식물 정보 흐름

작물 정보 API는 먼저 로컬 데이터셋에서 식물명을 찾아 반환합니다. 등록된 정보가 없으면 PlantDataCreator가 생성형 AI를 통해 생장 데이터를 만들고, 정규화한 결과를 다시 데이터셋에 저장합니다. 이미지 역시 요청 시 식물별 캐릭터 에셋을 생성해 제공합니다. 정해진 데이터만 보여 주는 대신, 새로운 작물 요청에도 유연하게 대응할 수 있도록 한 구조입니다.

디바이스와 애플리케이션을 잇는 제어 구조

센서와 액추에이터는 STM32 NUCLEO-F103RB를 중심으로 구성했습니다. DHT22, BH1750, MH-Z19, 토양 수분 센서에서 환경을 읽고 워터 펌프, 서보 모터, 조명·에어 솔루션을 제어합니다. MQTT는 디바이스, 백엔드, Android 앱 사이의 실시간 상태 전달 채널로 사용했습니다. Raspberry Pi는 Whisper Tiny 기반 음성 인식과 Qt 디스플레이를 담당해, 앱을 열지 않아도 기기 가까이에서 조작하고 상태를 확인할 수 있게 했습니다.

Voice / Android App
        │ plant selection · control request
        ▼
Spring Boot Backend ─────── FastAPI LLM Service
        │                         │
        │ MQTT                    └─ plant profile / character image
        ▼
STM32 + sensors ───────► pump · servo · light · air solution
        │
        └──► real-time status / FCM notification / growing journal

사용자가 보는 화면과 운영 흐름

Android 앱은 Jetpack Compose로 구성하고, Retrofit을 통한 API 통신과 Paho MQTT 기반 실시간 수신을 결합했습니다. Firebase Cloud Messaging으로 환경 이상 또는 주요 이벤트를 알리고, 사용자는 앱에서 재배 상태와 일지를 확인할 수 있습니다. 백엔드는 Spring Boot, JPA, Redis, MySQL, JWT 인증을 기반으로 하며 FastAPI 서비스와 WebClient로 연동합니다. 배포 환경은 Docker, Jenkins, Nginx, Certbot을 사용하도록 구성했습니다.

My Contributions

주요 기여

  • FastAPI와 LLM/RAG를 이용해 미등록 식물의 생장 정보와 캐릭터 이미지를 생성
  • 음성·앱 입력으로 식물명을 받아 작물별 권장 생장 환경을 자동 구성

Related Links

관련 링크