สร้างแชทบอท AI ส่วนตัวแบบไม่ง้อเน็ต! เปลี่ยน Raspberry Pi เป็นเซิร์ฟเวอร์ PiNEXUS 🧠🤖

PiNEXUS Raspberry Pi Local AI Server
เปลี่ยน 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]

Terminal (Raspberry Pi SSH)
# 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]

ก่อนอื่นติดตั้งไลบรารีที่จำเป็น:

Terminal
sudo apt install -y python3-pip i2c-tools
sudo pip3 install RPLCD smbus2 --break-system-packages

สร้างไฟล์ nano /home/pi/display_ip.py แล้วแปะโค้ดด้านล่างนี้ลงไป:

Python (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 แล้วเพิ่มบรรทัดนี้ไว้ล่างสุด

Crontab
@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]

Hardware Components
อุปกรณ์ทั้งหมดที่ใช้ในโปรเจกต์นี้
LCD Wiring
การต่อสาย I2C เข้ากับจอ LCD และ Raspberry Pi
วิดีโอสาธิตการใช้งานหน้าต่างแชท Open WebUI

อ้างอิงและเรียบเรียงข้อมูลจาก: Globalbyteshop Blog

แหล่งที่มาบทความต้นฉบับ: Instructables - PiNEXUS : Turn Your Raspberry Pi Into a Plug-and-Play AI Machine

*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา การรันโมเดล AI ภายในอุปกรณ์ (Local LLM) บนบอร์ด Raspberry Pi ควรใช้ความระมัดระวังเรื่องการระบายความร้อนเพื่อป้องกันความเสียหายต่อฮาร์ดแวร์ ผู้สนใจสามารถศึกษาการปรับตั้งค่า Docker และพารามิเตอร์เพิ่มเติมได้ที่ เว็บไซต์ต้นฉบับ ก่อนลงมือทำ

 

แท็ก


Blog posts

เข้าสู่ระบบ

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

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