บารอมิเตอร์ (Barometer) คือเครื่องมือทางวิทยาศาสตร์ที่ใช้สำหรับวัดความกดอากาศ โดยทั่วไปความกดอากาศที่สูงขึ้นบ่งบอกว่าสภาพอากาศกำลังดีขึ้น และความกดอากาศที่ลดลงมักหมายถึงพายุและฝนที่กำลังจะมา ส่วนความกดอากาศที่คงที่แสดงถึงสภาพอากาศที่สม่ำเสมอ ในโปรเจกต์นี้ผมจะอธิบายวิธีง่ายๆ ในการสร้าง Aneroid Barometer emulator ซึ่งความจริงแล้วเราจะใช้ Digital electronics สมัยใหม่เข้ามาช่วยเลียนแบบการทำงานของ Barometer แบบกลไกคลาสสิกได้แบบ 100% โดย Aneroid Barometer นี้จะมีเข็มสองอัน คือ เข็มวัดสีดำ และเข็มอ้างอิงสีเหลือง

วิธีการพยากรณ์อากาศคือ: เราต้องปรับเข็มวัดสีดำให้ตรงกับเข็มสีเหลือง หลังจากผ่านไปไม่กี่ชั่วโมง หากเข็มวัดสีดำเลื่อนไปทางซ้ายของเข็มสีเหลือง แสดงว่าสภาพอากาศจะไม่คงที่ แต่ถ้าเลื่อนไปทางขวา แสดงว่าสภาพอากาศจะดีขึ้นและคงที่ หากเข็มทั้งสองยังคงทับกันอยู่ แสดงว่าไม่มีการเปลี่ยนแปลงของสภาพอากาศ ในเครื่องมือต้นฉบับ เข็มอ้างอิงจะถูกเลื่อนด้วยปุ่มที่อยู่ตรงกลางเครื่อง แต่ในกรณีนี้ ฟังก์ชันดังกล่าวจะทำงานผ่าน Rotary encoder
อุปกรณ์ชิ้นนี้สร้างได้ง่ายมากด้วยจอ CROWPANEL Round display ซึ่งมี ESP32S3 microcontroller และ Rotary Encoder ติดตั้งมาในตัว ดังนั้นจึงจำเป็นต้องเชื่อมต่อ BME280 Module เข้ากับพอร์ต I2C ที่สอดคล้องกับโมดูลจอแสดงผลนี้เท่านั้น

นี่คือโปรเจกต์แรกของผมที่ใช้ LVGL library และ Squareline Studio ซึ่งช่วยให้คุณสร้างโปรเจกต์ที่มีประสิทธิภาพทั้งในด้านภาพและฟังก์ชันการใช้งานได้อย่างน่าทึ่งด้วยวิธีที่ค่อนข้างง่าย

ครั้งนี้ผมจะไม่ลงรายละเอียดเกี่ยวกับวิธีการพัฒนาและสร้าง Code รวมถึง UI ใน Squareline Studio เนื่องจากมีการอธิบายไว้อย่างละเอียดในบทเรียนก่อนหน้าหลายแห่งแล้ว แต่ผมจะอธิบายขั้นตอนคร่าวๆ เพื่อให้คุณสามารถทำโปรเจกต์นี้ได้สำเร็จ

โปรเจกต์นี้ได้รับการสนับสนุนโดย PCBWay ตั้งแต่แนวคิดไปจนถึงการผลิต PCBWay ให้บริการโซลูชันการออกแบบอิเล็กทรอนิกส์ที่ทันสมัยสำหรับนักนวัตกรรมทั่วโลก รวมถึงการออกแบบ Hardware, การพัฒนา Software, การออกแบบเครื่องกล, การทดสอบผลิตภัณฑ์ และการรับรองมาตรฐาน ทีมวิศวกรของ PCBWay ประกอบด้วยวิศวกรที่มีประสบการณ์ด้านอิเล็กทรอนิกส์, ระบบ Embedded และการพัฒนาผลิตภัณฑ์ พวกเขาประสบความสำเร็จในการส่งมอบโปรเจกต์หลายร้อยโครงการในอุตสาหกรรมต่างๆ เช่น อุปกรณ์ทางการแพทย์, ระบบอัตโนมัติในอุตสาหกรรม, สินค้าอุปโภคบริโภค, Smart home และ IoT
ต่อไปนี้คือรายละเอียดการติดตั้งอุปกรณ์โดยใช้ Library ต่างๆ
ขั้นแรก คุณต้องใช้ Arduino IDE เวอร์ชัน 1.8.15 หรือใหม่กว่า จากนั้นติดตั้ง ESP32 Core เวอร์ชัน 2.0.14 หรือ 2.0.15 ตามคำแนะนำในหน้า Elecrow GitHub ตอนนี้ในเมนู Tools-Board-ESP32 Arduino เราจำเป็นต้องเลือก ESP32S3 Dev Module

สำหรับบอร์ดนี้ เราต้องปรับเปลี่ยนคุณสมบัติบางอย่าง: Flash Size 16MB, Partition scheme- Huge App และ PSRAM - OPI PSRAM ถัดไป เราต้องติดตั้ง LVGL library โดยเฉพาะเวอร์ชัน 8.3.11 นอกจากนี้คุณต้องติดตั้ง Arduino_GFX_Library และ Adafruit_BME280 library ด้วย โดย Library และไฟล์ที่จำเป็นทั้งหมดจะระบุไว้ที่ตอนท้ายของเนื้อหา ต่อมาคืออีกขั้นตอนที่สำคัญ คือในรูทของ Libraries folder (ซึ่งโดยส่วนใหญ่อยู่ใน user/documents/arduino) คุณต้องคัดลอกไฟล์กำหนดค่าสำหรับ LVGL library ที่ชื่อว่า "lv_conf.h" เมื่อเตรียมทุกอย่างเรียบร้อยแล้ว เราก็พร้อมที่จะ Compile และ Upload Code ที่กำหนดให้

ในขั้นตอนนี้ ให้เราแตกไฟล์ Code Final .zip โดยไม่ต้องเปลี่ยนชื่อโฟลเดอร์ภายใน เข้าไปในโฟลเดอร์แล้วเปิดไฟล์ .ino ด้วยวิธีนี้ Code จะถูกเปิดขึ้นพร้อมกับไฟล์ UI ที่จำเป็นซึ่งสร้างขึ้นก่อนหน้านี้ด้วย Squareline Studio ตอนนี้เราสามารถ Compile และ Upload Code ได้โดยไม่มีข้อผิดพลาด
ในส่วนของ Code นั้นถูกสร้างขึ้นในรูปแบบที่เราสามารถเปลี่ยน Parameter บางอย่างเพื่อให้ Barometer ทำงานได้อย่างปกติและแม่นยำ:

- ระดับความสูงที่เราอยู่จะถูกระบุในบรรทัด: static const float ALTITUDE_M =
- ความถี่ในการอ่านค่าจาก Sensor ถูกกำหนดในบรรทัด: static const uint32_t READ_PERIOD_MS
- การปรับแต่ง "Calibration" ของ Barometer ทำในบรรทัด: static const float NEEDLE_OFFSET_DEG โดยเราจะใส่ค่ามุมเพื่อให้เข็มแสดงค่าความกดอากาศที่ถูกต้องตามที่แสดงบน Serial Monitor
- และความละเอียดในการเคลื่อนที่ของเข็มสีเหลือง หรือขั้นตอนการเปลี่ยนแปลง ถูกตั้งค่าในบรรทัด: float diff = (encoderValue - lastEncoderValue) * 1.0f;
คราวนี้มาดูกันว่าอุปกรณ์ทำงานอย่างไรในสภาวะจริง: ทันทีหลังจากเปิดเครื่อง ภาพรายละเอียดของ Aneroid Barometer สไตล์เรโทรจะปรากฏบนจอแสดงผล โดยเข็มสีดำจะหยุดนิ่งที่ค่า Relative Atmospheric Pressure ในปัจจุบัน โดยทั่วไปหากความกดอากาศสูงกว่า 1013 HPa จะบ่งบอกถึงสภาพอากาศที่คงที่ และหากต่ำกว่า 1013 HPa จะบ่งบอกถึงสภาพอากาศที่ไม่คงที่ สำหรับเรา ข้อมูลการเปลี่ยนแปลงของความกดอากาศในช่วงเวลาหนึ่ง (อย่างน้อย 3 ครั้ง) เป็นสิ่งสำคัญ

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

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