ESP32-P4 Weather Station จอ 10 นิ้ว วัดอากาศครบ

Weather Station ธรรมดาอาจจบที่อุณหภูมิ ความชื้น และพยากรณ์อากาศ แต่ Project นี้ไปไกลกว่านั้นมาก: ESP32-P4 + จอ 10.1 นิ้ว + SEN66 + LoRa + ESP-NOW รวมข้อมูลตั้งแต่ PM2.5, CO₂, VOC, NOx ไปจนถึง Sensor นอกบ้านและ Geiger Counter ไว้บน Dashboard เดียว

Project นี้เป็นผลงานของ Harald Kreuzer และพัฒนามาถึง Weather Station เวอร์ชัน 3.0 โดย Base Station ใช้ ESP32-P4 ขับจอ Touchscreen ขนาด 10.1 นิ้ว พร้อม Sensor ตรวจคุณภาพอากาศภายในตัวเครื่อง

ถ้าต้องการขยายพื้นที่ตรวจวัด ก็เพิ่ม Wireless Sensor Node ผ่าน LoRa หรือ ESP-NOW ได้ โดยไม่ต้องส่ง Sensor Data ขึ้น Cloud ก่อน

และถ้าอยากดู Forecast ระบบยังเลือกเชื่อมต่อ Open-Meteo, OpenWeatherMap หรือ Visual Crossing ผ่าน Internet ได้อีกต่างหาก

จุดที่น่าสนใจคือ ผู้สร้างไม่ได้พยายามให้ MCU ตัวเดียวทำทุกอย่าง แต่แยกระบบเป็น Base Station → Radio Receiver → Wireless Sensor Nodes ทำให้ Project นี้เป็นตัวอย่างของ System Architecture ที่น่าเรียนรู้มากกว่าการต่อ Sensor เข้ากับ ESP32 ทีละตัว

DIY ESP32-P4 Weather Station และ Air Quality Monitor จอ 10.1 นิ้ว
ESP32-P4 Weather Station & Air Quality Monitor พร้อม Dashboard ขนาด 10.1 นิ้ว สำหรับแสดงข้อมูลอากาศภายใน, Wireless Sensor และ Forecast

Key Takeaways

  • Base Station ใช้ Waveshare ESP32-P4-Module-DEV-KIT-C พร้อมจอ 10.1 นิ้ว
  • จอทำงานแนวนอนที่ 1280 × 800
  • SEN66 ตรวจ PM1.0, PM2.5, PM4.0, PM10, CO₂, VOC, NOx, Temperature และ Humidity
  • ESP32-P4 ไม่มี Wi-Fi/Bluetooth Radio ในตัว จึงใช้ ESP32-C6 ที่อยู่บน Module เป็น Wireless Coprocessor
  • ESP-NOW ยังไม่รองรับผ่าน esp-hosted ใน Setup ของผู้สร้าง จึงมี Heltec ESP32-S3 เป็น Receiver แยก
  • Sensor Receiver รับทั้ง LoRa + ESP-NOW แล้วส่งข้อมูลต่อเข้า ESP32-P4 ผ่าน I²C
  • Dashboard รองรับ Wireless Sensor ได้สูงสุด 6 Slot
  • มี 24-hour History สำหรับค่าคุณภาพอากาศ
  • Forecast แสดงข้อมูล 48 ชั่วโมง และ 7 วัน
  • รองรับ Open-Meteo, OpenWeatherMap และ Visual Crossing
  • ระบบ Sensor ทำงานแบบ Local-first และไม่ได้พึ่ง Cloud Service สำหรับ Sensor Network
  • Base Station ใช้ LVGL และ GUI ถูกออกแบบผ่าน EEZ Studio
  • Enclosure และ Sensor Case ใช้ 3D Printing
  • CNX ประเมินต้นทุน Main Unit ขั้นต่ำประมาณ $185 ก่อน Tax, Shipping และของจุกจิกอื่น

ESP32-P4 Weather Station ตัวนี้คืออะไร?

ถ้าเรียกแค่ “Weather Station” อาจทำให้ดูเล็กกว่าความจริงไปหน่อย

ตัว Project รวม 3 งานเข้าด้วยกัน:

  • Weather Dashboard
  • Indoor Air Quality Monitor
  • Wireless Environmental Sensor Hub

Base Station แสดงทั้งข้อมูลของตัวเอง, Sensor จากจุดอื่นในบ้านหรือสวน และ Forecast จาก Internet บนหน้าจอเดียว

ผู้สร้างตั้งใจหลีกเลี่ยง Cloud Service และ Mesh System สำหรับ Sensor Network โดยข้อมูลจาก Sensor ส่งเข้าหา Base Station โดยตรง ผ่าน LoRa หรือ ESP-NOW

Local-first ไม่ได้แปลว่า Offline 100%: Sensor ภายในระบบไม่จำเป็นต้องส่งข้อมูลผ่าน Cloud แต่ Weather Forecast ยังต้องใช้อินเทอร์เน็ตเพื่อดึงข้อมูลจาก Weather API

Architecture ถูกแบ่งเป็น 3 ชั้น

Repository แบ่งระบบหลักออกเป็นสามส่วน ซึ่งช่วยให้เราเข้าใจ Project ได้ง่ายขึ้นมาก

1

Base Station

ESP32-P4 + Touchscreen เป็นส่วนที่ผู้ใช้มองเห็นและใช้งาน ทำหน้าที่แสดง Sensor, History Chart, Forecast และ Setup

2

Sensor Receiver

ใช้ Heltec WiFi LoRa 32 ที่มี ESP32-S3 เป็น Gateway สำหรับรับ LoRa และ ESP-NOW

3

Wireless Sensor Nodes

แต่ละ Node มี Sensor ของตัวเอง แล้วตื่นเป็นช่วง ๆ เพื่ออ่านค่าและส่ง Packet ก่อนกลับไป Sleep

Wireless Sensor Nodes
↓ LoRa / ESP-NOW
Sensor Receiver — ESP32-S3
↓ I²C
ESP32-P4 Base Station

Wi-Fi / HTTPS → Weather API

นี่คือ Lesson ใหญ่ของ Project: ถ้างานเริ่มใหญ่ ไม่จำเป็นต้องบังคับ MCU ตัวเดียวให้รับ Sensor, Wireless, UI และ Protocol ทุกอย่างพร้อมกัน การแยก Component ตาม Responsibility ทำให้ระบบจัดการง่ายขึ้น

Base Station ใช้ Hardware อะไรบ้าง?

Hardware หน้าที่ / Spec จาก Source
Waveshare ESP32-P4-Module-DEV-KIT-C Base Board หลัก ใช้ ESP32-P4 Module, 32 MB PSRAM และ ESP32-C6 สำหรับ Wireless
10.1-inch IPS Display Native 800 × 1280, ใช้งานแนวนอนเป็น 1280 × 800, Contrast 800:1, Brightness 400 cd/m²
Sensirion SEN66 Air Quality Sensor หลัก
BH1750 Ambient Light Sensor สำหรับปรับ Backlight
DFRobot C4001 24GHz mmWave Presence Sensor สำหรับตรวจว่ามีคนอยู่หน้า Display หรือไม่
Heltec WiFi LoRa 32 V4 ESP32-S3 + LoRa Receiver รับ LoRa และ ESP-NOW

CNX ยังระบุว่า Waveshare Kit มี Speaker 8Ω 2W และ RPi Camera แต่ Hardware สองชิ้นนี้ ไม่ได้ถูกใช้ใน Project นี้

ESP32-P4 ไม่มี Wi-Fi แล้วต่อ Internet ยังไง?

จุดที่หลายคนอาจงงคือ ESP32-P4 ไม่มี Wi-Fi หรือ Bluetooth Radio ในตัว

Waveshare Module จึงใส่ ESP32-C6 มาเป็น Wireless Coprocessor

การสื่อสารระหว่าง P4 กับ C6 ใช้ ESP-Hosted-MCU ทำให้ฝั่ง ESP32-P4 ยังสามารถใช้ API ของ ESP-IDF เพื่อเข้าถึง Network ได้ในลักษณะคล้ายมี Wireless อยู่กับตัว

ESP32-C6 ทำหน้าที่หลักใน Project นี้สำหรับ:

  • Wi-Fi
  • เชื่อม Weather API
  • ดาวน์โหลด Firmware Update

มี ESP32-C6 แล้ว ทำไมยังต้องมี Heltec Receiver?

เพราะ Creator ระบุว่า ESP-NOW ยังไม่รองรับผ่าน esp-hosted ใน Architecture นี้

แต่ ESP-NOW เป็นหนึ่งใน Protocol สำคัญของ Wireless Sensors

ผู้สร้างจึงเพิ่ม Heltec WiFi LoRa 32 V4 ที่ใช้ ESP32-S3 + SX1262 ให้ทำหน้าที่ Radio Gateway แยก

Receiver ตัวนี้:

  • รับ ESP-NOW
  • รับ LoRa
  • เก็บ Packet จาก Sensor
  • เพิ่ม RSSI / SNR / Timestamp
  • ส่งข้อมูลต่อให้ ESP32-P4 ผ่าน I²C

ฝั่ง ESP32-P4 จึงไม่ต้องจัดการ Radio Packet โดยตรง แต่เพียง Poll ข้อมูลจาก Receiver ผ่าน I²C

SEN66 ตัวเดียววัดอะไรได้บ้าง?

SEN66 เป็นหัวใจของการวัด Indoor Air Quality ใน Base Station

Particulate Matter

  • PM1.0
  • PM2.5
  • PM4.0
  • PM10.0

Gas / Air Quality

  • CO₂
  • VOC Index
  • NOx Index

Environment

  • Temperature
  • Relative Humidity

Creator อธิบายว่า การรวม Parameter หลายอย่างไว้ใน Sensor เดียว ทำให้ Design ง่ายขึ้น เพราะไม่ต้องใช้ Sensor แยกหลายตัว เหมือน Weather Station รุ่นก่อน

SEN66 ติดต่อกับ ESP32-P4 ผ่าน I²C เช่นเดียวกับ Sensor หลายตัวใน Base Station

BH1750 + C4001 ไม่ได้มีไว้แค่ทำจอสวย

ถ้ามีแค่ BH1750 เราก็สามารถปรับ Brightness ให้สัมพันธ์กับแสงรอบตัวได้

แต่ผู้สร้างเจออีกปัญหา: Backlight ของ Display สร้างความร้อน และความร้อนอาจมีผลต่อค่าที่ SEN66 วัด

จึงเพิ่ม C4001 24GHz mmWave Radar เข้ามาช่วยตรวจ Presence

1

ไม่มีคนอยู่หน้าเครื่อง

Display ถูกลดความสว่างลงมาก ทำให้เกิดความร้อนน้อยลง

2

ตรวจพบคนเข้าใกล้

C4001 ทำให้ระบบกลับมาเปิด Display ที่ระดับใช้งานปกติ

3

BH1750 ปรับตาม Ambient Light

เมื่อมีคนใช้งาน BH1750 จะช่วยปรับระดับ Backlight ให้เหมาะกับแสงรอบตัว

นี่เป็นตัวอย่างของ System Design ที่ดี: Sensor สำหรับ Display ไม่ได้แก้แค่เรื่อง UX แต่ยังช่วยลดปัญหาความร้อน ที่อาจไปรบกวน Sensor Environment ซึ่งอยู่ในเครื่องเดียวกัน

อยากวัดหลายห้อง? เพิ่ม Wireless Sensor Node ได้

Main Unit สามารถใช้งานเดี่ยว ๆ ได้ แต่ Project ถูกออกแบบให้ขยาย Sensor ไปยังตำแหน่งอื่นได้

Sensor Project Board สิ่งที่วัด Radio
Sensor-LORA-BME280 Heltec ESP32-S3 Temperature / Humidity / Pressure LoRa
Sensor-LORA-BME280-HTCC-AB01 CubeCell HTCC-AB01 V2 Temperature / Humidity / Pressure LoRa
Sensor-LORA-SHT45 Heltec ESP32-S3 Temperature / Humidity LoRa
Sensor-LORA-RadiationD Heltec ESP32-S3 Radiation / Geiger Counter LoRa
Sensor-LORA-RadiationD-HTCC-AB01 CubeCell HTCC-AB01 V2 Radiation / Geiger Counter LoRa
Sensor-ESP-NOW-BME280 Generic ESP32 Temperature / Humidity / Pressure ESP-NOW

Creator ยังอธิบายว่า ESP-NOW BME280 เป็น Sub-project รุ่นเก่าที่สุด และใช้ PCB ที่ผู้สร้างออกแบบเอง

ดังนั้นคำว่า “ไม่มี Custom Hardware” ต้องอ่านแบบมีบริบท: Architecture หลักใช้บอร์ดสำเร็จรูปเป็นจำนวนมาก แต่ Build Guide มีทั้ง Add-on Board สำหรับ Receiver และ Sensor Board บาง Version ที่ผู้สร้างออกแบบเอง

Wireless Sensor อยู่ด้วย Battery ได้นาน เพราะไม่ได้เปิดตลอดเวลา

Repository ระบุว่า Sensor Node ใช้เวลาส่วนใหญ่อยู่ใน Deep Sleep

สำหรับ Node อุณหภูมิ / ความชื้น / ความกดอากาศ:

Wake → วัดค่า → ส่งข้อมูล → Sleep

Repo ปัจจุบันระบุว่า Node กลุ่มนี้ ตื่นทุกประมาณ 10 นาที เพื่อวัดและส่งข้อมูล

Sensor บาง Version ยังสามารถชาร์จ Battery ผ่าน Solar Cell ได้

Geiger Counter ซับซ้อนกว่า

Geiger Counter ไม่สามารถตื่นมาอ่าน Snapshot แล้วจบเหมือน Temperature Sensor เพราะต้องสะสมจำนวน Pulse ตามเวลา

ESP32 Version จึงใช้ ULP Coprocessor ช่วยนับ Pulse ระหว่างที่ Main CPU อยู่ใน Sleep

Sensor หลายแบบคุยกันได้ เพราะใช้ Packet Format เดียวกัน

Sensor Firmware, Receiver และ Base Station แชร์ Definition ของ packet_format.h เหมือนกัน

Header หลักมีเพียง 4 bytes เพื่อบอกว่า:

  • นี่คือ Message แบบไหน
  • มาจาก Sensor Slot ไหน
  • เป็น Sensor Type อะไร
  • Payload ที่ตามมายาวเท่าไร
packet_header_t — Shared Sensor Protocol
typedef struct __attribute__((packed)) {
    uint8_t msg_type;
    uint8_t sensor_nr;
    uint8_t sensor_type;
    uint8_t payload_len;
} packet_header_t;

ตัว Header ไม่จำเป็นต้องรู้รายละเอียด Measurement ทุกชนิด

Payload ของ BME280, SHT45 และ Geiger ถูกแยกเป็น Struct ของตัวเอง

Receiver จึงสามารถรับ Packet แล้วส่งต่อแบบ Raw โดยไม่จำเป็นต้องรู้ Logic ของ Sensor ทุกประเภท ส่วน Base Station ค่อย Interpret Payload จากค่า sensor_type

ข้อดีของวิธีนี้: ถ้าเพิ่ม Sensor Type ใหม่ Architecture ไม่จำเป็นต้อง Rewrite Receiver ทั้งชุด เพราะ Receiver มีหน้าที่หลักแค่รับ เก็บ Metadata แล้วส่ง Packet ต่อ

หน้าจอรองรับ Sensor สูงสุด 6 Slot พร้อม Offline Detection

Dashboard สามารถแสดง Wireless Sensor ได้สูงสุด 6 Slot

แต่ละ Slot สามารถตั้งชื่อ และเลือก Icon ได้ เช่น:

  • Kitchen
  • Bedroom
  • Balcony
  • ตำแหน่งอื่นตาม Setup

Header ของ Sensor Card ยังแสดง:

  • ชื่อ
  • Icon
  • Battery
  • Signal Strength

ถ้า Sensor หายไปนานกว่าช่วงเวลาที่ควรส่งข้อมูล ระบบจะ Mark Sensor นั้นว่า Offline

Creator ระบุว่า Receiver จะ Mark Offline เมื่อเวลาที่ไม่มี Packet ยาวเกินประมาณ 3 เท่า ของ Interval ปกติของ Sensor นั้น

Forecast ไม่ได้มีแค่ “วันนี้ฝนไหม”

UI ของ Base Station แสดงทั้ง:

  • Current Weather
  • Hourly Forecast 48 ชั่วโมง
  • Daily Forecast 7 วัน

Creator ตั้งใจให้ UI ใช้พื้นที่จอ 10 นิ้ว แสดงข้อมูลจำนวนมาก แต่ยังอ่านง่าย

Dashboard จึงรวมทั้ง Weather API, Base Station Data และ Wireless Sensor ไว้ในหน้าเดียว

Weather API มีให้เลือก 3 เจ้า ไม่ได้ผูกกับ Provider เดียว

Provider ข้อมูลจาก Build Guide
Open-Meteo ไม่ต้อง Register, ไม่มี Account, ไม่มี API Key
Visual Crossing ใช้ Account + API Key
OpenWeatherMap ใช้ API Key และ Build Guide ระบุว่า One Call API Version ที่ผู้สร้างใช้ ต้องผูก Credit Card แม้อยู่ใน Free Quota

Provider ทั้งสาม ให้ Data Structure ไม่เหมือนกัน

Firmware จึงมี Mapping Layer แปลง Raw Data ของแต่ละ Provider มาเป็น Target Format กลาง

UI จึงไม่จำเป็นต้องรู้ว่า Forecast ตอนนี้มาจาก Provider ไหน

เงื่อนไข API เปลี่ยนได้: Account Requirement, Free Quota, Credit Card Requirement และ Endpoint สามารถเปลี่ยนหลังจากวันที่ผู้สร้างเขียน Build Guide จึงควรตรวจหน้า Provider ปัจจุบันอีกครั้ง ก่อนตั้งระบบจริง

Software ฝั่ง Base Station ไม่ใช่ Arduino Sketch ธรรมดา

Main Unit ถูกพัฒนาด้วย ESP-IDF และใช้ LVGL สำหรับ GUI

Layout ถูกออกแบบด้วย EEZ Studio

ส่วน CubeCell-based Node บาง Project ใช้ Arduino / PlatformIO

Task ถูกแยกตาม Responsibility

เมื่อ Main Screen เริ่มทำงาน Application จะ Start Task แยกตามงานแต่ละประเภท

Repository แยกส่วนสำคัญออกเป็น Module เช่น:

  • Display
  • I²C
  • Receiver
  • Wi-Fi
  • NVS
  • Weather Providers
  • LVGL Charts
  • Sensor GUI
  • Setup Screen

Project นี้เหมาะกับคนที่อยากขยับจาก Arduino Sketch ไป Embedded Application จริงจัง: เพราะ Code ไม่ได้กองทุกอย่างไว้ใน setup() และ loop() แต่เริ่มแยก Layer ตามหน้าที่ของระบบ

จุดที่ต้องเช็กก่อน Build: ESP-IDF Version ไม่ตรงกันทุก Source

Build Guide ของ Creator ระบุว่า Project ถูกพัฒนาด้วย ESP-IDF 6.x

แต่ BaseStation README ของ Repository Branch develop ที่ตรวจในรอบนี้ ระบุ:

Requires ESP-IDF v5.5.4

อย่าเลือก Version จากบทความอย่างเดียว: Project มีการพัฒนาต่อเนื่อง และ Creator เองก็เตือนว่า Build Guide เป็นเพียง Snapshot ซึ่งอาจต่างจาก GitHub ปัจจุบันเล็กน้อย ดังนั้นตอน Build จริง ให้ยึด README ของ Branch / Commit ที่กำลังใช้อยู่

Firmware Update ได้เองผ่าน GitHub Releases

Base Station และ Sensor Receiver รองรับ Automatic Update ผ่าน GitHub Releases

Creator ระบุว่า Base Station จะตรวจ Firmware Version ใหม่เป็นช่วง ๆ และหากมี Version ใหม่ จะแจ้งผ่าน Popup

หลัง Update:

  1. Base Station ถูก Update ก่อน
  2. Receiver ถูก Update ตาม

ถ้า Firmware ใหม่มีปัญหา ระบบถูกออกแบบให้ Rollback ไป Version ก่อนหน้า

3D Printed Housing เป็นงานใหญ่กว่าที่เห็น

ตัว Housing ไม่ได้ถูกออกแบบสำเร็จในครั้งเดียว

Creator เล่าว่า Design แรกของ Rear Cover ใช้ Support Material เยอะ และผลลัพธ์ยังไม่เป็นที่พอใจ

สุดท้ายจึงเปลี่ยนเป็น Housing แบบสองชิ้น เพื่อให้ Print ง่ายขึ้น

อีกปัญหาคือจอ Top-heavy

ด้วยน้ำหนักและขนาดของ Display Prototype ช่วงแรก ล้มง่าย

Base จึงต้องถูกแก้หลายรอบ เพื่อให้ตั้งบนโต๊ะได้มั่นคงขึ้น

Sensor อยู่ใน Base ด้วย

Light Sensor และ Radar Sensor ถูกวางไว้ใน Base เพื่อให้ขอบ Display ยังดูแคบ

ไฟล์ CAD ปัจจุบันมีแล้ว

CNX อัปเดตบทความว่า STEP และ SolidWorks Files ของ Version ใหม่ อยู่ใน SolidWorks folder ของ Repository

มีไฟล์ 3D แล้ว แต่ไม่มีเครื่องหรือไม่อยากเสียเวลาลองหลาย Revision? สามารถส่งไฟล์ 3D ให้ทีม Globalbyte ช่วยประเมินงานรับปริ้นท์ 3D ก่อนเริ่มประกอบ Electronics ได้ โดยควรตรวจว่าไฟล์ CAD ตรงกับ Hardware Revision ที่คุณกำลังใช้ก่อนสั่งผลิต

ต้นทุน Main Unit ประมาณเท่าไร?

CNX Software ประเมิน Component หลักประมาณ:

Component ราคาอ้างอิงในบทความ CNX
Waveshare ESP32-P4-Module-DEV-KIT-C $77.99 ตามราคา Waveshare ที่ CNX อ้างอิง
Heltec V4 $29.99
Sensirion SEN66 $62.03
BH1750 $1.39 ตามแหล่งราคาที่ CNX อ้างอิง
C4001 24GHz $12.90

CNX สรุปว่า Main Unit อยู่ที่อย่างน้อยประมาณ $185

และยังไม่รวม:

  • Tax
  • Shipping
  • Screw / Nut
  • Connector
  • Filament
  • External Sensor Node

Creator เอง ประเมิน Material Cost ของ Base Station ไว้ประมาณ 160 ยูโร ตามราคาที่เขาซื้อในยุโรป

ราคาเป็นข้อมูลอ้างอิงช่วงที่ Source จัดทำ: ราคา Component, ภาษี, Shipping และอัตราแลกเปลี่ยน เปลี่ยนได้ตลอด จึงไม่ควรใช้ตัวเลขนี้เป็นใบเสนอราคาสำหรับ Build ในประเทศไทย

แล้วทำเองทำไม ถ้าของสำเร็จรูปอาจถูกกว่า?

CNX พูดตรง ๆ ว่า Project นี้แทบแน่นอนว่า ไม่ได้ช่วยประหยัดเงิน เมื่อเทียบกับ Weather Station ที่ถูกออกแบบเพื่อผลิตจำนวนมาก

สิ่งที่ได้กลับมาแทนคือ:

  • เลือก Sensor เอง
  • เพิ่ม Sensor Type เอง
  • ควบคุม Data Flow เอง
  • ไม่ต้องผูก Sensor Network กับ Cloud
  • แก้ GUI เองได้
  • ปรับ Housing เองได้
  • เรียน ESP-IDF / LVGL / I²C / LoRa / ESP-NOW
  • ได้เรียน Architecture ของระบบหลาย MCU

สรุปง่าย ๆ: ถ้าเป้าหมายคือ “ซื้อเครื่องวัดอากาศให้ถูกที่สุด” Project นี้อาจไม่ตอบโจทย์ แต่ถ้าเป้าหมายคือ “อยากสร้าง Environmental Monitoring System ของตัวเอง” นี่เป็นคนละเรื่องเลย

ถ้าจะทำในไทย มีอะไรที่ควรเช็กเพิ่ม?

1. LoRa Frequency / Regional Setting

Repository ของผู้สร้าง มีการกำหนด LoRa Parameters ตามระบบที่เขาใช้งานอยู่

หากนำ Project มาใช้ในประเทศไทย ควรตรวจ Frequency, Region Configuration และข้อกำหนดการใช้คลื่น ที่เกี่ยวข้องในไทยก่อน แทนการ Copy Radio Setting จาก Repository ไปใช้ตรง ๆ

2. Weather API Location

Setup ต้องกำหนด Latitude, Longitude, Altitude และ Time Zone ให้ตรงกับพื้นที่จริง

3. Sensor Placement สำคัญ

ค่า Indoor Air Quality ถูกวัดที่ Base Station ดังนั้นตำแหน่งวางเครื่อง ย่อมเป็นตำแหน่งที่ SEN66 กำลังวัดสภาพอากาศจริง

หากต้องการวัดหลายห้อง ควรใช้ Wireless Node เพิ่มตาม Architecture ของ Project มากกว่านำค่าจุดเดียว ไปแทนทั้งบ้าน

ภาพ Hardware, Sensor และ Architecture เพิ่มเติม

หน้าแรกแสดง Hero Image เพียงภาพเดียว ส่วนภาพทางเทคนิคอื่น ถูกเก็บใน View more แบบ Pure CSS

Waveshare ESP32-P4-Module-DEV-KIT-C ที่ใช้เป็น Base Station
Waveshare ESP32-P4-Module-DEV-KIT-C เป็น Hardware หลักของ Base Station และมี ESP32-C6 ช่วยจัดการ Wireless Connectivity
ด้านหลัง ESP32-P4 Weather Station ใน 3D printed stand
ด้านหลังของ Base Station ใน Housing / Stand ที่ผลิตด้วย 3D Printing ซึ่ง Creator ปรับ Design หลาย Revision เพื่อลด Support และแก้ปัญหาตัวจอ Top-heavy
ESP-NOW BME280 wireless sensor node
Sensor-ESP-NOW-BME280 เป็น Wireless Node รุ่นเก่าของ Project สำหรับส่ง Temperature, Humidity และ Pressure ผ่าน ESP-NOW
LoRa Geiger counter sensor สำหรับ ESP32-P4 Weather Station
LoRa Geiger Counter เป็นตัวอย่างว่า Sensor Network ไม่จำเป็นต้องจำกัดอยู่แค่ Temperature / Humidity แต่สามารถเพิ่ม Sensor Type อื่นเข้า Packet Architecture ได้
DIY ESP32-P4 Weather Station hardware architecture block diagram
Hardware Architecture Block Diagram แสดงความสัมพันธ์ระหว่าง ESP32-P4, Wireless Receiver, Air Quality Sensor, Display และ Sensor Network
ESP32-P4 Weather Station Base Station software architecture
Base Station Software Architecture แสดงการแยก Task และ Module ของ ESP-IDF Application

Project นี้ค่อนข้างใหญ่ — Build จริงควรเปิดคู่มือต้นฉบับควบคู่กัน

CNX ช่วยสรุป Project ได้กระชับ แต่รายละเอียดเรื่อง:

  • Software Architecture
  • Sensor Packet
  • Weather API
  • ESP-IDF Setup
  • Enclosure
  • Wireless Node
  • Power Optimization

อยู่ใน Build Guide และ GitHub Repository ของผู้สร้างมากกว่า

FAQ: ESP32-P4 Weather Station

ESP32-P4 มี Wi-Fi ในตัวหรือไม่?

ไม่มี Radio Wi-Fi / Bluetooth ในตัว แต่ Waveshare Module ที่ Project ใช้ มี ESP32-C6 เป็น Wireless Coprocessor และเชื่อมกับ P4 ผ่าน ESP-Hosted-MCU

ถ้ามี ESP32-C6 แล้ว ทำไมยังต้องใช้ Heltec ESP32-S3?

เพราะ Creator ระบุว่า ESP-NOW ยังไม่รองรับผ่าน esp-hosted ในระบบนี้ Heltec Receiver จึงถูกใช้รับทั้ง ESP-NOW และ LoRa แล้วส่งข้อมูลเข้า ESP32-P4 ผ่าน I²C

SEN66 วัด PM2.5 ได้อย่างเดียวหรือไม่?

ไม่ SEN66 ตรวจ PM1.0, PM2.5, PM4.0, PM10, CO₂, VOC, NOx, Temperature และ Humidity ตามข้อมูลใน Build Guide

ต้องใช้ Cloud หรือสมัคร Account เพื่อดู Sensor ไหม?

Sensor Network ถูกออกแบบให้ทำงานแบบ Local และไม่ได้พึ่ง Cloud Service แต่ Weather Forecast ต้องเชื่อม Weather API ผ่าน Internet

Weather API ตัวไหนไม่ต้องใช้ API Key?

Build Guide ระบุว่า Open-Meteo ไม่ต้อง Register และไม่ต้องใช้ API Key ส่วน Visual Crossing และ OpenWeatherMap ต้องใช้ API Key

Dashboard แสดง Sensor ได้กี่จุด?

Layout ปัจจุบันรองรับ Wireless Sensor สูงสุด 6 Slot พร้อม Sensor ภายใน Base Station

Sensor หายจากระบบแล้วรู้ได้ไหม?

มี Offline Detection และ Header ของ Sensor Card จะเปลี่ยนสถานะ เมื่อ Sensor ไม่ส่งข้อมูล นานเกินช่วงเวลาที่ระบบคาดไว้

ใช้ Arduino IDE ทำ Base Station ได้ไหม?

Source หลักของ Base Station ใช้ ESP-IDF ไม่ใช่ Arduino Sketch ทั่วไป ส่วน CubeCell Sensor บาง Version ใช้ Arduino / PlatformIO

ใช้ ESP-IDF Version ไหน?

Build Guide ระบุ ESP-IDF 6.x แต่ README ของ develop branch ที่ตรวจพบระบุ v5.5.4 จึงควรยึด README ของ Branch / Commit ที่คุณกำลัง Build จริง

Housing มีไฟล์ 3D ให้ไหม?

CNX อัปเดตว่า STEP และ SolidWorks Files สำหรับ Version ใหม่ มีอยู่ใน SolidWorks Folder ของ Repository แล้ว

Project นี้ใช้ Custom PCB หรือไม่?

Main Architecture เน้นบอร์ดสำเร็จรูป แต่ Creator มี Add-on Board และ Sensor Board บาง Version ที่ออกแบบเอง ดังนั้นไม่ควรสรุปว่า ไม่มี Custom Hardware ทุกส่วน

ต้นทุนถูกกว่า Weather Station สำเร็จรูปไหม?

CNX ระบุว่ามีโอกาสสูงมากที่จะไม่ถูกกว่า โดย Main Unit ถูกประเมินไว้อย่างน้อยประมาณ $185 ก่อนค่าใช้จ่ายอื่น

ทำไมยังน่าสร้างถ้าแพงกว่า?

เพราะ Project เปิดให้แก้ Hardware, Sensor, Wireless, GUI, Weather Provider และ Enclosure ได้เอง จุดคุ้มค่าจึงอยู่ที่การเรียนรู้และการปรับแต่ง มากกว่าการประหยัดต้นทุน

นี่ไม่ใช่ ESP32 ต่อ Sensor แล้วโชว์ค่าบนจอธรรมดา

สิ่งที่ทำให้ Project นี้น่าสนใจ คือมันเริ่มแตะโครงสร้าง ของระบบ Embedded ขนาดใหญ่ขึ้นจริง ๆ

มี Base Station ที่เน้น Display และ Application

มี Receiver ที่รับผิดชอบ Wireless

มี Sensor Nodes ที่ Optimize เพื่อ Battery

มี Packet Format ที่แชร์กันระหว่าง Device

มี API Abstraction เพื่อเปลี่ยน Weather Provider โดยไม่ต้องเขียน UI ใหม่

มี OTA Update และ Rollback

และยังต้องคิดถึง Mechanical Design ของ 3D Printed Housing ไปพร้อมกันด้วย

สำหรับคนที่เล่น ESP32 จนเริ่มรู้สึกว่า “ต่อ BME280 แล้ว Print ค่า Serial มันง่ายไปแล้ว” Project นี้คืออีก Step ที่ทำให้เห็นว่า Sensor Project สามารถขยายเป็น Distributed Embedded System ได้อย่างไร

References / แหล่งข้อมูลต้นฉบับ

มีไฟล์ 3D แล้ว อยากเริ่มจาก Housing ก่อน?

Project แบบนี้มีทั้ง Electronics และชิ้นส่วน 3D Printed หลายจุด ถ้ามี STEP / STL หรือกำลังทำ Housing, Stand, Sensor Case สำหรับ ESP32 Project สามารถส่งไฟล์ให้ทีม Globalbyte ช่วยประเมินบริการรับปริ้นท์ 3D ได้

ถ้ายังอยู่ช่วง Prototype ก็สามารถเข้ามาคุยเรื่อง Development Board, Sensor และอุปกรณ์ Maker กับ Community ได้เช่นกัน

 


Blog posts