메뉴 전체보기

회원메뉴

독립형 태양광 및 수동 크랭크 스마트 급수 시스템 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3334
제목 : 독립형 태양광 및 수동 크랭크 스마트 급수 시스템
2026-09-23 13:55

소개: 독립형 태양광 및 수동 크랭크 스마트 급수 시스템


소개: 독립형 태양광 및 수동 크랭크 스마트 급수 시스템


소개: 독립형 태양광 및 수동 크랭크 스마트 급수 시스템


소개: 독립형 태양광 및 수동 크랭크 스마트 급수 시스템


축 늘어진 식물을 바라보며 "정말 미안해, 깜빡했어"라고 속삭여 본 적, 다들 한 번쯤 있죠. 식물이 민원을 접수할 수 있다면, "불규칙한 물주기"가 가장 많은 불만을 차지할 겁니다.

우리 중 상당수는 더 푸르른 집을 꿈꿉니다 — 발코니 정원, 창가의 다육식물, 실제로 생기가 느껴지는 한구석 같은 것 말이죠. 문제는 식물이 여러분의 일정에 맞춰 기다려 주지 않는다는 겁니다. 식물을 키우고 싶어 하는 많은 사람은 언제 물을 줘야 할지 모르는 완전 초보이고, 바쁜 사람들은 여행을 다니느라 매주 식물을 돌보러 올 수 없습니다. 그렇게 푸르른 꿈은 조용히 갈색 잎의 흔적으로 변해 갑니다.

태양광 발전과 약간의 수고만으로, 벽면 콘센트 하나 없이 식물이 스스로 물을 줄 수 있다면 어떨까요? 이것이 바로 이 프로젝트입니다. 플러그를 꽂으라고 절대 요구하지 않는 독립형 스마트 급수 시스템이죠. 작은 태양광 패널과 수동 크랭크 발전기에서 에너지를 모읍니다 — 실제로 구성한다면 고정식 자전거를 페달링해 배터리를 충전하는 모습을 떠올려 보세요. 감지, 판단, 급수는 하나의 독립된 루프에서 이루어지며, 전체 시스템은 수확한 에너지만으로 완전히 작동할 만큼 전력 소비가 적습니다. 벽면 어댑터도, 전기 요금도, 죄책감도 없습니다.

무엇을 하는지 살펴보겠습니다:

  1. 완전 자동 급수. 토양 수분, 공기 온도, 습도를 측정하고 식물이 목마른지 — 그리고 얼마나 목마른지 — 판단한 다음 소형 펌프를 작동시킵니다. 모든 과정이 자동으로 이루어집니다.
  2. 스스로 조정하는 AI. 몇 번 깨어날 때마다 WiFi를 통해 연결되어 클라우드 AI가 최근 측정값을 검토하고, 식물과 기후에 맞도록 자체 급수 규칙을 조정합니다.
  3. 극도로 낮은 전력 소비. ESP32-S3는 거의 평생을 약 10 µA의 딥 슬립 상태로 보내며, 30분마다 몇 초 동안 깨어납니다.
  4. 직접 제작한 완전 오픈 시스템. 제가 직접 납땜한 맞춤형 전원 PCB, 시판 센서, 오픈 Arduino 펌웨어로 구성되어 있으며 — 이 튜토리얼에는 PCB 설계, 코드, 배선 등 필요한 모든 파일이 포함되어 있습니다.

사용법은 간단합니다:

  1. 30분마다 스스로 깨어나 식물을 확인하며, 버튼을 눌러 지금 바로 깨우고 강제로 확인하게 할 수도 있습니다.
  2. RGB LED 하나로 모든 상태를 한눈에 알 수 있습니다: 녹색 = 정상; 파란색 = 급수 중; 빠르게 흰색으로 깜빡임 = 급수 완료; 노란색 = 배터리 부족, 일시 정지; 빨간색 = 급수 실패(펌프 막힘 또는 물통 비어 있음); 꺼짐 = 배터리가 위험할 정도로 부족하여 버튼에만 반응함.
  3. 인터넷은 선택 사항입니다. 핵심 급수 기능은 완전히 오프라인으로 작동합니다. AI가 설정을 미세 조정하도록 몇 번의 주기마다 WiFi에 연결할 뿐이며 — WiFi가 없어도 문제없습니다. 내장 규칙으로 대신 작동합니다.
  4. 완전한 시리얼 디버그 인터페이스도 제공됩니다. 시리얼을 통해 기기를 깨울 수 있고, 메뉴 시스템에서 거의 모든 기능을 명령줄로 제어할 수 있습니다.

실수 속에 진짜 배움이 있기 때문에, 시행착오로 가득하지만 보람 있는 전체 여정도 안내하겠습니다. 로드맵은 다음과 같습니다:

  1. 2–3단계 — 아이디어: 왜 이 프로젝트를 시작했는지, 그리고 그 바탕에 있는 "식물처럼 전력을 얻는" 사고방식.
  2. 4–10단계 — 설계: 에너지 수확부터 AI까지 시스템의 각 구성 요소.
  3. 11–12단계 — 배선: 센서, 펌프, LED를 ESP32-S3에 연결하기.
  4. 13–14단계 — 코드: 측정하고, 판단하고, 절전하는 펌웨어.
  5. 15–20단계 — 전원 PCB: 햇빛과 크랭크 회전을 배터리 전력으로 바꾸는 보드 설계.
  6. 21–22단계 — 납땜: 그 보드를 조립하기.
  7. 23–24단계 — 인클로저: 전자 장치의 보금자리가 될 케이스 설계 및 제작.
식물에게는 집사가 생기고, 여러분은 벽면 콘센트를 지킬 수 있습니다.




STEP 1. 준비물


참고: 저희는 중국의 학부생이므로 사용한 소프트웨어와 부품 모델이 여러분이 사는 곳에서 구할 수 있는 것과 다를 수 있습니다 — 현지에서 구할 수 있는 동급 부품으로 자유롭게 바꿔 사용하세요.

메인 컨트롤러

  1. ESP32-S3 개발 보드

전원

  1. 태양광 패널 — 12 V / 7 W

수동 크랭크 발전기 — 크랭크 핸들이 달린 25 V / 8 W DC 모터, 브리지 정류기 포함 (AC → DC), 낮은 내부 저항

  1. 리튬 배터리 — 3.7 V (18650 셀)×2

주변 장치(센서 및 액추에이터)

  1. 정전용량식 토양 수분 센서
  2. 온도 및 습도 센서 — DHT22
  3. 모멘터리 푸시 버튼
  4. RGB LED(공통 캐소드)
  5. 미니 워터 펌프 — 5 V(USB 전원), MOSFET 드라이버 모듈을 통해 구동 (IRF520 또는 유사 제품)

기본 하드웨어

  1. 브레드보드
  2. 점퍼 와이어
  3. 단심 구리선
  4. 저항기(다양한 값)

소프트웨어

  1. Arduino IDE
  2. EasyEDA(회로도, PCB 레이아웃 및 주문용)

시판 모듈

  1. CN3791 — 태양광 MPPT 충전기
  2. TP4056 — 충전/방전 콤보 모듈
  3. XL6009 — 부스트 컨버터
  4. MT3608 — 부스트 컨버터
  5. CW2015 — 배터리 잔량 게이지

PCB 부품

  1. 100 µF 전해 커패시터 ×2(SMD)
  2. 1000 µF 전해 커패시터 ×2(스루홀)
  3. 1N5819 쇼트키 다이오드 ×2(SMA)
  4. 1N4744A 제너 다이오드 ×1(15 V, DO-41)
  5. SMBJ24A TVS 다이오드 ×1(SMB)
  6. 0.5 A 리셋터블 퓨즈 ×2(0805)
  7. 스크루 터미널 5.0 mm, 2핀 ×3(태양광, 발전기, GND)
  8. PH2.0 커넥터, 2핀 ×3(배터리)
  9. XH2.54 커넥터, 2핀 ×2(펌프, GND)
  10. XH2.54 커넥터, 4핀 ×1(배터리 모니터 → 개발 보드)
  11. USB-A 암 커넥터(측면 장착형) ×1
  12. 슬라이드 스위치(SS-12D10L5) ×2
  13. 0 Ω 저항기 ×1(0805)
  14. 테스트 포인트 ×1
  15. 2.54 mm 핀 헤더

기본 공구

  1. 멀티미터
  2. 납땜 키트(인두 + 납)
  3. USB 데이터 케이블(보드에 따라 Micro-USB 또는 Type-C)
  4. 전선 스트리퍼
  5. 핀셋

건축 모형 제작 재료

  1. PVC 폼보드
  2. 나뭇결 스티커
  3. PVC 폼보드 접착제
  4. 디본더
  5. 플라스틱 병
  6. 열수축 튜브




STEP 2. 코드, 회로도 및 PCB 파일


https://github.com/mimeticword/off-the-grid-codes-and-PCB-files.git

(사실 Step 0이라고 부르는 편이 맞습니다.) 쉽게 참조할 수 있도록 여기에 링크를 제공합니다. 전체 코드, 회로도 및 PCB 파일이 포함되어 있습니다.




STEP 3. 아이디어 구상 — 친환경적 생각에서 실제 계획으로


모든 프로젝트는 작은 불꽃에서 시작됩니다. 하나의 단어가 어떻게 실제 계획으로 발전했는지 보여드리겠습니다.

시작은 한 단어였습니다: 초록 — 단순한 색이 아니라 자연에 맞서지 않고 자연과 함께한다는 가치였습니다.

정말 친환경적인 무언가를 만들고 싶었다면, 첫 단계는 분명했습니다. 자연에서 본보기를 찾는 것이었습니다.

질문 1: 우리가 아는 것 중 가장 친환경적인 것은 무엇일까요?

식물입니다. 식물은 어디에도 연결되지 않고 배터리를 사지도 않지만, 수년 동안 자라고 적응하며 번성합니다.

질문 2: 식물은 실제로 어떤 영리한 일을 할 수 있을까요?

우리는 식물이 하는 일을 정리해 보았고, 그 결과는 조용하지만 매우 인상적이었습니다. 뇌가 없는데도 다양한 자기 조절 기능을 수행합니다:

  1. 가장 좋은 빛을 받기 위해 잎을 태양 쪽으로 기울입니다.
  2. 물과 CO₂의 균형을 맞추기 위해 작은 구멍(기공)을 열고 닫습니다.
  3. 광합성을 통해 햇빛을 바로 사용할 수 있는 에너지로 바꿉니다.

질문 3: 식물에서 무엇을 빌려올 수 있을까?

두 가지 원칙이 눈에 띄었다:

  1. 자가 발전. 식물은 햇빛으로 작동한다. 우리 기기도 그러지 말란 법이 있을까?
  2. 자가 조절. 식물은 빛, 수분, 온도 등 주변 환경을 계속 감지하고 그에 반응한다. 사람의 개입 없이 똑같이 작동하는 장치를 만들 수 있을까?

질문 4: 식물은 어디에서 한계를 보일까?

바로 여기서 아이디어가 명확해졌다. 아무리 영리해도 식물은 스스로 물을 줄 수 없다. 비를 기다릴 뿐이다. 비가 오지 않으면 완벽한 광합성을 하더라도 시들어 버린다.

그 빈틈이 바로 우리의 기회다.

우리의 초기 계획:

식물처럼 살아가지만 식물의 한 가지 약점을 해결하는 기기를 만든다:

  1. 식물처럼 동력을 얻기 — 태양에서 에너지를 수확한다(흐린 날에는 수동 크랭크도 사용). 벽면 콘센트는 필요 없다.
  2. 식물처럼 조절하기 — 토양, 온도, 습도를 감지한 다음 언제, 얼마나 물을 줄지 스스로 결정한다.
  3. 스스로 물 주기 — 식물이 할 수 없는 단 한 가지 일이다.

한마디로 말해, 태양광으로 작동하며 스스로 물을 주는 식물이다.




STEP 4. 아이디어 구상에서 계획으로


아이디어 구상에서 계획으로


아이디어는 명확했다. 태양광으로 작동하며 스스로 물을 주는 식물이다. 하지만 말처럼 실현하는 일이 간단하지는 않았다. 그래서 이를 기능별로 나누고 각 기능에 무엇이 필요한지 정리했다.

기능 1: 스스로 동력을 얻기.

태양광은 당연한 선택이었다. 무료이고, 깨끗하며, 어디에나 있기 때문이다. 하지만 두 가지 문제가 눈에 띄었다.

첫째, 며칠 동안 해가 모습을 감추면 어떻게 할까? 주 전원만큼 친환경적인 백업이 필요했다. 풍력은 너무 부피가 크고, 열전 발전은 보장할 수 없는 온도 차가 필요하다. 수동 크랭크 발전기는 조건에 딱 맞았다. 배출가스가 없고, 사람의 힘으로 작동하며, 상징성도 좋았다.

둘째, 두 전원 모두 안정적이지 않으면 어떻게 할까? 구름도 끼고 팔도 지칠 수 있다. 그래서 충전식 배터리를 추가했다. 두 전원에서 얻은 에너지를 저장하고 시스템에 안정적인 전력을 공급하는 저장고다. 충전량이 남아 있는 한 기기는 계속 작동한다.

전력 흐름: 태양광 + 수동 크랭크 → 배터리 → 시스템. 벽면 콘센트도, 일회용품도 없다. 햇빛과 땀, 그리고 약간의 화학적 에너지 저장만 있으면 된다.

기능 2: 스스로 물 주기.

이는 세 가지 문제로 나뉘었다.

언제 물을 줘야 하는지 어떻게 알 수 있을까? 이상적인 세상이라면 식물 종, 빛, 바람, 기압, 계절 등 모든 것을 추적할 것이다. 하지만 센서는 추가될 때마다 비용과 전력 소모, 로직의 복잡성이 늘어난다. 우리는 선을 그어야 했다. 가장 적은 비용으로 가장 많은 정보를 얻을 수 있는 센서는 두 개였다. 토양 수분(지금 목이 마른가?)과 공기 온도/습도(토양이 얼마나 빠르게 마르고 있는가?)였다. 이 두 센서는 식물에 필요한 것과 환경이 변화하는 상황이라는 양쪽을 모두 다룬다. 맹목적인 타이머보다 훨씬 낫기에 충분하다. 다른 데이터를 추가하면 더 정교하게 조정할 수 있지만 필수는 아니다.

데이터를 어떻게 해석할까? 센서는 원시 숫자를 제공한다. 이를 읽고 임계값과 비교하며 언제 물을 줄지 결정할 두뇌가 필요하다.

물을 어떻게 공급할까? 간단한 드라이버로 제어하는 소형 펌프를 사용한다.

그러면 세 가지 구성 요소가 생긴다: 센서 → 두뇌 → 펌프. 남은 질문은 두뇌를 무엇으로 할 것인가였다. Raspberry Pi는 강력하지만 전력 소모가 커서 배터리를 몇 시간 만에 소진한다. 기본 Arduino는 저렴하지만 무선 기능이 없다. ESP32-S3는 그 중간에 있다. 저전력이고, WiFi가 내장되어 있으며, 모든 장치를 연결하기에 충분한 핀이 있고, 가격도 Arduino와 거의 같다.

이것이 계획이다. 태양과 크랭크로 전력을 공급하고, 물을 내보내며, 그 중간에서 두뇌가 판단을 내린다.

방금 정리한 내용을 돌아보니 서로 다른 두 가지 작업이 드러났다. 첫 번째는 에너지에 관한 것이고, 두 번째는 지능에 관한 것이다. 이 두 작업은 서로 거의 의존하지 않는다. 두뇌는 전력이 태양에서 왔는지 수동 크랭크에서 왔는지 신경 쓰지 않는다. 충분한 전력만 있으면 된다. 전력 시스템 역시 두뇌가 에너지를 어떻게 사용하는지 신경 쓰지 않는다. 가용량보다 더 많은 전력을 요구하지만 않으면 된다.

이러한 분리는 유용하다. 프로젝트의 각 절반을 독립적으로 설계하고 디버깅할 수 있다는 뜻이기 때문이다. 그래서 우리는 공식적으로 프로젝트를 두 개의 독립적인 루프로 나누었다. 에너지 루프 (수확, 저장, 공급)와 지능 루프 (감지, 결정, 실행)이다.

앞으로 이어질 단계에서 두 루프를 모두 안내하겠지만, 어느 것을 먼저 다룰지와 각각에 얼마나 시간을 쓸지는 전적으로 여러분에게 달려 있다.

준비됐는가? 시작하자.




STEP 5. 핵심 상태 머신


핵심 상태 머신


이제 지능 루프를 한 번에 한 부분씩 구축한다. 아키텍처, 하드웨어, 그리고 코드 순서다. 이번 단계는 첫 번째 부분으로, 두뇌가 무엇을 하는지 정하는 과정이다.

임베디드 개발이 처음이라면 간단히 말해 다음과 같다. 완전한 컴퓨터 대신, 센서를 관찰하고 실시간으로 반응하며 전력을 과하게 먹지 않고 조금씩 사용하는 작은 칩을 위한 소프트웨어를 작성한다. 이 프로젝트에는 ESP32-S3를 선택했다. 소형이고(우표 크기), 초보자에게 친화적이며(Arduino IDE에서 프로그래밍 가능), 학생 예산으로도 충분히 저렴하고, 기능도 균형 잡혀 있다. 듀얼 코어, 내장 WiFi 및 BLE, 충분한 GPIO 핀, 그리고 전류 소비를 약 10 µA까지 낮추는 딥 슬립 모드를 갖췄다. 언제 물을 줄지 결정할 만큼 똑똑하고, 클라우드 AI에 문의할 수 있을 만큼 연결성이 있으며, 작은 배터리 하나로 몇 주 동안 작동할 만큼 효율적이다.

그리고 아키텍처가 가장 먼저 고려해야 할 것은 전력이다. 깨어 있는 ESP32-S3는 작동하는 내내 수십 mA, 대략 40 mA를 소비한다. 이를 딥 슬립모드로 전환하면 소비 전류가 약 10 µA로 떨어진다. 수천 배나 적은 수치이며, 모든 와트가 태양이나 우리의 팔에서 나와야 할 때 이는 매우 중요하다.

다행히 식물의 변화는 느리다. 토양은 1초 만에 마르지 않고, 온도도 1분 만에 급변하지 않는다. 따라서 두뇌가 24시간 내내 지켜볼 이유가 없다. 거의 항상 잠들어 있다가 가끔 식물을 확인하기만 하면 된다.

이렇게 간단한 리듬이 생긴다: 깨어나고(30분), 센서를 읽고, 판단하고, 동작한 뒤 다시 잠듭니다.

이 리듬에는 한 가지 예외가 있습니다. 보드에 처음 전원이 들어오면 센서를 읽게 합니다 즉시, 첫 번째 수면에 들어가기 전에요. 그렇지 않으면 첫 번째 측정값 하나를 얻기 위해 30분을 기다려야 하니까요.




STEP 6. 급수 과정


급수 과정


흙이 마르면 두뇌가 펌프를 켭니다. 어려운 부분은 언제 멈출지 아는 것입니다.

펌프가 작동하는 동안 빠르게 변하는 것은 토양 수분뿐입니다. 온도와 습도는 1분 만에 거의 변하지 않습니다. 그래서 토양 수분을 매초 측정하고, 온도와 습도 측정값은 깨어난 주기의 값을 유지합니다.

토양이 목표 상태에 도달하면 멈춥니다. (그 목표가 무엇인지는 다음 단계에서 정하겠습니다.)

하지만 고장 난 펌프, 빈 물탱크, 또는 목표에 절대 도달하지 않는 센서처럼 문제가 생기면 어떨까요? 토양 수분만 기준으로 멈춘다면 펌프가 영원히 작동할 수도 있습니다. 그래서 안전장치를 추가합니다: 60초 시간 제한입니다. 어떤 경우든 멈춥니다. 화분에 물이 넘치거나 배터리가 방전되는 것보다는 물이 조금 부족한 편이 낫습니다.

이것이 급수 과정입니다. 펌프를 켜고, 토양을 확인하며, 충분히 젖었거나 타이머가 끝나면 멈춥니다. 다음은 두뇌가 언제 시작할지 판단하는 방법입니다.




STEP 7. 의사 결정 매트릭스


의사 결정 매트릭스


신호는 세 가지입니다. 토양 수분, 온도, 습도입니다. 어려운 점은 제각각인 세 숫자를 명확한 예/아니요 판단으로 바꾸는 것입니다.

각 신호를 여러 단계로 나눕니다.

  1. 토양: 네 단계(바싹 마름부터 젖음까지)입니다.
  2. 온도와 습도: 각각 세 단계(더움/쾌적함/추움, 건조/보통/습함)입니다.

그러면 가능한 상태는 4 × 3 × 3 = 36가지입니다. 각 상태에는 급수 또는 급수하지 않음이라는 결정이 할당됩니다. 덥고 건조한 공기 속에서 토양이 말라 있다면? 급수합니다. 온화한 공기 속에서 토양이 촉촉하다면? 급수하지 않습니다. 36가지를 모두 채우면 3차원 격자가 완성됩니다. 각 작은 정육면체가 무엇을 해야 하는지 알려 주는 루빅스 큐브와 같습니다.

두뇌는 센서를 읽고, 자신이 어느 큐브에 해당하는지 찾아 지시에 따릅니다.

이 동일한 격자는 앞에서 남겨 둔 질문에도 답해 줍니다. 언제 급수가 '완료'되는가? 펌프가 작동하는 동안 변하는 것은 토양 수분뿐입니다. 토양 축을 따라 큐브가 늘어선 기둥을 떠올려 보세요. 토양이 젖을수록 우리는 그 기둥을 따라 아래로 이동합니다. '급수' 큐브에서 '급수하지 않음' 큐브로 이동하는 순간, 급수가 완료됩니다.

따라서 의사 결정 매트릭스는 두 가지 역할을 합니다. 언제 시작할지 알려 주고, 한 번에 큐브 하나씩 이동하면서 언제 멈출지도 알려 줍니다.




STEP 8. 버튼, 시리얼 포트 및 메뉴


버튼, 시리얼 포트 및 메뉴


보드는 대부분의 시간 동안 자동 조종으로 작동합니다. 30분간 수면하고, 깨어나 센서를 읽고, 식물을 확인하고, 판단한 다음 다시 잠듭니다. 완성된 기기에는 훌륭하지만 디버깅에는 끔찍합니다. 테스트를 한 번 더 실행하려고 30분을 기다리는 일은 금세 지칩니다.

그래서 수동 재정의 기능을 두 가지 추가했습니다. 버튼과 시리얼 포트입니다. 둘 중 어느 것이든 보드를 즉시 깨워 새로 측정하게 합니다.

하지만 두 가지 수동 트리거와 자동 타이머가 모두 작동한다면 누가 우선일까요? 엄격한 우선순위를 정했습니다. 시리얼 우선, 버튼 두 번째, 타이머 마지막사람이 언제나 프로그램보다 우선합니다.

이렇게 하면 깨우는 문제는 해결됩니다. 하지만 깨어나는 것과 대화하는 것은 다릅니다. 버튼은 단지 '지금 확인해'라고 말할 뿐, 질문을 하거나 설정을 조정하거나 구성 요소를 테스트하게 해 주지는 않습니다. 이를 위해 시리얼 메뉴가 필요합니다. 시리얼 메뉴는 기기의 두뇌로 들어가는 명령줄 창입니다.

접속 방법은 다음과 같습니다. 보드가 다시 수면에 들어가기 직전마다 10초 동안 일시 정지합니다. 그 시간 동안 시리얼 모니터에 아무 문자나 입력하면 메뉴가 열립니다. 아무 입력도 하지 않으면 보드는 스스로 다시 수면에 들어갑니다.

메뉴에 들어오면 여러분이 제어권을 가집니다. 자동 수면은 없으며, sleep 명령만 보드를 다시 수면으로 보냅니다. 필요한 모든 기능은 몇 가지 명령으로 처리할 수 있습니다.

  1. read — 새 측정값 읽기
  2. state — 현재 임계값과 활성 급수 셀 표시
  3. run — AI 조정 수동 실행
  4. p 1 / p 0 — 펌프 켜기/끄기
  5. led R,G,B — LED 색상 설정
  6. help — 실제로 기억하게 될 명령
  7. sleep — 유일한 종료 방법




STEP 9. 배터리 확인


배터리 확인


지금까지 만든 모든 기능은 보드에 충분한 전력이 있다고 가정합니다.. 하지만 전원은 배터리에서 공급되므로 한정되어 있고, 언젠가는 배터리가 부족해질 수 있습니다.

그래서 깨어날 때마다 가장 먼저 확인하는 관문을 추가합니다. 다른 어떤 작업보다 먼저 배터리 전압을 읽습니다. 그 숫자 하나로 이번에 두뇌의 어느 부분까지 실행할 수 있는지가 결정됩니다.

가능한 상태는 세 가지입니다.

  1. 정상. 배터리가 충분히 충전되어 있으므로 보드는 전체 상태 머신을 실행합니다. 감지하고, 판단하고, 필요하면 급수합니다.
  2. 낮음. 충전량이 아직 조금 남아 있습니다. 보드는 30분 주기를 유지하고 버튼과 시리얼도 계속 작동하지만 급수는 건너뜁니다. 센서를 읽는 데는 비용이 적지만, 물을 펌핑하는 데는 비용이 큽니다.
  3. 위험. 배터리가 거의 완전히 소진되었습니다. 이제 30분 타이머조차 멈춥니다. 깨어나는 데 드는 비용이 이득보다 크기 때문입니다. 보드는 딥 슬립에 들어가 그 상태를 유지하며, 오직 버튼을 누르거나 시리얼 연결이 이루어졌을 때만 깨어납니다.

급수 중 갑자기 꺼지거나, 더 나쁘게는 다시 충전할 수 있는 지점 아래까지 배터리를 조용히 방전시키는 대신, 시스템은 단계적으로 성능을 낮춥니다.

이제 마지막 한 가지가 남았습니다. 보드가 단 하나의 LED만으로 현재 상태를 어떻게 표시하는지입니다.




STEP 10. 상태 표시등


상태 표시등


딥 슬립 중에도 계속 켜져 있는 RGB LED를 추가했습니다. 한 번 흘끗 보기만 해도 현재 상태를 바로 알 수 있습니다.

절전 중(멀리서 확인할 때 중요한 상태):

  1. 녹색 — 모두 정상.
  2. 빨간색 — 문제가 발생했습니다. 마지막 급수 시도가 제시간에 완료되지 않았습니다.
  3. 노란색 — 배터리가 부족해지고 있습니다.
  4. 꺼짐 — 배터리가 심각하게 부족합니다. LED를 켤 전력이 남아 있지 않습니다.

잠깐 깨어 있는 동안:

  1. 파란색 — 펌프가 작동 중입니다.
  2. 흰색 점멸 — 급수 사이클이 방금 완료되었습니다.

대가는 다음과 같습니다. LED는 약 6 mA를 소비하는 반면, 절전 상태의 ESP32는 고작 10 µA를 소비합니다. 수백 배나 더 큰 전류입니다. 독립형 시스템에서는 결코 무시할 수 있는 수준이 아닙니다. 하지만 우리는 이를 받아들였습니다. 컴퓨터에 연결해야만 상태를 확인할 수 있는 장치는 실제로 함께 사용하기 어렵습니다. LED는 시스템이 살아 있는 듯 느껴지게 하려고 전력을 사용하기로 한 유일한 부분이며, 몇 mA 정도의 전력은 그만한 가치가 있습니다.




STEP 11. 필터링 및 디바운싱


전압, 토양, 온도/습도 측정값은 모두 조금씩 흔들립니다. 이러한 흔들림이 임계값 바로 근처에서 발생하면 시스템이 잘못된 결정을 내릴 수 있습니다. 물을 주면 안 될 때 급수하거나, 물을 줘야 할 때 건너뛰거나, 정상 전압을 배터리 부족으로 오인할 수 있습니다. 따라서 단일 샘플은 신뢰할 수 없습니다. 해결 방법은 각 센서를 여러 번 읽고 중앙값을 취하는 것입니다. 중앙값은 평균보다 이상값에 강합니다. 하나의 크게 튄 값은 평균을 엉뚱한 방향으로 끌고 갈 수 있지만, 중앙값은 이를 무관한 이상치로 처리해 무시합니다. 실제로 토양 센서와 DHT22는 각각 세 번, 배터리는 다섯 번 샘플링한 뒤 각각의 중앙값을 사용합니다. DHT22에는 예열 시간도 필요합니다. deep sleep 직후의 첫 측정값은 엉터리인 경우가 많으므로, 집계를 시작하기 전에 몇 초 동안 안정화시킵니다. 여기에 더해 모든 임계값에는 히스테리시스 간격이 내장되어 있습니다. 상태가 바뀌려면 값이 실제로 충분한 여유를 두고 경계를 넘어야 하므로, 측정값이 흔들려도 시스템이 이 상태 저 상태로 계속 오가는 일이 없습니다.

버튼에도 비슷한 흔들림 문제가 있지만 이유는 다릅니다. 기계식 버튼을 누르면 금속 접점이 한 번에 깔끔하게 닫히지 않고, 안정될 때까지 몇 밀리초 동안 튀면서 열렸다 닫혔다를 반복합니다. 그 결과 칩은 실제로 한 번 누른 것을 열두 번의 ‘누름’으로 인식할 수 있습니다. 이 역시 같은 방식으로 디바운싱합니다. 버튼을 읽고, 잠시 기다린 다음, 다시 읽어서 두 번의 읽기가 일치할 때만 동작을 수행합니다. 한 번 누르면 한 번 동작합니다.




STEP 12. 전원 및 핀


전원 및 핀


스마트 루프의 설계가 끝났으니 이제 계획에서 제작으로 넘어갑니다. 부품을 구입하기 전에 각 부품에 무엇이 필요한지 이해해야 합니다. 모든 외부 부품에는 세 가지가 필요합니다: VCC, GND, 그리고 기능 핀입니다. 일부 부품에는 추가 전원도 필요합니다.

좋은 소식은 우리가 구입한 모든 로직 부품이 3.3V에서 작동하므로 하나의 전원 레일을 함께 사용할 수 있다는 것입니다(여러분의 부품도 확인하세요).

두 가지 예외가 있습니다. 배터리 전압 모니터는 이미 전원 보드에 있으므로 기능 핀(SDA, SCL, INT)만 ESP32로 연결합니다. 펌프는 별도의 전원에서 5V 및 250mA가 필요합니다—절대로 보드에서 직접 전원을 공급하지 마세요.

기능 핀 할당(특수 핀을 먼저 배정하고, 일반 핀은 정리하기 좋은 곳에 배치):

  1. 토양 센서 → ADC 핀
  2. 배터리 전압 모니터 → SDA, SCL, INT (I²C, 잔여 충전량 보고)
  3. 버튼 → RTC 핀(deep sleep에서 보드를 깨움)
  4. DHT22 → 일반 디지털 핀
  5. RGB LED → 일반 디지털 핀 3개
  6. 펌프 → 일반 디지털 핀(스위치만 담당), 전원은 별도

모든 배치를 시작하기 전에, 우리가 정한 핀 맵은 다음과 같습니다. 일반 핀은 보드에서 정리하기 좋은 위치로 바꿔도 됩니다. 코드만 그에 맞게 수정하면 됩니다. 두 핀은 고정되어 있으며, 아래에서 그 이유를 설명합니다.

  1. 토양 센서 → ADC(아날로그) → GPIO 16
  2. 배터리 모니터 → SDA → GPIO 8
  3. 배터리 모니터 → SCL → GPIO 9
  4. 배터리 모니터 → INT → GPIO 2
  5. 버튼 → RTC(깨우기) → GPIO 17
  6. DHT22 → 디지털 → GPIO 7
  7. RGB LED — 빨간색 → GPIO 6
  8. RGB LED — 녹색 → GPIO 5
  9. RGB LED — 파란색 → GPIO 4
  10. 펌프 → 스위치 → GPIO 15

변경할 수 없는 두 가지:

  1. 버튼 → GPIO 17, RTC 핀이어야 하기 때문입니다. RTC 핀만이 deep sleep 상태에서 칩을 깨울 수 있습니다.
  2. 배터리 모니터 → GPIO 8 / 9(SDA / SCL), ESP32-S3의 기본 I²C 핀이므로 별도의 설정 없이 Wire.begin()이 작동하기 때문입니다. INT → GPIO 2 는 선택 사항입니다. 배터리 상태 변화를 알리지만, 어차피 깨어날 때마다 게이지를 폴링하므로 핀이 부족하다면 연결하지 않아도 됩니다.

이제 드디어 브레드보드에 모든 것을 배치할 수 있습니다.




STEP 13. 브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드 제작


브레드보드는 전자 회로판의 화이트보드와 같습니다. 작은 구멍에 전선을 꽂아 회로를 그리는 방식이며, 실수해도(실수하게 될 겁니다) 그냥 전선을 뽑고 다시 그리면 됩니다. 납땜도, 영구적인 실수도 없이 순수한 시행착오의 즐거움만 누릴 수 있습니다.

제공된 시뮬레이션 배선도를 따라 하면 됩니다.

하지만 시작하기 전에 주의해야 할 부품이 하나 있습니다. 바로 DHT22입니다. 이 작은 온도 및 습도 센서는 단일 데이터 선을 통해 통신하며, 처음에는 쉽게 알아차리기 어려운 방식에 의존합니다. 단일 선 버스는 선을 풀업 해야 합니다. 즉, 저항을 사용해 알려진 높은 전압 상태로 유지해야 양쪽에서 선을 낮은 상태로 끌어내 신호를 보낼 수 있습니다. ESP32에는 내장 풀업이 있지만 약한 편(약 45 kΩ)이라 DHT22에는 턱없이 부족하고, 센서는 0만 응답하게 됩니다.

그래서 직접 추가합니다. DHT22의 데이터 선과 VCC 사이에 연결하는 4.7 kΩ~10 kΩ 저항하나만으로도 실제 수치를 보고하는 센서와 0만 내보내는 센서가 갈립니다.

기억해 두세요! 모든 것을 연결했는데 온도와 습도 값이 0으로 나온다면, 가장 먼저 풀업 저항이 제자리에 연결되어 있는지 확인하세요.




STEP 14. “스마트”와 함께하기——AI 적응 기능 추가


“스마트”와 함께하기——AI 적응 기능 추가


이제 기계는 스스로 작동하지만, 두뇌는 굳어 있습니다. 우리가 만든 의사 결정 매트릭스에는 “흙이 바싹 마르고 공기가 따뜻하면 물을 준다”고 되어 있고, 한 계절, 한 기후, 한 고도에서는 괜찮습니다. 같은 화분을 습한 해안이나 건조한 산비탈로 옮기면, 그 고정된 수치들은 어느새 더 이상 맞지 않게 됩니다. 가능한 모든 상황에 맞춰 일일이 매트릭스를 작성하는 대신, 우리는 보드가 자기보다 더 똑똑한 무언가에 도움을 요청하도록 가르쳤습니다.

아이디어는 이렇습니다. 보드는 이미 필요한 모든 것을 알고 있습니다. 흙, 온도, 습도, 그리고 (시간 서버에 확인하면) 현재 계절까지 말이죠. 그래서 다섯 번 깨어날 때마다 평소처럼 할 일을 하고 다시 잠드는 대신, WiFi에 연결해 작은 보고서를 대규모 언어 모델에 보내고, 현재 상황에 맞게 조정된 새로운 임계값을 받아옵니다. 멀리 있는 지능이 전체 시스템을 조용히 이끄는 셈입니다. 관엽식물이 포스에 가장 가까이 다가갈 수 있는 방식이라고나 할까요. 보드는 그 답을 저장하고 다음 몇 번의 사이클에 사용합니다.

설정은 네 단계입니다:

  1. WiFi — 네트워크를 지정합니다.
  2. API 키 — 원하는 LLM에 가입하고(우리는 DeepSeek를 사용합니다) 키를 발급받습니다.
  3. 프롬프트 — 여기서 약간의 요령이 필요합니다. LLM을 호출할 때마다 백지 상태에서 시작하므로, 프롬프트에 다음 내용을 모두 담아야 합니다: 모든 것: 식물 규칙, 현재 임계값, 최근 측정값, 그리고 반환받기를 원하는 정확한 형식입니다. 우리는 신중하게 작성했으니 그대로 사용하거나 다시 작성해도 됩니다.
  4. 코드 — 위의 요소들을 연결합니다.

이 모든 기능은 이미 우리 프로젝트에서 작동하지만, 우리 환경에 맞게 개인화되어 있습니다. 우리의 휴대폰 핫스팟, 우리의 API 키, 우리가 생각하는 좋은 프롬프트를 사용합니다. 여러분이 바꾸고 싶은 부분은 두 파일에 있습니다: config_ai.h, WiFi 비밀번호와 API 키를 설정하는 파일, 그리고 prompt.h, 프롬프트 자체를 설정하는 파일입니다. 여러분의 것으로 교체하면 기계가 여러분의 정원을 위해 생각하기 시작합니다.

스마트 루프는 정말로 완성되었습니다. 감지하고, 판단하고, 작동하고, 잠들며, 심지어 적응까지 합니다. 하지만 여전히 노트북의 USB 케이블로 작동하고 있어, 그다지 “전력망에서 독립된” 모습은 아닙니다. 이제 전원 문제를 해결할 때입니다.




STEP 15. 계획을 코드로 옮기기


스마트 루프를 설계했고, 부품을 브레드보드에 연결했으니, 이제 보드에 무엇을 해야 하는지 가르쳐야 합니다. 아두이노 IDE에서 펌웨어를 작성합니다. 아두이노 IDE는 취미용 마이크로컨트롤러의 기본 도구가 된 친숙하고 무료인 프로그램이며, USB 케이블을 통해 ESP32에 펌웨어를 업로드합니다.

우리가 설계한 모든 주요 개념, 즉 수면 리듬, 의사 결정 매트릭스, 급수 시간대, 메뉴는 코드의 별도 파일에 대응합니다. 구조가 깔끔하므로 쉽게 둘러볼 수 있을 겁니다. 가장 중요한 역할을 하는 파일은 config입니다. 필요한 모든 수치가 그곳에 한눈에 보이도록 들어 있습니다. 30분 수면 사이클, 측정값마다 평균을 낼 샘플 수, 10초 메뉴 표시 시간, 그리고 우리가 오랫동안 고민한 모든 임계값(흙 건조/습윤, 고온/저온, 다습/건조, 배터리 부족/위험)까지 말이죠.

따라서 앞으로 나아갈 방법은 두 가지입니다.

쉬운 방법은 우리 코드를 받아 보드에 바로 플래시하는 것입니다. 이미 작성되고, 테스트되고, 작동하는 코드입니다.

더 흥미로운 방법 — 직접 작성하는 것입니다. 여기서 앞서 진행한 계획이 두 배로 빛을 발합니다. 각 개념을 설명할 때 사용한 동일한 키워드가 이제 바로 사용할 수 있는 프롬프트가 되기 때문입니다. 단, 프롬프트가 해주지 않는 일이 하나 있습니다. 바로 수치를 정하는 것입니다. 그 수치는 여러분이 직접 설정해야 합니다. 좋은 점은 나중에 동작 방식을 바꾸고 싶을 때 config를 수정하고 다시 플래시하기만 하면 된다는 것입니다.

다만 완벽할 거라고 기대하지는 마세요. AI가 생성한 코드는 첫 스케치와 같습니다. 방향은 대체로 맞지만, 작은 예상 밖의 문제가 가득합니다. 핀 번호가 하나 어긋나 있거나, 풀업 저항을 떠올릴 때까지 센서가 0을 읽거나, 절전 명령이 실제로는 절전 상태로 들어가지 않는 문제를 직접 디버깅해야 합니다.

이제 코드가 업로드되고 정상적으로 작동하므로, 기계는 마침내 자율적으로 실행됩니다.




STEP 16. 전원 문제


전원 문제


이제 프로젝트의 나머지 절반인 전원 루프를 살펴보겠습니다. 이것이 시스템을 진정으로 자급자족하게 만듭니다. 같은 순서로 진행합니다. 회로를 설계하고, 보드에 회로를 그리고, 납땜으로 조립합니다.

하지만 스마트 루프에서 남겨둔 두 가지 문제가 여기서 우리를 기다리고 있습니다.

  1. 펌프에는 여전히 자체적인 제대로 된 전원 공급 장치가 필요합니다.
  2. 보드는 배터리 전압을 실제로 측정할 방법이 필요합니다. 코드는 깨어날 때마다 배터리 전압을 요청하지만, 이를 위한 하드웨어는 아직 없습니다.

둘 다 전원 루프에 속하므로 염두에 두도록 합시다.

처음 세운 전원 계획은 서류상으로는 괜찮아 보였습니다. 자세히 살펴보기 전까지는 말이죠. 심각한 결함이 두 가지 있었습니다.

  1. 첫째, 태양광 패널과 손 크랭크 발전기를 병렬로 연결했습니다. 편리해 보이지만 위험합니다. 전압이 더 높은 전원이 더 낮은 전원 쪽으로 역급전됩니다. Schottky 다이오드를 사용하더라도 낮은 전원은 그저 유휴 상태로 남습니다. 전력은 생산되지만 낭비되는 것입니다. 손 크랭크 발전기는 무부하로 작동하면 모든 에너지를 코일의 열로 바꾸며, 장시간 유휴 상태로 두면 과열, 절연 손상, 소손이 발생할 수 있습니다. 더 나쁜 점은 두 전원의 특성이 완전히 다르다는 것입니다(태양광은 준정전류이고 발전기는 크게 변동함). 따라서 MPPT, 보호 기능, 양쪽 전원에 대한 응답을 모두 처리할 수 있는 단일 충전 IC를 찾는 일이 거의 불가능합니다.
  2. 둘째, 배터리가 충전과 방전을 동시에 하도록 했습니다. 단일 리튬 셀에는 단자가 하나뿐이므로 전류는 한 번에 한 방향으로만 흐릅니다. 하지만 진짜 위험은 미묘합니다. 충전기가 배터리를 채우는 동시에 부하가 배터리를 방전시키면, 충전기는 어떤 전자가 어디로 가는지 구분하지 못합니다. 배터리 상태를 잘못 판단해 계속 전류를 밀어 넣고, 결국 과충전하게 됩니다. 리튬 배터리에서 과충전은 발열과 팽창을 일으키며, 결국 화재로 이어질 수 있습니다.

그래서 우리는 이를 해체하고 깔끔하게 분리된 두 개의 경로로 다시 구축했습니다. 각 경로에는 스위치를 하나씩 두었습니다. 한 경로에서는 태양광 패널이 배터리를 충전하고 배터리가 보드에 전력을 공급하며, 다른 경로에서는 배터리가 펌프에 전력을 공급합니다. 충전과 방전은 절대로 동시에 일어나지 않고, 각 전원에는 각자의 경로가 생깁니다.

이것이 뼈대입니다. 다음으로 전압이 실제로 서로 맞도록 만들어야 합니다.

본문이 길어 아래 덧글 1개로 계속됩니다.


원문: https://www.instructables.com/Off-Grid-Solar-and-Hand-Crank-Smart-Watering-Syste/

좋아요 0
게시판

본문 계속 1/1




STEP 17. 전압 맞추기


전압 맞추기


전원 계획을 깔끔한 두 경로로 다시 구성했지만, 뻔히 보이는 곳에 작은 문제가 숨어 있습니다: 이 프로젝트에서 같은 전압으로 작동하는 것은 아무것도 없습니다. 경로별로 어떤 문제가 있는지 살펴보겠습니다.

태양광 측:

  1. 패널 — 정격은 12 V이지만, 햇빛이 강하면 피크 전압이 24 V를 넘어설 수 있습니다.
  2. 배터리 — 4.2 V로 완만하게 충전됩니다.
  3. 보드 — 5 V 이상을 필요로 합니다.

크랭크 측:

  1. 발전기 — 2~25 V이며, 얼마나 세게 돌리느냐에 따라 전압이 올라갑니다.
  2. 배터리 — 4.2 V로 충전됩니다.
  3. 펌프 — 5 V를 필요로 합니다.

이 중 어느 두 개라도 직접 연결하면 전압이 맞지 않으므로, 다음이 필요합니다: 전압 변환 모듈. 우리가 선정한 제품을 사용해도 되고 직접 선택해도 되지만, 모듈마다 같지 않으므로 각 모듈의 입력 및 출력 범위를 반드시 주의 깊게 확인하세요.

우리 부품 중 네 개는 한 전압을 다른 전압으로 바꾸는 컨버터입니다:

  1. CN3791 — 태양광 패널(12 V, 급격한 피크 발생) → 4.2 V로 변환하여 셀을 올바른 방식으로 충전합니다.
  2. MT3608 — 배터리 3.0~4.2 V → 5 V 로 변환하여 개발 보드에 공급합니다.
  3. XL6009 — 발전기 2~25 V → 5 V로 변환하여 크랭크에서 발생한 전압을 사용할 수 있는 수준으로 낮춥니다.
  4. TP4056 — 그리고 이 모듈이 가장 흥미로운데요. 배터리는 충전과 방전을 동시에 할 수 없다고 했던 것을 기억하시나요? 실제로는 부하 공유 회로가 내장된 TP4056 모듈이 있어 바로 그 작업을 안전하게 처리합니다. 이 모듈은 XL6009와 펌프 사이에 위치하여 배터리의 충전과 방전을 한 번에 관리하므로, 원래라면 필요했을 스위치를 대신합니다. 다른 경로에는 스위치를 그대로 둡니다.

그리고 우리 부품 중 하나는 변환기가 아닌 측정기이므로 별도의 경로를 갖습니다. 바로 CW2015입니다. 이는 셀의 전압을 측정하고 그 값을 보드에 전달하는 초소형 배터리 연료 게이지로, 앞에서 남겨 둔 두 번째 미해결 과제까지 마침내 해결합니다.

이 부품들을 배치하면 완성된 회로는 지도처럼 나타납니다:

태양광 패널(12 V+) ──▶ CN3791(충전) ──▶ 배터리(3.7 V) ──▶ MT3608(5 V) ──▶ 보드

발전기(2~25 V) ──▶ XL6009(5 V) ──▶ TP4056(충전+방전) ──▶ 펌프

배터리 ──▶ CW2015 ──▶ 보드(전압 판독)

펌프에 관해 솔직히 말하면, 배터리의 최대 전압은 4.2 V이지만 펌프의 정격은 5 V입니다. 이론적으로는 펌프가 원하는 정확한 전압을 공급하기 위해 부스트 컨버터를 하나 더 추가할 수 있습니다. 하지만 실제로는 모듈을 추가하면 효율이 떨어집니다. 변환할 때마다 전력이 조금씩 소모되며, 독립형 시스템에서는 그 작은 손실도 빠르게 누적되기 때문입니다.

그래서 테스트해 보았습니다. 이 작은 펌프는 3.3 V에서도 아주 잘 작동했습니다. 물론 조금 느려지기는 하지만 물은 여전히 충분히 이동시킵니다. 선택은 분명했습니다. 펌프가 약간 느리게 작동하는 것을 받아들이거나, 최고 속도로 돌리기 위해 배터리를 더 많이 소모하는 것이었습니다. 우리는 전자를 선택했습니다. 아직 펌프는 불평하지 않았고, 식물들도 마찬가지입니다.




STEP 18. 보호 및 개선


보호 및 개선


이론상 회로는 작동하지만, 이론이 하드웨어를 보호해 주지는 않습니다. 배선 오류 한 번이나 전압 스파이크 하나만으로도 패널이 손상될 수 있습니다. 따라서 최종 구현 전에 보호 기능과 조정을 추가합니다.

보호 부품:

  1. 퓨즈(자동 복귀형, 0.5 A) — 단락이 발생하면 끊어지고, 열이 식으면 다시 복귀하는 트립와이어입니다.
  2. 쇼트키 다이오드 — 전류를 위한 일방통행문입니다. 전력이 소스로 역류하는 것을 막아 더 강한 소스가 더 약한 소스로 전류를 흘려보내지 못하게 합니다.
  3. 마스터 스위치 — 가장 단순한 안전 장치입니다. 작업 중 모든 연결을 끊을 수 있는 큰 수동 전원 차단 스위치입니다.
  4. 제너 다이오드(1N4744, 15 V) — 15 V 제너 다이오드가 패널 전압을 클램핑합니다. 전력을 낭비하는 무식하지만 확실한 방법이지만, 테스트 중에는 시스템을 안전하게 유지해 줍니다. 검증이 끝나면 제거하여 효율을 회복하세요.

개선 부품:

  1. 전해 커패시터(100 µF 및 1000 µF) — 발전기의 불규칙한 출력을 안정적인 전원으로 다듬는 저장소입니다.
  2. 세라믹 커패시터 — 큰 전해 커패시터가 걸러 내지 못하는 고주파 노이즈를 잡기 위해 모듈 옆에 배치하는 작은 필터입니다.
  3. TVS 다이오드(SMBJ24A) — 빠르게 작동하는 스파이크 억제기입니다. 제너 다이오드가 차단하기에는 너무 빠른, 날카롭고 짧은 과전압 과도 현상을 잡아냅니다.
  4. 추가 접지 단자 — 모든 접지가 만나는 전용 지점으로, 리턴 경로를 깔끔하게 유지하고 시스템 전체가 안정적으로 작동하도록 합니다.

이러한 보호 기능과 개선 사항은 제공된 회로도에서 직접 확인할 수 있습니다.




STEP 19. 결합하기 전에 먼저 맞는지 확인하세요


결합하기 전에 먼저 맞는지 확인하세요


커넥터도 한 가지 문제일 뿐입니다. 그렇다면 기판 자체에 커넥터에 맞는 구멍이 없다면 어떻게 해야 할까요? 바로 이럴 때 풋프린트가 필요합니다.

저도 예전에 같은 실수를 했습니다. 잘못된 커넥터를 샀더니 핀 헤더와 맞지 않았죠. 겉보기에는 같았지만 피치가 달랐습니다. 하나는 2.0 mm, 다른 하나는 2.54 mm라서 서로 맞물리지 않았습니다. VCC와 마찬가지로 커넥터도 종류가 매우 다양합니다. 서로 맞는 것을 선택해야 합니다. 다음은 우리가 사용한 일반적인 커넥터입니다:

  1. 나사 단자(KF301) 는 피복을 벗긴 전선을 연결합니다. 태양광 패널과 발전기는 전선이 굵고 나사로 납땜 없이 단단히 고정할 수 있으므로 여기에 연결합니다.
  2. XH2.54 는 브레드보드와 같은 간격의 표준 2.54 mm 헤더로, 펌프와 배터리 모니터 케이블을 연결하는 곳입니다.
  3. PH2.0 는 간격이 더 좁은 2.0 mm 규격의 형제격 커넥터로, 배터리 박스를 여기에 연결합니다.
  4. USB 는 누구나 이미 가지고 있는 방식으로, 보드에 전원을 공급하고 보드와 통신하는 데 사용합니다.

핵심은 우리의 목록을 외우는 것이 아니라 실제 부품을 확인하는 것입니다. 각 전선의 피치를 살펴보고 기판의 단자와 맞는지 확인하세요. 아무리 세게 눌러도 2.0 mm 플러그는 2.54 mm 소켓에 들어가지 않습니다. 제 말을 믿으세요.(╥﹏╥)ノ゙




STEP 20. 직접 풋프린트 그리기


직접 풋프린트 그리기


직접 풋프린트 그리기


직접 풋프린트 그리기


직접 풋프린트 그리기


직접 풋프린트 그리기


PCB 설계에서 아무도 미리 알려주지 않는 사실이 있습니다. 부품이 항상 라이브러리에 있는 것은 아닙니다. EasyEDA에는 수천 개의 풋프린트가 있지만 CN3791 같은 것을 검색하면 모듈이 아니라 베어 칩만 나옵니다(기능을 수행할 수 있는 것은 모듈뿐입니다). 따라서 직접 그려야 합니다.

그렇게 어렵지는 않습니다. 풋프린트는 핀이 연결될 위치를 그린 도면일 뿐입니다. 필요한 것은 부품의 크기와 핀 간격뿐입니다. 데이터시트를 구하고, 치수를 측정한 다음, 그리면 됩니다.

우리의 풋프린트를 사용해도 좋습니다. 단, 여러분의 부품이 우리의 부품과 정확히 일치할 때만 사용하세요. 그렇지 않다면 직접 다시 그리면 됩니다.

두 가지가 문제를 일으킬 수 있습니다. 첫째는 핀 번호입니다. 풋프린트는 회로도 심벌과 일치해야 합니다. 일치하지 않아도 소프트웨어가 경고하지 않으므로 기판이 잘못 만들어집니다. 둘째는 간격입니다. 불과 몇 분의 1 mm만 어긋나도 모듈이 들어가지 않습니다. 따라서 주의해야 합니다!




STEP 21. PCB 레이아웃 가이드라인


PCB 레이아웃 가이드라인


이제 설계를 실제 기판으로 구현해 봅시다. 도면은 두 가지입니다. 전기적 연결을 나타내는 회로도와 물리적 배치를 나타내는 PCB입니다. 우리의 설계를 사용하거나 직접 그리면 됩니다.

직접 PCB를 그린다면 다음 사항을 염두에 두세요:

트레이스 폭 — 충전 경로에는 최대 1A가 흐를 수 있으므로 해당 트레이스의 폭을 최소 0.5mm로 설정하세요. 전원 트레이스는 1mm가 더 안전합니다. 폭이 넓을수록 전압 강하와 발열이 줄어듭니다.

구리 폴리곤 — 사용하지 않는 영역을 양면의 접지 구리로 채우고 비아로 서로 연결하세요. 이렇게 하면 리턴 임피던스가 낮아지고 노이즈가 줄며 냉각에도 도움이 됩니다.

열 관리 — CN3791은 충전 중에 뜨거워집니다. 아래에 구리 패드를 배치하고 열 비아를 사용해 반대쪽으로 열을 전달하세요. 주변의 구리가 많을수록 칩의 수명이 길어집니다.

배치 — 노이즈가 큰 부품(스위칭 노드, 인덕터)은 민감한 부품(피드백 분압기, 아날로그 센스 라인)에서 멀리 배치하세요. 방사 노이즈를 줄이려면 고전류 루프를 짧고 촘촘하게 유지하세요.

디커플링 커패시터 — 100nF 세라믹 커패시터를 각 IC의 전원 핀에 최대한 가깝게 배치하고, 접지 쪽은 접지 플레인에 직접 연결하세요. 벌크 커패시터(100µF, 1000µF)는 입력과 출력 근처에 배치합니다.

크기 — 작을수록 저렴하지만, 손납땜을 위해 부품 사이에 2–3mm의 간격을 남겨 두세요.

위 내용은 일반적인 PCB 요구 사항을 나열하고 간략히 설명한 것입니다. 더 자세한 요구 사항과 각 모듈의 데이터시트에 있는 PCB 권장 사항 및 제한 사항은 온라인에서 검색할 수 있습니다.

이러한 요구 사항을 얼마나 잘 준수하느냐에 따라 전원 보드 설계가 제대로 작동하는지가 크게 좌우됩니다. 이는 전압 레귤레이터 모듈처럼 민감한 부품에서 특히 중요하며, 특정 요구 사항이 기능에 직접적인 영향을 줍니다. 이것이 바로 모든 것을 처음부터 설계하는 대신 통합 모듈을 선택한 주요 이유 중 하나입니다. 솔직히 말해 우리 전원 보드에도 몇 가지 의문이 있습니다—문제를 발견했거나 더 나은 해결책이 있다면 언제든지 연락해 주세요!

한 가지 더 있습니다. EasyEDA는 매달 무료 프로토타이핑 혜택을 제공하므로 첫 번째 기판은 비용이 들지 않을 수도 있습니다. 단, 100×100mm 이내여야 하며 우리의 기판은 그 조건을 만족합니다.

이 모든 작업을 제대로 마치면 주문할 준비가 된 것입니다. 버튼을 클릭하고 일주일을 기다리면 납땜할 준비가 된 반짝이는 기판이 문 앞에 도착합니다. EasyEDA를 사용한다면 결제 전에 매달 제공되는 무료 프로토타이핑 쿠폰을 받는 것도 잊지 마세요.




STEP 22. 부품 구매


부품이 실제로 존재하지 않는다면 완벽한 회로도도 아무 소용이 없습니다. 주문하기 전에 모든 심벌이 실제로 재고가 있는 실제 부품 번호와 연결되는지, 그리고 실제로 납땜할 수 있는 패키지인지 확인하세요. 그런 다음 아래의 BOM을 사용하거나 직접 작성하면 됩니다.

아니면 번거로운 일을 모두 건너뛰고 우리의 자재 명세표를 사용하세요:

시판 모듈

  1. CN3791 — 태양광 MPPT 충전기
  2. TP4056 — 충전/방전 복합 모듈
  3. XL6009 — 부스트 컨버터
  4. MT3608 — 부스트 컨버터
  5. CW2015 — 배터리 잔량 측정기

PCB 부품

  1. 100 µF 전해 커패시터 ×2(SMD)
  2. 1000 µF 전해 커패시터 ×2(스루홀)
  3. 1N5819 쇼트키 다이오드 ×2(SMA)
  4. 1N4744A 제너 다이오드 ×1(15 V, DO-41)
  5. SMBJ24A TVS 다이오드 ×1(SMB)
  6. 0.5 A 자동 복귀형 퓨즈 ×2 (0805)
  7. 나사 단자 5.0 mm, 2핀 ×3 (태양광, 발전기, GND)
  8. PH2.0 커넥터, 2핀 ×3 (배터리)
  9. XH2.54 커넥터, 2핀 ×2 (펌프, GND)
  10. XH2.54 커넥터, 4핀 ×1 (배터리 모니터 → 개발 보드)
  11. USB-A 암 커넥터(측면 장착) ×1
  12. 슬라이드 스위치(SS-12D10L5) ×2
  13. 0 Ω 저항 ×1 (0805)
  14. 테스트 포인트 ×1
  15. 2.54 mm 핀 헤더





STEP 23. 납땜


납땜


납땜


납땜


납땜


납땜


납땜


기판이 반짝반짝하고 아무것도 장착되지 않은 채 공장에서 돌아옵니다. 이제 여러분이 작업할 차례입니다. 납땜이 무섭게 들릴 수 있지만, 금속이 들어간 뜨거운 글루건 접착제나 다름없습니다. 그리고 글루건처럼 익숙해지기 전에는 손가락을 한두 번 데게 될 겁니다.

순서가 중요합니다. 먼저 표면실장 부품부터 작업하세요. 카펫처럼 납작하게 놓이는 작은 퓨즈, 다이오드, IC입니다. 그다음은 스루홀 부품인 큰 커패시터, 단자, 스위치입니다. 항상 낮은 부품부터 높은 부품 순서로 작업하세요. 큰 커패시터가 뒤에 숨어 있는 작은 저항에 인두가 닿지 못하게 가로막는 것만큼 답답한 일도 없습니다.

표면실장 작업에서는 핀셋과 플럭스가 최고의 동반자입니다. 부품을 배치하고, 한 핀을 납땜해 고정한 다음 나머지를 납땜하세요. 패드를 납으로 흠뻑 적시지는 마세요. 두 핀 사이에 생기는 납땜 브리지는 흔히 발생하는 "이런" 실수이며, 대개 납을 조금 과하게 사용했다는 뜻입니다.

스루홀 부품은 더 간단합니다. 리드를 구멍에 끼우고, 기판을 뒤집었을 때 빠지지 않도록 살짝 구부린 다음 뒷면에서 납땜하고 남는 부분을 잘라내세요. 손톱을 다듬는 것처럼 만족스럽습니다.

뭔가 망쳤나요? 당황하지 마세요. 납땜 브리지는 납땜 제거용 심지나 흡입기로 없앨 수 있습니다. 탁하고 알갱이처럼 보이는 접합부는 플럭스를 조금 묻혀 다시 가열하면 납이 흘러 반짝이는 상태로 돌아옵니다. 연기가 나는 마법이죠.

마지막으로 한 가지 더: CW2015의 BAT+ 핀을 테스트 포인트에 점퍼로 연결해야 합니다 — 그래야 기판이 배터리 전압을 읽을 수 있습니다. 놓치기 쉽지만, 다른 모든 부품을 이미 납땜한 뒤에는 디버깅하기가 정말 골치 아픕니다. 두 번 확인하세요. 미래의 여러분이 고마워할 겁니다.

납땜하기 전에 모듈이 올바르게 작동하는지 반드시 확인하세요. 납땜 후에는 즉시 회로를 테스트하여 단락과 같은 이상 상태가 발생하지 않았는지 확인하세요.




STEP 24. 인클로저 설계 및 재료


인클로저 설계 및 재료


인클로저 설계 및 재료


무언가를 자르기 전에 두 가지 질문을 던졌습니다: 이 상자는 무엇을 해야 하는가? 그리고 크기는 어느 정도여야 하는가?

인클로저에 필요한 것은 무엇인가? 순서대로 세 가지입니다:

  1. 보여주기 쉬울 것. 이 장치는 숨겨두는 기기가 아니라 전시용 작품이므로 식물과 전자 부품이 모두 보여야 합니다.
  2. 제법 보기 좋을 것. 벽이나 선반에 놓일 것이므로 부품 더미처럼 보여서는 안 됩니다.
  3. 가능한 한 단순할 것. 복잡한 짜맞춤이나 레이저 커팅 부품 없이, 손으로 자를 수 있는 평평한 패널만 사용합니다.

조사. 영감을 얻기 위해 온라인에서 벽걸이 화분과 우편함을 살펴봤습니다. 가장 마음에 들었던 형태는 전형적인 벽걸이 우편함이었습니다. 물이 흘러내리는 경사진 지붕, 세 개의 벽, 그리고 내부를 볼 수 있는 열린 앞면으로 구성된 형태입니다.

디자인. 앞면이 열려 있고 세 개의 벽으로 이루어진 경사진 지붕 상자입니다. 기본적으로 식물을 위한 작은 우편함입니다. 경사는 단순히 보기 좋게 하기 위한 것이 아닙니다. 태양광 패널을 기울어진 각도로 설치할 수 있고, 지붕 위에 빗물이 고이는 것도 막아줍니다.

크기는 어느 정도로 할까? 크기는 역으로 정한 것이 아니라 배치에 따라 정했습니다. 먼저 각 부품을 어디에 둘지 결정했습니다:

  1. 브레드보드와 ESP32-S3 개발 보드 — 나란히 좌우로 배치하고 뒷벽에 장착.
  2. 전원 보드 — 바닥의 오른쪽 쪽에 배치.
  3. 식물 — 바닥의 왼쪽 쪽에 배치.
  4. 워터 펌프 — 왼쪽 벽 바깥에 배치.
  5. 손잡이식 발전기 — 앞쪽 또는 오른쪽 벽 바깥에 배치.
  6. 태양광 패널 — 지붕에 배치.

그런 다음 모듈을 측정하고 다음과 같은 패널 크기를 정했습니다(모두 cm):

  1. 바닥: 25 × 25
  2. 뒷벽: 25 × 30
  3. 측벽(×2): 사다리꼴 — 아래쪽 25, 뒤쪽 높이 30, 앞쪽 높이 25, 그 사이를 연결하는 경사진 윗변
  4. 지붕: 25 × 25.9(경사진 면)

재료. PVC 폼 보드(Sintra/Foamex)입니다. 가볍고 공예용 칼로 깔끔하게 자를 수 있으며, 형태를 유지할 만큼 충분히 단단하고 인클로저와 모형 제작에 흔히 사용되는 재료입니다.

도구 및 준비물:

  1. PVC 접착제 + 접착제 제거제(디본더)
  2. 투명 테이프
  3. 강력한 양면테이프
  4. 가위와 커터칼
  5. 황동 스탠드오프(보드를 약간 띄워 장착하기 위한 것)
  6. 자와 연필

마감. 겉면에 나뭇결 접착 필름을 붙이면 평범한 흰색 폼보드가 제대로 된 작은 나무 우편함처럼 보입니다.




STEP 25. 외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


외함 조립


이제 상자를 실제로 조립할 차례입니다. 여기서는 조립 순서가 중요합니다. 각 패널이 아직 평평하고 손이 닿기 쉬울 때 모든 부품을 장착하는 편이 완성된 상자 안으로 전선을 밀어 넣는 것보다 훨씬 쉽습니다.

1. 먼저 뒷벽. 개발 보드와 브레드보드를 뒷판에 장착합니다(나사나 황동 스탠드오프를 사용하면 작은 공기층이 생깁니다). 그런 다음 뒷벽을 바닥에 직각으로 붙입니다. 이 두 부품이 상자 전체의 기준이 되므로 모서리가 정확히 직각인지 확인하세요.

2. 왼쪽 측벽. 구멍을 뚫고 워터 펌프를 통과시켜 펌프가 호스를 자유롭게 둔 채 왼쪽 벽 바깥에 오도록 합니다. 이 작업은 반드시 먼저 벽을 붙이기 전에 하세요. 평평한 상태에서 구멍을 뚫는 편이 훨씬 쉽습니다.

3. 오른쪽 측벽. 원래는 손잡이식 발전기를 오른쪽 벽 바깥에 달 계획이었지만 전선 길이가 짧았습니다. 연장선을 이어 붙이는 대신 상자 앞쪽으로 옮겼습니다. 오른쪽 벽은 그대로 비워 둡니다.

4. 지붕. 지붕을 뒷벽에 빈틈없이 붙이지 마세요. 위쪽에 작은 틈을 남겨 두세요. 그 틈으로 태양광 패널 전선과 DHT22 전선이 안쪽으로 들어갑니다.

5. 남은 모듈. LED와 토양 수분 센서 및 해당 전선을 제자리에 고정합니다. 전선을 패널을 따라 배선하고 테이프로 고정하여 마지막 벽을 붙일 때 아무것도 늘어지거나 눌리지 않게 하세요.

6. 식물과 전원 보드. 식물은 바닥 왼쪽에, 전원 보드는 바닥 오른쪽에 놓은 다음 전원 보드를 다른 모든 부품에 연결합니다.

7. 조정 및 전원 켜기. 배선을 마지막으로 점검한 다음 전원을 켭니다. LED를 확인하고 테스트 웨이크 사이클을 실행한 뒤 이상해 보이는 부분을 조정하세요.




STEP 26. 읽어 주셔서 감사합니다


끝까지 오셨네요. 함께해 주셔서 감사합니다.

이 모든 것은 저와 두 친구(雒丹语&吴浩源)가 약 한 달 동안 만든 것이라 완벽과는 거리가 멉니다. 실수를 발견했거나 더 나은 방법을 알고 있다면 언제든 알려 주세요. 진심으로 여러분의 의견을 듣고 싶습니다.

그리고 우리 모두 조금 더 친환경적인 삶을 살게 되기를 바랍니다. 🌱

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.