ภาพปกจัดจากภาพถ่ายหน้าจอต้นแบบจริง ESP32 เครื่องวัด pH EC และอุณหภูมิน้ำ โดย pH และ EC ยังรอสอบเทียบ

สร้างเครื่องวัด pH EC อุณหภูมิน้ำด้วย ESP32 และจอสัมผัส

QUICK ANSWER

โครงงานนี้ทำอะไรได้บ้าง?

เป้าหมายคือรวมการอ่าน pH, EC และอุณหภูมิน้ำไว้บนจอสัมผัสเดียว แต่ฟีเจอร์และผลวัดจริงต้องแยกออกจากกัน

pH

ความเป็นกรด–ด่าง

มีโค้ด Calibration สองจุด แต่ยังต้องยืนยันกับน้ำยามาตรฐาน

CAL
EC

ค่าการนำไฟฟ้า

โมเดลคำนวณยังอยู่ระหว่างตรวจสอบ

CAL
Temp

อุณหภูมิน้ำ

ภาพต้นแบบแสดง 25.9°C ณ เวลาที่ถ่าย

VALID บนหน้าจอ
สถานะเครื่องต้นแบบ

pH และ EC ยังแสดง CAL ในภาพจริง จึงไม่ใช่หลักฐานว่าเครื่องสอบเทียบครบหรือวัดได้แม่นยำแล้ว

01

ทำไมถึงอยากสร้างเครื่องวัดน้ำด้วย ESP32?

ภาพต้นแบบจริงของเครื่องวัดน้ำ ESP32
ภาพจากการประกอบและทดสอบต้นแบบจริง: หน้าจอแสดง pH = CAL, EC = CAL และอุณหภูมิ 25.9°C ณ เวลาถ่าย ยังไม่ถือว่า pH/EC ผ่านการสอบเทียบ

ใครที่ปลูกไฮโดรโปนิกส์น่าจะคุ้นกับการหยิบเครื่องวัด pH และ EC เดินเช็กค่าน้ำ แล้วจดตัวเลขไว้ทีละรอบ ถ้ามีหลายถัง การวัดและบันทึกข้อมูลซ้ำ ๆ ก็ใช้เวลาไม่น้อย ยิ่งต้องเช็กอุณหภูมิน้ำเพิ่มด้วย งานก็เพิ่มขึ้นอีก

ผมเลยลองพัฒนาโครงงานเครื่องวัดคุณภาพน้ำที่รวม pH, EC และอุณหภูมิน้ำ ไว้บนจอสัมผัสเดียว โดยใช้ ESP32 เป็นตัวควบคุม จุดมุ่งหมายคือทำให้การอ่านค่าจาก ชุดหัววัดที่ต่ออยู่กับเครื่อง สะดวกขึ้น และเปิดทางให้พัฒนาเป็นระบบตรวจวัด Smart Farm ในอนาคต

อย่างไรก็ตาม เวอร์ชันที่กำลังพัฒนานี้ ยังไม่ได้ออกแบบให้วัดหลายถังพร้อมกัน และไม่ได้ควบคุมการเติมปุ๋ยหรือปรับ pH อัตโนมัติ เราจึงต้องแยกเป้าหมายของระบบออกจากฟีเจอร์ที่ทำได้จริงในปัจจุบัน

บทความนี้จะพาดูว่าผมเลือกอุปกรณ์อะไร วางสถาปัตยกรรมการอ่านเซนเซอร์อย่างไร ทำไมต้องมีขั้นตอน Calibration และส่วนไหนยังต้องตรวจสอบก่อนนำไปใช้งานจริง

02

ค่า pH, EC และอุณหภูมิน้ำ บอกอะไรเรา?

pH

ความเป็นกรด–ด่าง

EC

การนำไฟฟ้าของน้ำ

°C

อุณหภูมิน้ำ

  • pH บอกความเป็นกรด–ด่างของสารละลาย มีผลต่อความพร้อมใช้ของธาตุอาหาร แต่ไม่ใช่ตัวเลขที่บอกปริมาณปุ๋ยโดยตรง
  • EC (Electrical Conductivity) บอกความสามารถของสารละลายในการนำไฟฟ้า ใช้ประเมินความเข้มข้นไอออนโดยรวมได้ แต่ไม่ได้แยกว่ามีธาตุอาหารชนิดไหนมากหรือน้อย
  • อุณหภูมิน้ำ เป็นข้อมูลสำคัญอีกตัวที่ต้องติดตาม และมีผลต่อการตีความ EC เมื่อใช้การชดเชยไปยังอุณหภูมิอ้างอิง

สำหรับการปลูกไฮโดรโปนิกส์ ค่าที่เหมาะสมจะขึ้นกับชนิดพืช ช่วงการเจริญเติบโต คุณภาพน้ำ และวิธีจัดการสารละลาย เราจึงไม่ควรนำตัวเลขตั้งต้นเพียงชุดเดียวไปฟันธงกับพืชทุกชนิด แหล่งข้อมูลอ้างอิง: Oklahoma State University — Electrical Conductivity and pH Guide for Hydroponics

03

อุปกรณ์ที่เลือกสำหรับโครงงาน

ใช้โมดูล TDS แบบแอนะล็อกพร้อมหัววัดและอ่านสัญญาณผ่าน ADS1115 ปรับเทียบตามคู่มือของโมดูล หากแสดงค่า EC จาก TDS ให้ติดป้ายว่าเป็นค่าประมาณและระบุตัวคูณที่ใช้

บทความนี้มีลิงก์ Affiliate เว็บไซต์อาจได้รับค่าคอมมิชชันเมื่อซื้อผ่านลิงก์

ภาพรวมอุปกรณ์เซนเซอร์ที่ใช้กับต้นแบบ
ภาพชุดอุปกรณ์จริงระหว่างพัฒนาและตรวจสัญญาณเซนเซอร์
อุปกรณ์หน้าที่ในระบบ
ESP32 DevKit V1 / ESP-WROOM-32อ่านข้อมูลเซนเซอร์ ประมวลผล และควบคุมหน้าจอ
ชุดวัด pH พร้อมหัววัด BNCสร้างสัญญาณแรงดันสัมพันธ์กับค่า pH; ต้องสอบเทียบ
โมดูล TDS แบบแอนะล็อกพร้อมหัววัดอ่านค่า TDS หลังปรับเทียบ หากแสดง EC ให้ระบุว่าเป็นค่าประมาณและบอกตัวคูณที่ใช้
โมดูล ADS1115แปลงแรงดันจากโมดูล pH และ TDS เป็นข้อมูลดิจิทัลผ่าน I2C
DS18B20 แบบหัววัดกันน้ำวัดอุณหภูมิน้ำผ่าน 1-Wire
จอ TFT LCD 2.4 นิ้ว SPI จาก GusTronใช้แสดง Dashboard เลือกตัวเลือก 2.4 นิ้วและยืนยันไดรเวอร์กับร้านก่อนตั้งค่า เพราะตัวเลือกหน้าร้านระบุ ILI9341 แต่คำบรรยายระบุ ST7789 รุ่น 2.4 นิ้วยังไม่ได้ยืนยันว่ารองรับสัมผัส
แหล่งจ่ายไฟ 5V ที่เหมาะสม, สายและกล่องจ่ายไฟและประกอบเครื่องอย่างปลอดภัยตามสเปกของโมดูล
โมดูล ADS1115 ที่ใช้ทดลองจริงบน Breadboard
ADS1115 จากโต๊ะทดลอง: ภาพประกอบอุปกรณ์ ไม่ใช่หลักฐานความเที่ยงตรงของเครื่องวัด

ทำไมใช้ ADS1115? เพราะสัญญาณ pH/EC เป็น Analog เราจึงเลือกให้ ADS1115 ซึ่งเป็น ADC ความละเอียด 16 บิตอ่านก่อนส่งข้อมูลให้ ESP32 ทาง I2C แทนการใช้ ADC ภายในบอร์ดเพียงอย่างเดียว แต่ความละเอียด 16 บิตไม่ได้แปลว่าเครื่องแม่นยำระดับนั้นทันที ความแม่นยำจริงยังขึ้นกับหัววัด โมดูลขยายสัญญาณ สัญญาณรบกวน การสอบเทียบ และการเดินสาย

ผู้ผลิต TI ระบุว่า ADS1115 เป็น ADC 16 บิต รองรับ I2C และมี PGA ให้เลือกช่วงการวัด (ดู ADS1115 product page) ส่วน DS18B20 ใช้ 1-Wire และเลือกความละเอียดได้ถึง 12 บิต (ดู Analog Devices DS18B20)

ภาพรวมการทำงานของระบบ

เส้นทางสัญญาณหลักแยกออกเป็นสองชุด:

  1. pH / EC: หัววัด → โมดูลปรับสภาพสัญญาณ → ADS1115 → ESP32 → ตรวจสถานะและคำนวณ → จอแสดงผล
  2. อุณหภูมิ: DS18B20 → GPIO 1-Wire ของ ESP32 → ตรวจสถานะ → จอแสดงผล

ในซอฟต์แวร์ ค่าที่อ่านจาก ADS1115 ถูกเก็บเป็น Raw ADC และแรงดันไฟฟ้า จากนั้นใช้ตัวกรองแบบ Exponential Moving Average (EMA) สำหรับช่วยให้ค่าที่แสดงมีการเปลี่ยนแปลงนุ่มนวลขึ้น โดยโค้ดตั้งค่า alpha 0.20 ขณะที่กระบวนการสอบเทียบใช้ Raw Voltage ที่ผ่านการตรวจความสดใหม่และความนิ่งของสัญญาณ ไม่ใช่ดึงค่า EMA ที่แสดงบน Dashboard ไปสอบเทียบตรง ๆ

ภาพรวมเส้นทางข้อมูลของเครื่องวัดน้ำ ESP32
แผนภาพแนวคิดการประมวลผล ไม่ใช่แผนผังเดินสายหรือผลสอบเทียบจริง
04

การต่อ ESP32 กับเซนเซอร์และจอสัมผัส

วงจร ESP32 ต้นแบบบน Breadboard
การต่อสายของต้นแบบจริงในระหว่างพัฒนา โปรดตรวจ pin map และแรงดันกับไฟล์ config.h ก่อนนำไปทำตาม ภาพถ่ายนี้ไม่ใช่ wiring diagram ที่รับรองแล้ว

ตารางนี้อ้างอิงค่าที่กำหนดอยู่ในไฟล์ Project/include/config.h ของโปรเจกต์วันที่ 31 ตุลาคม 2026 เป็น Pin Map สำหรับต้นแบบ ไม่ใช่คำยืนยันว่าตรวจวงจรบนฮาร์ดแวร์ครบแล้ว

สัญญาณGPIO / ช่องที่กำหนด
ADS1115 I2C SDA / SCLESP32 GPIO21 / GPIO22
ADS1115 address0x48 (ต้องยืนยันการต่อขา ADDR)
pH / EC AnalogADS1115 A0 / A1
DS18B20 DataESP32 GPIO26
SPI Clock ร่วมของ TFT และ TouchGPIO18
MOSI ร่วมของ TFT และ TouchGPIO23
MISO จาก TouchGPIO19
TFT CS / DC / RSTGPIO5 / GPIO27 / GPIO33
Touch CSGPIO25
ควบคุม Backlight ตามแบบวงจรต้นแบบGPIO32 ผ่านสวิตช์ทรานซิสเตอร์ที่ต้องตรวจจริง

ข้อดีของการแชร์ SPI คือใช้ SCK และ MOSI ร่วมกันได้ แต่ จอและ Touch ต้องมีขา CS แยกกัน และต้องยืนยันชนิดชิปจอให้ถูกต้องก่อนเลือกไดรเวอร์ โค้ดปัจจุบันเลือก ST7789 ไว้ ขณะที่หลักฐานจากฮาร์ดแวร์จริงยังต้องแยกให้ชัดว่าเป็น ST7789 หรือ ILI9341

หากยังไม่แน่ใจเรื่องขา GPIO อ่านบทความ ESP32 DevKit V1 Pinout และ ESP32 ADC คืออะไร เพิ่มเติมก่อนลงมือ

05

ซอฟต์แวร์จัดการค่าที่อ่านมาอย่างไร?

ฝั่งเฟิร์มแวร์ใช้ C++ บน PlatformIO ใน Arduino framework พร้อม LVGL 9.6 สำหรับสร้าง UI ตัวโปรเจกต์แยกงาน Sensor, Calibration, Storage และ Display ออกจากกัน เพื่อให้แก้ไขและทดสอบแต่ละส่วนได้ง่ายขึ้น

ลำดับที่โค้ดออกแบบไว้มีดังนี้:

  1. ESP32 เริ่มระบบจัดเก็บข้อมูล Calibration และอุปกรณ์เซนเซอร์
  2. อ่าน ADS1115 และ DS18B20 ตามรอบที่กำหนด โดยรอบการอ่านเซนเซอร์ตั้งไว้ประมาณ 1 วินาที
  3. ตรวจว่าเซนเซอร์พร้อมหรือผิดพลาด แยกสถานะ Ready, CAL, ERR และ STALE
  4. ค่าที่พร้อมและผ่านเงื่อนไขสอบเทียบจึงถูกส่งไปคำนวณและแสดงบน Dashboard
  5. จอมีการรีเฟรชสถานะต่างหากจากรอบอ่านเซนเซอร์ เพื่อไม่ให้ UI ต้องทำงานหนักเกินจำเป็น

จอ Dashboard ออกแบบเป็นสามการ์ดสำหรับ pH, EC และ Temp โดยแสดงสถานะของข้อมูลด้วย ไม่แสดงตัวเลขสมมติแทนเซนเซอร์ที่ยังไม่ได้สอบเทียบ นอกจากนี้มีฟังก์ชันปิด เฉพาะแสง Backlight หลังไม่มีการสัมผัส 60 วินาที โดยโค้ดยังอ่านเซนเซอร์ต่อเนื่อง แต่การต่อทรานซิสเตอร์และ Touch Wake ต้องทดสอบบนฮาร์ดแวร์จริงอีกครั้ง

06

ทำไม Calibration จึงสำคัญกว่าแค่มีเซนเซอร์อ่านค่าได้?

ขั้นตอน Calibration ตามโค้ดต้นแบบ
1. เลือก pH / EC
2. กรอก Ref
3. รอและ Capture
4. ยืนยัน Save
โมดูล pH และ TDS Meter V1.0 ที่ใช้ในชุดทดลอง
ในภาพมีบอร์ด TDS Meter V1.0 ซึ่งไม่ควรถือว่าให้ค่า EC ที่แม่นยำทันที: จำเป็นต้องตรวจรุ่นหัววัดและสมการแปลงสัญญาณก่อน

หัววัด pH ไม่ได้ให้ตัวเลข pH ออกมาจากขา Analog โดยตรง โมดูลจะให้สัญญาณแรงดันซึ่งต้องนำไปเทียบกับสารละลายมาตรฐานก่อน โค้ดของโครงงานรองรับการ Fit ค่า pH แบบสองจุด โดยรับค่าอ้างอิงจากผู้ใช้ ไม่ใส่ค่ามาตรฐานตายตัวให้เอง

แนวคิด Calibration Wizard ที่เขียนไว้คือ เลือก pH หรือ EC → กรอกค่า Ref1 → รอให้สัญญาณนิ่ง → Capture → เปลี่ยนสารละลาย Ref2 → Capture → ตรวจผล → Save เมื่อยืนยัน โดยโค้ดกำหนดเวลารออย่างน้อย 30 วินาที และเงื่อนไขความนิ่งของแรงดันเพื่อช่วยลดการบันทึกค่าที่ไม่น่าเชื่อถือ

การเก็บ Calibration ใน NVS ถูกออกแบบให้ตรวจข้อมูลซ้ำ ลดการเขียน Flash ถี่เกินไป และใช้ข้อมูลสองช่อง A/B พร้อมตรวจ Readback ก่อนเปิดใช้ค่าใหม่ อย่างไรก็ตาม การกู้คืนกรณีไฟดับระหว่างเขียนยังเป็นรายการทดสอบที่ค้างอยู่ จึงไม่ควรกล่าวว่าปลอดภัยจากไฟดับ 100%

การเตรียมหัววัดในภาชนะน้ำสำหรับทดสอบต้นแบบ
ภาพการเตรียมทดสอบหัววัดในภาชนะ ไม่ได้ยืนยันว่าของเหลวเป็นน้ำยามาตรฐาน Calibration
07

สิ่งที่ทำแล้ว และสิ่งที่ยังต้องทดสอบ

สถานะที่ตรวจสอบได้

บันทึกโครงการระบุว่า Build ผ่านแล้ว แต่การสอบเทียบและความแม่นยำบนเครื่องจริงยังต้องทดสอบ

เอกสารโครงการวันที่ 31 ตุลาคม 2026 บันทึกว่า Build ด้วย pio run -e esp32dev สำเร็จ และมีการตรวจสอบโครงสร้างโค้ด แต่ Build ผ่านไม่ได้หมายความว่าจอ Touch สอบเทียบตรงหรือค่า pH/EC ถูกต้องบนอุปกรณ์จริง

รายการสถานะจากเอกสารโครงการ
โครงสร้างโปรแกรม ESP32 + LVGLเขียนและตรวจสอบระดับ Source แล้ว
ADS1115 / DS18B20มีไดรเวอร์และระบบตรวจสถานะ; ต้องทดสอบสาย/แรงดัน/การเสียบถอดจริง
pH Calibrationมีโค้ด Fit สองจุด; ต้องเทียบน้ำยามาตรฐานและหัววัดจริง
EC Calibration / ชดเชยอุณหภูมิยังไม่อนุมัติโมเดล; ค่า EC ที่ผ่าน Calibration ยังไม่พร้อมยืนยัน
TFT และ Touchมีโค้ดแสดงผลและ Wizard; ชิป LCD/การสัมผัส/การหมุนจอต้องยืนยันจริง
บันทึก Calibration NVS A/Bมีโค้ด; ต้องทดสอบรีบูต ไฟดับ และ Recovery
การวัดหลายถังหรือส่งค่าขึ้น Cloudไม่ใช่ความสามารถที่ยืนยันไว้สำหรับเวอร์ชันนี้

งานทดสอบถัดไปที่สำคัญคือ วัดไฟเลี้ยงและสัญญาณก่อนเข้าช่อง ADS, ตรวจกราวด์/สัญญาณรบกวน, ทดสอบสารละลาย pH/EC อ้างอิง, เช็ก Touch ทุกมุม, ดูการคืนค่าหลังรีสตาร์ต และเก็บข้อมูลเปรียบเทียบกับเครื่องวัดอ้างอิงในช่วงใช้งานจริง

08

แล้วเครื่องวัดชุดนี้เหมาะกับใคร?

เหมาะกับคนที่อยากเรียนรู้การสร้างเครื่องวัดน้ำด้วย ESP32 และเข้าใจทั้งวงจร เซนเซอร์ และการสอบเทียบ โดยเฉพาะผู้ทำ DIY Smart Farm, ไฮโดรโปนิกส์ หรือระบบตู้ปลา/บ่อปลาที่ต้องการต่อยอดอุปกรณ์ให้เหมาะกับหน้างานของตัวเอง

ถ้าเป้าหมายคือเครื่องที่หยิบไปใช้งานได้ทันทีพร้อมค่าความแม่นยำที่รับรองแล้ว ควรเลือกเครื่องวัดสำเร็จรูปที่มีข้อมูลความแม่นยำและขั้นตอนบำรุงรักษาชัดเจนมากกว่าใช้ต้นแบบที่ยังไม่ผ่านการตรวจครบทุกข้อ

09

สรุป: เครื่องวัดน้ำ DIY ไม่ได้จบแค่จอแสดงตัวเลข

สิ่งที่น่าสนใจของโครงงานนี้ไม่ใช่แค่เอา pH, EC และอุณหภูมิมารวมไว้บนจอเดียว แต่เป็นการวางระบบให้อ่านค่าอย่างมีสถานะ มีการสอบเทียบ และไม่หลอกผู้ใช้ด้วยค่าที่ดูเหมือนถูกต้องทั้งที่เซนเซอร์ยังไม่พร้อม

ผมจะทยอยทดสอบกับฮาร์ดแวร์และสารละลายจริง แล้วนำผลตรวจที่ยืนยันได้มาอัปเดตในบทความถัดไป โดยเฉพาะเรื่อง EC Calibration และความเสถียรเมื่อใช้ต่อเนื่อง นี่คือส่วนที่สำคัญกว่าหน้าจอสวย ๆ สำหรับงาน Smart Farm ที่ใช้งานจริง

10

คำถามที่พบบ่อย (FAQ)

ใช้ ESP32 วัด pH โดยไม่ใช้ ADS1115 ได้ไหม?

ใช้ ADC ภายใน ESP32 ได้ในบางโครงงาน หากเอาต์พุตโมดูลและช่วงแรงดันเหมาะสม แต่ต้องคำนึงถึง noise, ADC calibration และความเสถียรของวงจร การเลือก ADS1115 เป็นแนวทางของโครงงานนี้ ไม่ใช่ข้อบังคับสำหรับทุกระบบ

วัด pH กับ EC ได้เลยหลังต่อสายเสร็จไหม?

ยังไม่ควรเชื่อค่าที่แสดงจนกว่าจะตรวจสัญญาณ แรงดัน สารละลายมาตรฐาน และ Calibration ตามเซนเซอร์รุ่นนั้น โดยเฉพาะ EC ของโครงงานนี้ยังไม่ผ่านการยืนยันโมเดล

ใช้วัดน้ำหลายถังพร้อมกันได้หรือไม่?

ต้นแบบในบทความนี้อธิบายชุดหัววัดที่ต่ออยู่กับเครื่องหนึ่งชุด ไม่ได้ยืนยันความสามารถสลับหลายถังหรือแสดงทุกถังพร้อมกัน หากต้องการหลายจุดวัดต้องออกแบบระบบเพิ่ม

จอแสดงผลมีตัวเลขแล้วถือว่าทดสอบผ่านหรือยัง?

ไม่ใช่ ต้องแยกทดสอบไดรเวอร์จอและ Touch, การอ่าน Raw Analog, ค่ามาตรฐาน pH/EC และการเก็บ Calibration ข้ามการรีสตาร์ต

11

อ่านเพิ่มเติมบน DevaDIY

12

เอกสารอ้างอิง


Shopping Cart
Scroll to Top