From 45a39e5cb2e2aca05eac88f8be33059f7f331056 Mon Sep 17 00:00:00 2001 From: seoamugae Date: Fri, 9 Jan 2026 13:24:24 +0900 Subject: [PATCH] modify --- README.md | 52 ++++++++++++++++++++++------------------------------ 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 0df92c3..aa60c75 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 빛 추적 스마트 전력 제어 시스템 -## 1. 프로젝트 개요 +## 프로젝트 개요 본 프로젝트는 태양광 패널의 발전 효율을 향상시키고, 생성된 전력을 사용자 환경에 맞게 제어하기 위한 IoT 기반 통합 전력 관리 시스템이다. 일반적인 고정형 태양광 패널은 태양의 위치 변화나 주변 환경에 따른 조도 차이를 반영하지 못해 효율 저하가 발생한다. @@ -9,13 +9,7 @@ 본 시스템은 STM32–Raspberry Pi–Arduino로 구성된 분산 구조를 가지며, 각 장치는 Wi-Fi 및 Bluetooth 통신을 통해 유기적으로 동작한다. -## 2. 시스템 구성 및 역할 - -- #### **STM32 Nucleo-F411RE** - - CDS 센서 8채널 입력을 통한 조도 측정 - - 조도 분포 분석 후 태양광 패널 방향 자동 조정 - - 태양광 패널 출력 전압 측정 - - ESP8266 기반 Wi-Fi 통신으로 서버에 데이터 전송 +## 시스템 구성 및 역할 - #### **Raspberry Pi 5** - 다중 클라이언트 소켓 서버 운영 @@ -23,6 +17,12 @@ - Bluetooth 통신을 통해 Arduino와 제어 명령 중계 - 시스템 전체 데이터 흐름 관리 허브 역할 수행 +- #### **STM32 Nucleo-F411RE** + - CDS 센서 8채널 입력을 통한 조도 측정 + - 조도 분포 분석 후 태양광 패널 방향 자동 조정 + - 태양광 패널 출력 전압 측정 + - ESP8266 기반 Wi-Fi 통신으로 서버에 데이터 전송 + - #### **Arduino UNO** - 서버로부터 패널 상태 및 전압 정보 수신 - LCD를 통한 실시간 상태 표시 @@ -30,15 +30,23 @@ - 릴레이 제어 결과를 서버로 피드백 -## 3. 통신 구조 -- STM32 ↔ Raspberry Pi : Wi-Fi -- Arduino ↔ Raspberry Pi : Bluetooth +## 담당 역할 -중앙 서버인 Raspberry Pi가 모든 데이터를 중계·관리하는 허브 구조로 설계되었다. +### **IoT 서버 설계 및 구현** + +#### ① IoT 소켓 서버 설계 및 구현 +- 다중 클라이언트 접속을 고려한 TCP 서버 구현 +- ID/PW 기반 클라이언트 인증 처리 +- 장치별 메시지 분기 및 브로드캐스트 기능 구현 + +#### ② STM32 데이터 수신 및 DB 연동 +- 센서/전압 데이터 패킷 포맷 정의 +- 수신 문자열 파싱 로직 구현 +- MariaDB 연동 및 실시간 INSERT 처리 --- -## 4. 주요 기능 +## 주요 기능 ### 1) 태양광 자동 추적 - CDS 센서 간 조도 비교를 통해 최대 광량 방향 계산 @@ -57,23 +65,7 @@ --- -## 5. 담당 역할 - -### **IoT 서버 설계 및 구현** - -#### ① IoT 소켓 서버 설계 및 구현 -- 다중 클라이언트 접속을 고려한 TCP 서버 구현 -- ID/PW 기반 클라이언트 인증 처리 -- 장치별 메시지 분기 및 브로드캐스트 기능 구현 - -#### ② STM32 데이터 수신 및 DB 연동 -- 센서/전압 데이터 패킷 포맷 정의 -- 수신 문자열 파싱 로직 구현 -- MariaDB 연동 및 실시간 INSERT 처리 - ---- - -## 6. 트러블슈팅 +## 트러블슈팅 ### 1) **Wi-Fi 통신 중 모터 제어 불안정** - 문제: 통신 루틴이 블로킹 방식으로 동작하며 모터 회전이 끊김 - 해결: 타이머 인터럽트 기반 비동기 모터 제어 구조로 변경