สร้างระบบดักฟังเสียงธรรมชาติพลังงานแสงอาทิตย์ด้วย Raspberry Pi (ปล่อยป่าได้ แบตไม่พัง!)

ใครที่ชอบทำโปรเจกต์แนว IoT ลุยๆ เอาเซ็นเซอร์ไปตั้งไว้กลางแจ้ง คงเคยเจอปัญหา "แบตหมด เครื่องดับ SD Card พัง" กันมาบ้างใช่ไหมครับ? หรือพอฝนตก เครื่องก็ช็อตพังไปอีก

วันนี้เรามีโปรเจกต์สุดถึกทนมาฝาก! เป็นการสร้างระบบประมวลผลเสียงแบบเรียลไทม์ (Real-time audio processing) สำหรับงานนิเวศวิทยาหรือโปรเจกต์เสียงศิลปะ (Sound art) โดยใช้ Raspberry Pi Zero 2 W ทำงานร่วมกับแผงโซลาร์เซลล์ และวงจรสุดฉลาดที่ "คิดเองได้" ว่าตอนไหนควรเปิดเครื่อง ตอนไหนควรปิดเครื่อง เพื่อถนอมแบตเตอรี่ แถมยัดทุกอย่างลงกล่องกันน้ำ IP66 พร้อมลุยทุกสภาพอากาศ มาดูวิธีทำแบบ Step by Step กันเลยครับ!

Solar Powered Audio System
คลิกเพื่อดูรูปภาพกล่องและอุปกรณ์เพิ่มเติม (View More)
Setup View 1
Setup View 2

อุปกรณ์ที่ต้องใช้ (Supplies)

Supplies

อุปกรณ์โปรเจกต์นี้จัดเต็มมากครับ แบ่งเป็นหมวดๆ ได้ตามนี้:

  • สมองกล & เสียง: Raspberry Pi Zero 2 W, บอร์ดเสียง Raspiaudio MIC+ V2, ไมโครโฟน MEMS, ลำโพง Dynavox Minibass
  • พลังงาน & โซลาร์: แผงโซลาร์เซลล์ 2.5W 5V (2 แผง), แบตเตอรี่ 18650, Adafruit LC709203F (เช็กแบต), PowerBoost 500 Basic, Solar Charger BQ24074
  • วงจรลอจิกเปิด-ปิด: ชิป SN74HC02 (NOR Gates) x2, ชิป NE555P, ตัวต้านทาน 100k, คาปาซิเตอร์ 100u / 0.1u / 2200u
  • โครงสร้าง: กล่องกันน้ำ IP66 (150x116 มม.), แจ็คเสียง, สวิตช์ 2 ทาง, ปลั๊ก DC, และแผ่นไม้ MDF

Step 1 - 4: คอนเซปต์และวงจรจัดการพลังงานสุดฉลาด (Power Cycling Logic)

ปัญหาหลักของการตั้ง Pi ไว้กลางป่าคือ ถ้าแบตหมดแล้วไฟตัดไปดื้อๆ SD Card จะพัง! โปรเจกต์นี้เลยออกแบบวงจรลอจิกเกต (Positive NOR Gates) และชิปหน่วงเวลา NE555 มาคุมการจ่ายไฟครับ โดยมีเงื่อนไขคือ:

  • เปิดเครื่อง: เมื่อมีแสงแดด (PGOOD) และ แบตเตอรี่มีไฟเกิน 3.9V
  • ปิดเครื่อง: เมื่อพระอาทิตย์ตก หรือ แบตเตอรี่ต่ำกว่า 3.7V (โดยตัวบอร์ด Pi จะรันคำสั่ง Shutdown ตัวเองให้เสร็จก่อน จากนั้นวงจรถึงจะตัดไฟทั้งหมดทิ้งอย่างปลอดภัย)
System Overview
คลิกเพื่อดูรูปภาพผังแนวคิดการทำงานและวงจรลอจิก (View More)
Hardware Diagram
Logic Concept
NOR Gates

Step 5 - 9: ลง OS และเทสต์ฮาร์ดแวร์พื้นฐาน

ก่อนจะบัดกรีลงบอร์ดจริง เราต้องเทสต์ให้ชัวร์ก่อนว่าอุปกรณ์ทุกตัวคุยกับบอร์ด Raspberry Pi รู้เรื่อง:

  • ลง OS: ใช้ Raspberry Pi OS แบบ Headless (ตั้งค่าผ่าน Wi-Fi ไม่ต้องต่อจอ)
  • เทสต์การ์ดเสียง: เสียบบอร์ด Raspiaudio MIC+ แล้วรันสคริปต์เทสต์จากผู้ผลิตเพื่อดูว่าลำโพงซ้าย-ขวาและไมค์ทำงานปกติไหม
  • เทสต์ I2C กับแบตเตอรี่: ต่อบอร์ด LC709203F เข้ากับพิน I2C ของ Pi เพื่ออ่านค่าโวลต์แบตเตอรี่ (ตั้งให้มันเตือนตอนแบตเหลือ 3.9V)
  • เทสต์แผงโซลาร์: อ่านค่า PGOOD ผ่านพิน GPIO 13 เพื่อดูว่ามีแดดส่องแผงโซลาร์หรือไม่ (ถ้ามีแดดให้ปริ้นต์ "sun" ถ้าไม่มีให้ปริ้นต์ "no sun")
Raspberry Pi Imager
คลิกเพื่อดูและคัดลอกคำสั่ง & สคริปต์ Python ในการเทสต์ระบบ (View More)

1. การเปิดใช้งาน gpio-poweroff และ I2C (ใส่ในไฟล์ /boot/config.txt)

# สโลว์ความเร็ว I2C ลงมาที่ 10KHz เพื่อให้อ่านค่าแบตเตอรี่ได้เสถียร
dtparam=i2c_arm=on
dtparam=i2c_arm_baudrate=10000

# เปิดใช้งาน Poweroff overlay (GPIO 26 จะ LOW ตอน Shutdown เสร็จ)
dtoverlay=gpio-poweroff,active_low

2. สคริปต์เทสต์แบตเตอรี่ (battery.py)

import time
import board
from adafruit_lc709203f import LC709203F

sensor = LC709203F(board.I2C())
sensor._write_word(0x14, 3900) # ตั้งค่า Threshold ที่ 3.9V

while True:
    print(sensor.cell_voltage)
    time.sleep(1)

3. สคริปต์เทสต์โซลาร์เซลล์ (sun.py)

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

sun = 13
GPIO.setup(sun, GPIO.IN)

while True:
    if GPIO.input(sun):
        print("no sun")
    else:
        print("sun")
    time.sleep(1)

Step 10 - 18: ลุยบัดกรีแผงวงจร (Soldering & Assembly)

เมื่อเทสต์โค้ดผ่านหมดแล้ว ก็ถึงเวลาจับอุปกรณ์ทั้งหมดลงบนแผ่น Perf board เจาะรูเพื่อยึดน็อตให้พอดีกับกล่อง IP66 แล้วบัดกรี Socket, คาปาซิเตอร์, ลอจิกเกต, โมดูลบูสต์ไฟ (PowerBoost) และต่อสายไฟทุกอย่างเข้าด้วยกันตามผังวงจร

Main Schematic
คลิกเพื่อดูรูปภาพขั้นตอนการบัดกรีและผังวงจรเพิ่มเติม (View More)
Detailed SVG Schematic
Board Prep
Solder Sockets
Solder Caps
Logic Wiring
Solder Pi
Put it together
Testing Circuit
Test Logic

Step 19 - 26: ยัดลงกล่อง และทดสอบกันน้ำ! (Enclosure & Waterproof Test)

มาถึงขั้นตอนนี้ เราจะเจาะกล่องเพื่อใส่สวิตช์เปิด-ปิด, แจ็คเสียง, รังถ่านแบตเตอรี่, และไมโครโฟน MEMS โดย "ห้ามลืม" ปิดฝากล่องเปล่าๆ แล้วเอาไปฉีดน้ำฝักบัวในห้องน้ำเพื่อเทสต์รอยรั่วก่อนเด็ดขาด! ถ้าผ่าน ก็นำบอร์ด Pi และแผงวงจรทั้งหมดที่บัดกรีไว้ ขันน็อตยึดลงกล่องให้แน่นหนาได้เลยครับ

Battery Holder Setup
คลิกเพื่อดูรูปการประกอบกล่องและทดสอบกันน้ำ (View More)
DC Plug Setup
Jack Plug
MEMS Mic
Waterproof Shower Test
Mount Pi in Box
Mount Circuit in Box
Final Assembly 1
Final Assembly 2

Step 27 - 29: ตั้งค่าสคริปต์รันเบื้องหลัง (Daemon & Autostart)

ขั้นตอนสุดท้ายคือการสร้างสคริปต์ Python ให้ทำงานเป็นเบื้องหลัง (Daemon) ตลอดเวลา เพื่อให้มันคอยเช็กสภาพแสงแดดและแบตเตอรี่ หากถึงเวลาที่ต้องปิดเครื่อง สคริปต์นี้จะสั่ง Shutdown ตัว Pi อย่างปลอดภัยโดยอัตโนมัติ ไม่ต้องมีคนคอยเฝ้าครับ

คลิกเพื่อดูและคัดลอกโค้ดตั้งค่าระบบเบื้องหลัง (View More)

สร้างไฟล์ Service (เซฟไว้ที่ /lib/systemd/system/kn.service)

[Unit]
Description=Klangnetze PCM
After=multi-user.target

[Service]
Type=simple
User=pi
ExecStart=/usr/bin/python3 /home/pi/src/python/main.py
Restart=on-abort

[Install]
WantedBy=multi-user.target

คำสั่งเริ่มการทำงานและเช็กสถานะ (รันใน Terminal)

sudo chmod 644 /lib/systemd/system/kn.service
chmod +x /home/pi/src/python/main.py
sudo systemctl enable kn.service
sudo systemctl start kn.service
sudo systemctl status kn.service

สรุปความเจ๋งของโปรเจกต์:

นี่คือผลงานศิลปะเชิงวิศวกรรมที่ยอดเยี่ยมมากครับ การผสานเอาแผงโซลาร์เซลล์เข้ากับวงจรลอจิก ทำให้บอร์ด Raspberry Pi มีชีวิตและตัดสินใจจัดการพลังงานตัวเองได้! หมดปัญหาเรื่องต้องเดินสายไฟเข้าป่า หรือต้องเปลี่ยนแบตบ่อยๆ ใครกำลังทำโปรเจกต์ IoT กลางแจ้ง ลองเอาไอเดียนี้ไปดัดแปลงใช้ดูนะครับ!


คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา

อ้างอิงและเรียบเรียงโดย: Globalbyteshop Blog

แหล่งที่มาหลัก:

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี