เปลี่ยน Raspberry Pi ให้กลายเป็นเซิร์ฟเวอร์ AI ส่วนตัว เสียบปลั๊กปุ๊บ คุยได้ปั๊บ
สวัสดีชาว Maker และสาย Tech ทุกคนครับ! คุณเคยมีความฝันอยากมีผู้ช่วย AI ส่วนตัวทำงานอยู่ที่บ้านแบบออฟไลน์ 100% ไหมครับ? ไม่ต้องง้ออินเทอร์เน็ต ไม่ต้องจ่ายค่า Subscriptions รายเดือน และที่สำคัญคือ "ข้อมูลส่วนตัวไม่หลุดไปไหน" [cite: 1]
โปรเจกต์ "PiNEXUS" จะพาคุณไปสร้างเซิร์ฟเวอร์ AI ทำงานแบบ Plug-and-Play โดยใช้บอร์ด Raspberry Pi ขับเคลื่อนด้วยโมเดลภาษาขนาดเล็ก (LLM) ผ่าน Ollama และมีหน้าต่างแชทสวยๆ ผ่าน Open WebUI [cite: 1] ความเจ๋งคือมันทำงานแบบ Headless (ไม่ต้องต่อจอคอมหรือคีย์บอร์ด) แค่เสียบปลั๊ก รอให้จอ LCD จิ๋วโชว์ IP Address แล้วเอาไปพิมพ์บนมือถือหรือแล็ปท็อปเพื่อแชทได้เลย! [cite: 1]
อุปกรณ์ที่ต้องเตรียม (Supplies) [cite: 1]
บอร์ด Raspberry Pi 4 Model B (4GB) [cite: 1]
MicroSD Card (แนะนำ 16GB หรือ 32GB) + Card Reader [cite: 1]
จอ 16x2 LCD Display (แนะนำแบบที่มี I2C Module จะได้ต่อสายง่ายๆ) [cite: 1]
สาย Jumper (Female-to-Female) 4 เส้น [cite: 1]
ซิงก์ระบายความร้อน (Heatsink / Cooling Fan) [cite: 1]
ซอฟต์แวร์: Raspberry Pi OS, Docker, Ollama, Open WebUI [cite: 1]
💡 Maker's Tip: ในการทำเซิร์ฟเวอร์แบบตั้งโต๊ะให้ดูเท่และเป็นระเบียบ การมี เคส (Enclosure) ถือว่าสำคัญมากครับ หากเพื่อนๆ คนไหนอยากได้เคสที่ออกแบบมาพอดีเป๊ะ หรือต้องการ บริการรับปริ้นท์ 3D Printing คุณภาพสูง สำหรับทำกล่องเซิร์ฟเวอร์ รวมถึงสั่งซื้อบอร์ด Raspberry Pi 4 และหน้าจอ LCD แบบ I2C แวะมาพูดคุยและสั่งซื้อพร้อมส่งได้ที่ Globalbyte เลยครับ! ส่งไฟล์ 3D มาให้เราดูแลได้เลย
Step 1-3: เตรียม OS และลงโปรแกรม AI รัน Local LLM [cite: 1]
ก่อนอื่นเราต้องเตรียมสมองให้ Raspberry Pi กันก่อนครับ โดยใช้โปรแกรม Raspberry Pi Imager ทำการ Flash OS เลือกระบบปฏิบัติการ Raspberry Pi OS lite (64-bit) [cite: 1]
ทริคสำคัญ: ในหน้าตั้งค่า (Advanced Options) ให้ตั้ง Hostname (เช่น pi), เปิดใช้งาน SSH, ตั้งค่ารหัสผ่าน, และกรอก Wi-Fi ให้เรียบร้อย เพื่อให้เราสามารถรีโมทเข้าไปได้โดยไม่ต้องต่อจอคอมครับ [cite: 1]
เมื่อเสียบ SD Card และเปิดเครื่อง ให้เปิด Terminal (หรือ CMD บน Windows) แล้วรีโมทเข้าไปด้วยคำสั่ง: ssh pi@pi.local [cite: 1]
เมื่อเข้ามาในระบบได้แล้ว เราจะลงโปรแกรม 3 ตัวหลัก คือ Docker, Ollama (ตัวรันโมเดล AI), และ Open WebUI (หน้าต่างแชท) [cite: 1]
คลิกดูชุดคำสั่งติดตั้ง Docker, Ollama และ Open WebUI (View more) ซ่อนคำสั่งติดตั้ง
# 1. Update ระบบ
sudo apt update && sudo apt upgrade -y
# 2. ติดตั้ง Docker และเพิ่ม User ลงกรุ๊ป
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
sudo reboot
# (หลังจาก Reboot ให้ SSH เข้ามาใหม่)
# 3. ติดตั้ง Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 4. ดาวน์โหลดโมเดล AI (แนะนำ Llama 3.2 1B หรือ Qwen 2.5 0.5B สำหรับ Pi)
ollama pull llama3.2:1b
# หรือ ollama pull qwen2.5:0.5b
# 5. ติดตั้งและรัน Open WebUI ผ่าน Docker
sudo docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always ghcr.io/open-webui/open-webui:main
Step 4-6: ตั้งค่าหน้าจอ LCD 16x2 [cite: 1]
เพื่อความเท่และใช้งานง่าย เราจะต่อจอ LCD 16x2 ผ่านพอร์ต I2C เพื่อให้มันโชว์ IP Address ตอนเครื่องเปิดติด เราจะได้รู้ว่าต้องเอา IP อะไรไปพิมพ์ในเบราว์เซอร์ครับ [cite: 1]
เข้าไปเปิดการใช้งาน I2C ด้วยคำสั่ง sudo raspi-config (เลือก Interface Options → I2C → Enable) [cite: 1]
ต่อสายไฟ 4 เส้น: SDA (GPIO 2), SCL (GPIO 3), VCC (5V), และ GND [cite: 1] (ระวังอย่าสลับ VCC กับ GND เด็ดขาด จออาจจะพังได้!) [cite: 1]
คลิกดูโค้ด Python สำหรับหน้าจอ LCD และการตั้ง Auto-start (View more) ซ่อนโค้ดจอ LCD
ก่อนอื่นติดตั้งไลบรารีที่จำเป็น:
sudo apt install -y python3-pip i2c-tools
sudo pip3 install RPLCD smbus2 --break-system-packages
สร้างไฟล์ nano /home/pi/display_ip.py แล้วแปะโค้ดด้านล่างนี้ลงไป:
import time
import subprocess
from RPLCD.i2c import CharLCD
# Initialize LCD (try common I2C addresses)
try:
lcd = CharLCD(i2c_expander='PCF8574', address=0x27, port=1, cols=16, rows=2, dotsize=8)
except:
try:
lcd = CharLCD(i2c_expander='PCF8574', address=0x3f, port=1, cols=16, rows=2, dotsize=8)
except:
print("LCD not found. Check wiring!")
exit()
# --- PHASE 1: Booting ---
lcd.clear()
lcd.cursor_pos = (0, 0)
lcd.write_string('Booting up...'.center(16))
time.sleep(5)
# --- PHASE 2: WiFi ---
lcd.clear()
lcd.cursor_pos = (0, 0)
lcd.write_string('Connecting WiFi'.center(16))
lcd.cursor_pos = (1, 0)
lcd.write_string('Please wait...'.center(16))
time.sleep(3)
# --- PHASE 3: Loading AI ---
lcd.clear()
lcd.cursor_pos = (0, 0)
lcd.write_string('Preparing AI...')
for i in range(60, 0, -1):
lcd.cursor_pos = (1, 0)
lcd.write_string(f'Wait: {i}s'.ljust(16))
time.sleep(1)
# --- PHASE 4: Show IP ---
lcd.clear()
while True:
try:
IP = subprocess.check_output("hostname -I | cut -d' ' -f1", shell=True).decode("utf-8").strip()
if not IP:
IP = "No WiFi"
except:
IP = "Error"
lcd.cursor_pos = (0, 0)
lcd.write_string('Server IP:'.center(16))
lcd.cursor_pos = (1, 0)
lcd.write_string(IP.center(16))
time.sleep(5)
จากนั้นตั้งให้รันสคริปต์อัตโนมัติตอนเปิดเครื่องด้วย Crontab: พิมพ์ crontab -e แล้วเพิ่มบรรทัดนี้ไว้ล่างสุด
@reboot /usr/bin/python3 /home/pi/display_ip.py &
Step 7-8: ประกอบร่างและเริ่มใช้งาน 🚀 [cite: 1]
อย่าลืมแปะซิงก์ระบายความร้อน (Heatsinks) ลงบนชิป CPU และ RAM ของ Raspberry Pi ด้วยนะครับ เพราะการรัน AI จะทำให้ชิปทำงานหนักและเกิดความร้อนได้ [cite: 1]
เมื่อทุกอย่างพร้อม แค่เสียบปลั๊ก! หน้าจอ LCD จะขึ้นสถานะการทำงาน และเมื่อโหลดระบบเสร็จ มันจะแสดงเลข Server IP (เช่น 192.168.x.x) ขึ้นมา [cite: 1]
ให้คุณหยิบมือถือหรือแล็ปท็อปที่ต่อ Wi-Fi เดียวกัน เปิดเบราว์เซอร์แล้วพิมพ์ http://<IP ของคุณ>:3000 คุณก็จะได้พบกับหน้าต่าง Open WebUI สำหรับแชทกับ AI ส่วนตัวแบบออฟไลน์แล้วครับ! [cite: 1]
คลิกดูรูปภาพประกอบและวิดีโอสาธิตการใช้งาน (View more) ซ่อนรูปภาพและวิดีโอ
อุปกรณ์ทั้งหมดที่ใช้ในโปรเจกต์นี้
การต่อสาย I2C เข้ากับจอ LCD และ Raspberry Pi
เบราว์เซอร์ของคุณไม่รองรับการแสดงผลวิดีโอนี้
วิดีโอสาธิตการใช้งานหน้าต่างแชท Open WebUI
*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา การรันโมเดล AI ภายในอุปกรณ์ (Local LLM) บนบอร์ด Raspberry Pi ควรใช้ความระมัดระวังเรื่องการระบายความร้อนเพื่อป้องกันความเสียหายต่อฮาร์ดแวร์ ผู้สนใจสามารถศึกษาการปรับตั้งค่า Docker และพารามิเตอร์เพิ่มเติมได้ที่
เว็บไซต์ต้นฉบับ ก่อนลงมือทำ