본문 바로가기
ESP32

말하는 식물 만들기 | ESP32 기반 프로젝트

by 모빌리티키즈 2025. 4. 9.
728x90
반응형

여러분, 식물이 목이 마르거나 너무 뜨거운 상태에서 도움을 요청할 수 있다고 상상해 본 적 있으세요? 이제 그 상상을 현실로 만들어볼 시간입니다! 이 프로젝트는 ESP32 보드와 다양한 환경 센서를 활용하여, 실제로 "말하는 식물"을 만드는 과정을 안내합니다. DFPlayer Mini와 작은 오디오 모듈을 사용해 식물이 사람의 목소리로 자신의 상태를 알릴 수 있습니다.

 

프로젝트 개요:

식물이 대화를 나눈다? 이 프로젝트는 놀라운 기술을 통해 이를 구현합니다. 센서를 통해 환경 정보를 분석하여 식물의 상태를 판단하고, 이를 음성 메시지로 전달하는 장치를 조립하는 것이 목표입니다.

필요한 구성 요소:

1부: 주요 부품

  • ESP32 NodeMCU 30핀 CP2102
  • 온도 센서 DHT22
  • 토양 습도 센서
  • DFPlayer 미니 MP3
  • 1.44인치 TFT 디스플레이(터치 없음)
  • 버튼 6x6x13.5
  • 8GB 마이크로 SD 카드
  • LDR(광 종속 저항기)
  • 저항기 1/4W

2부: 보조 부품

  • 50x70 및 20x80 홀 보드
  • DC12V 5.5mm 암 커넥터
  • PAM8403 앰프 모듈
  • M2/M3 나사

권장 구성 요소

  • MB-102 브레드보드
  • JST 커넥터 및 핀 스트립
  • DuPont 단자 압착 키트
  • 실리콘 와이어

추가 리소스

  • 문서 링크
  • 3D 프린트 파일

주요 단계:

1단계: 프로젝트 개념 이해

  • ESP32 보드가 센서를 통해 토양의 습도, 온도, 빛의 강도를 분석하며 필요한 경우 메시지를 출력합니다.

2단계: 브레드보드 조립

  • ESP32 및 센서를 브레드보드에 연결하세요. 작은 조립이 큰 차이를 만듭니다.

3단계: 센서 보정

  • 센서의 원시값을 측정하여 임계값을 설정합니다.

4단계: 토양 센서 방수 처리

  • 센서 부식을 방지하기 위한 보호 조치를 취합니다.

5단계: ESP32 코딩

  • 코드를 작성하여 데이터를 처리하고 음성 메시지를 생성하는 논리를 구현합니다.

6단계: 오디오 메시지 생성

  • "물 주세요!", "더 밝은 곳으로 옮겨줄래요?" 같은 메시지를 녹음하거나 텍스트 음성 변환 기술을 사용할 수 있습니다.

7단계: 전자 기기 조립

  • 3D 프린팅된 인클로저 안에 모든 부품을 조립합니다.

8단계: 최종 조립 및 장식

  • 프로젝트를 완성하고, 여러분만의 창의적 디자인으로 캐릭터를 부여하세요!

1단계: 🧠 개념 이해

어셈블리를 시작하기 전에 이 프로젝트의 개념을 이해합시다. 아이디어는 환경의 매개변수를 기반으로 당신에게 "말할" 수 있는 대화형 식물을 만드는 것입니다. ESP32 보드는 센서에서 데이터(토양 수분, 온도, 습도 및 조도)를 읽고 이 정보를 사용하여 식물이 "대화"해야 하는 시기를 결정합니다.

  1. 흙이 너무 건조하면 식물이 "물 주세요!"
  2. 온도가 너무 높으면 "너무 덥으니 더워주세요!"
  3. 식물이 충분한 빛을 받지 못하면 "더 밝은 곳으로 옮겨 줄 수 있습니까?"라고 물을 수 있습니다.

DFPlayer Mini는 microSD 카드에 저장된 사전 녹음된 메시지를 재생하는 데 사용됩니다. 이렇게 하면 식물이 환경을 모니터링할 뿐만 아니라 반응합니다!

2단계: 🔌브레드보드 조립

제공된 회로도에 따라 모든 구성 요소를 ESP32에 배선하여 시작합니다. 메모:

  1. ESP32가 전체 브레드보드를 차지하므로 두 개의 브레드보드를 사용하십시오.
  2. 모니터 TFT LED 핀과 VCC 사이에 56옴 저항을 추가합니다.
  3. ESP32 접지에 배선하기 전에 두 DFPlayer 접지를 함께 연결하십시오.

모든 접지가 연결되어 있는지 확인하고 필요한 경우 ESP32용 브레드보드 전원 공급 장치를 사용하십시오.

3단계: 🧪센서 캘리브레이션

모든 것이 연결되면 센서를 보정해야 합니다. 여기에는 각 센서에서 원시 값을 읽고 식물이 말하도록 트리거할 임계값을 결정하는 것이 포함됩니다.

  1. 토양 수분 센서의 경우 건조한 토양은 일반적으로 약 2800, 젖은 토양은 약 900을 읽습니다. 이 값은 센서에 따라 다를 수 있습니다.
  2. LDR은 어두운 조건(약 380)에서 낮은 값을 제공하고 밝은 빛에 노출될 때(약 3200) 높은 값을 제공합니다. 이 값을 사용하여 식물이 선호하는 조명 범위를 결정하십시오.
  3. DHT22는 온도와 습도를 출력합니다. 이 데이터를 사용하여 환경이 플랜트에 적합한지 확인할 수 있습니다.

원시 값이 있으면 센서 판독값을 기반으로 음성 메시지를 트리거하도록 그에 따라 코드를 조정합니다.

4단계: 📦토양 센서 방수

토양 수분 센서는 토양에 배치되므로 부식을 방지하기 위해 방수가 되는지 확인하는 것이 중요합니다. 이를 달성하려면 다음을 수행합니다.

  1. 뜨거운 접착제 실리콘을 바르고 센서의 전자 부품을 밀봉하여 흙과 접촉하지 않도록 합니다.
  2. 추가 보호를 위해 센서를 작은 3D 프린팅 케이스 또는 플라스틱 인클로저에 넣고 실리콘으로 채워 방수 씰을 만들 수 있습니다.

이렇게 하면 센서가 더 오래 지속되고 더 오랜 기간 동안 기능을 유지할 수 있습니다.

5단계: 🧑 💻ESP32 코딩

이제 ESP32용 코드를 작성할 차례입니다. 이 코드는 센서에서 데이터를 읽고, 해당 데이터를 기반으로 결정을 내리고, DFPlayer Mini를 통해 오디오 재생을 트리거하는 작업을 처리합니다.

필요한 라이브러리를 설정하여 시작합니다.

  1. DFPlayer Mini를 제어하는 데 DFPlayerMini_Fast.
  2. DHT22 온도 및 습도 센서에서 데이터를 읽기 위한 DHT.
  3. 옵션인 TFT LCD 디스플레이를 제어하기 위한 SPI  TFT_eSPI.

프로그램의 주요 논리에는 다음이 포함됩니다.

  1. 토양 수분 센서, 온도 및 습도 센서, 포토레지스터에서 데이터를 읽습니다.
  2. 판독값이 사전 정의된 임계값을 초과하는지 확인합니다(예: 토양이 너무 건조하거나, 온도가 너무 높거나, 빛이 충분하지 않음).
  3. 임계값을 초과하면 ESP32는 DFPlayer Mini가 "Water me!" 또는 "It's too hot!"과 같은 사전 녹음된 메시지를 재생하도록 트리거합니다.

6단계: 🔊 오디오 메시지 만들기

이 프로젝트에서 가장 재미있고 창의적인 부분 중 하나는 식물의 목소리를 녹음하는 것입니다! 이러한 오디오 메시지는 특정 환경 조건이 충족될 때 DFPlayer Mini에 의해 재생됩니다.

오디오를 만드는 방법:

  1. 음성 녹음기 앱(스마트폰 또는 컴퓨터)을 사용하여 다음과 같은 짧은 메시지를 녹음합니다.
  2. "이봐, 목마르다! 물 좀 주세요."
  3. "여기가 정말 더워지고 있어요..."
  4. "햇빛이 더 필요해!"
  5. "나를 돌봐줘서 고마워!"
  6. 각 파일을 MP3 형식으로 저장합니다. 로봇 또는 만화 같은 음성을 선호하는 경우 텍스트 음성 변환 도구를 사용할 수도 있습니다.
  7. DFPlayer 명명 규칙을 사용하여 파일 이름을 바꿉니다.
  8. 첫 번째 메시지의 경우 1.mp3
  9. 두 번째 2.mp3 등등.
  10. 모든 MP3 파일을 FAT32로 포맷된 microSD 카드에 복사합니다.
  11. microSD를 DFPlayer Mini 모듈에 삽입합니다.

목소리 톤을 변경하거나, 음악이나 효과를 추가하거나, 다른 언어로 녹음하여 식물에 다양한 개성을 만들 수 있습니다!

7단계: 🔧전자 장치 조립

이 단계에서는 3D 프린팅 인클로저 내부에 모든 전자 부품을 설치합니다. ESP32, DFPlayer Mini 및 증폭기를 장착하는 천공 보드를 준비하는 것으로 시작합니다. 이들은 정렬과 방향에 주의하여 배치되고 납땜됩니다.

그런 다음 모든 센서(DHT22, 토양 수분, 포토레지스터), 스피커 및 전원 공급 장치에 대한 커넥터를 추가합니다. 내부 공간이 제한되어 있기 때문에 배선은 깔끔해야 합니다.

모든 것이 제자리에 있으면 케이스 내부의 보드를 나사로 고정하고 각 센서와 모듈을 해당 위치에 연결하기 시작합니다. 각 구성 요소는 필요한 경우 작은 나사나 뜨거운 접착제로 고정됩니다.

마지막으로, 케이블을 배선하고 정리하여 케이스의 최종 종결을 위한 모든 것을 준비합니다.

8단계: 🟨최종 조립 및 장식

모든 연결을 완료하고 최종 코드를 업로드한 후에는 인클로저를 닫고 프로젝트에 캐릭터를 부여하기 위해 재미있는 장식을 추가할 차례입니다.

3D 프린팅 상자의 상단 부분을 포토레지스터 컷아웃에 맞춰 조심스럽게 놓습니다. 선택적으로 더 꽉 끼우려면 나사를 사용하여 뚜껑을 고정하십시오.

이제 식물에 개성을 더할 수 있습니다! 플라스틱 치아를 입에 붙이고, 스티커 눈을 추가하고, 실을 사용하여 머리카락을 시뮬레이션했습니다. 이 단계는 전적으로 여러분에게 달려 있습니다—재미있게 진행하고 창의력을 발휘하세요!

마지막으로 약간의 슈퍼 글루를 사용하여 로고를 첨부했지만 원하는 대로 자유롭게 사용자 정의할 수 있습니다.

9단계: 🟨소프트웨어 업로드 및 최종 테스트

🧪 생명을 불어넣어 봅시다! 펌웨어를 로드하고 식물이 말을 할 수 있는지 확인할 시간입니다!

USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결합니다. Arduino IDE를 열고 업데이트된 스케치(버전 2)를 로드하고 보드에 업로드합니다. 모든 라이브러리가 올바르게 설치되었고 보드와 포트가 선택되어 있는지 확인하십시오.

⚠️ ESP32가 이전 모델인 경우 오류를 방지하기 위해 업로드하는 동안 BOOT 버튼을 눌러야 할 수 있습니다.

코드가 업로드되면 USB 케이블을 분리하고 외부 전원 잭을 사용하여 보드에 전원을 공급합니다. 그런 다음 RESET 버튼을 눌러 모든 것이 올바르게 초기화되었는지 확인합니다.

이 시점에서 스마트 플랜트는 완전히 작동해야 합니다! 케이스의 버튼을 눌러 케이스가 말하는 것을 듣고 현재 온도, 조명 수준 및 토양 습도를 보고합니다.

홈 네트워크 내의 주소 http://pianta.local 에서 브라우저를 통해 데이터에 액세스할 수도 있습니다. 페이지를 새로 고쳐 실시간 값을 확인합니다.

 

10단계: 🧾최종 설치 및 고려 사항

🪴 장치 장착

이제 모든 것이 조립되고 소프트웨어가 올바르게 작동하므로 실제 공장 근처에 Talking Plant를 설치하고 빌드를 마무리할 차례입니다.

다음 두 가지 방법으로 Talking Plant를 배치할 수 있습니다.

  1. 화분 옆 – 양면 테이프를 사용하거나 평평한 표면에 세워 놓으십시오.
  2. 화분 자체에 – 접착제에서 보호층을 제거하고 상자 뒷면을 냄비 측면에 붙입니다.

✅ 최종 점검 사항

광 센서(LDR)가 노출되어 있고 어떤 것으로도 가려져 있지 않은지 확인하십시오.

최대 선을 초과하지 않고 토양 수분 센서를 토양에 삽입하십시오.

전원 공급 장치를 연결합니다.

버튼을 누르고 있으면 전체 상태 보고서(온도, 빛, 토양 수분)를 들을 수 있습니다.

선택적으로 브라우저(홈 네트워크 내)에 pianta.local을 입력하여 식물의 웹 페이지에 액세스합니다

 

요약하면, Talking Plant 프로젝트는 식물 상태를 모니터링하기 위한 훌륭한 기술 솔루션이며 쉽게 구축하고 사용자 정의할 수 있습니다. 실용성과 혁신을 결합하고 새로운 기능으로 확장할 수 있습니다. 이 기능이 마음에 드셨다면 좋아요를 남기고 채널을 구독하고 알림 벨을 활성화하여 향후 프로젝트를 놓치지 마십시오. 튜토리얼을 따라주셔서 감사드리며 다음에 뵙겠습니다!

728x90
반응형