กลับไปหน้ารวมไฟล์
measuring-the-speed-of-sound-in-gases-as-a-means-of-identifying-them-7035c3.md

ความเร็วเสียงในแก๊สอุดมคติเนี่ย มันสัมพันธ์กับคุณสมบัติ 2 อย่างของสารที่เป็นแก๊สนั่นแหละ นั่นคือ มวลโมเลกุล (หน่วย kg/mol) และค่าคงที่อะเดียแบติก (Adiabatic Constant) หรืออัตราส่วนความจุความร้อน (Heat Capacity Ratio) หรือถ้าเป็นแก๊สผสมก็ใช้ค่าเฉลี่ยของมันนั่นเอง

ด้วยเหตุนี้แหละ การวัดความเร็วเสียงเลยถูกใช้เป็นวิธีเบื้องต้นในการระบุว่าแก๊สที่เรามีอยู่เป็นแก๊สบริสุทธิ์หรือเป็นสารผสม

เราสามารถทำการวัดได้โดยใช้เซ็นเซอร์วัดระยะอัลตราโซนิก (Ultrasonic Proximity Sensor) เพื่อวัดเวลาการเดินทางไป-กลับ (Round Trip Time, **t/2**) ของคลื่นเสียงในท่อที่มีความยาวที่เรารู้ค่า (**x**) (วิธีสะท้อนกลับ หรือ Echo Method) ที่บรรจุด้วยแก๊สที่เราต้องการศึกษา (**v = 2x/t**)

และเพราะความเร็วเสียงมันยังขึ้นกับอุณหภูมิสัมบูรณ์ (**K**) ด้วย เราก็เลยต้องวัดอุณหภูมิควบคู่ไปด้วยโดยใช้เซ็นเซอร์วัดอุณหภูมิ

สมการที่ 1: การคำนวณหาความเร็วเสียงสำหรับแก๊สอุดมคติ

ค่าที่วัดได้จากเซ็นเซอร์ทั้งหมด จะถูกเก็บและประมวลผลโดยไมโครคอนโทรลเลอร์ Arduino จากนั้นส่งข้อมูลผ่านบลูทูธไปยังแอปพลิเคชันบนมือถือ ซึ่งออกแบบด้วย MIT App Inventor 2 แอปนี้จะช่วยให้เราสามารถปรับเทียบความยาวของท่อได้ โดยใช้แก๊สอ้างอิงที่เรารู้ความเร็วเสียงของมันอยู่แล้ว

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

**หมายเหตุ:** โปรเจกต์นี้เป็นส่วนหนึ่งของซีรีส์ที่อยากจะแสดงให้เห็นว่าเราสามารถใช้ Arduino เป็นเครื่องมือในการพัฒนาทักษะการคิดแบบวิทยาศาสตร์ได้ที่บ้านเลย

โปรเจกต์นี้เป็นการสร้างเครื่องมือวิเคราะห์ในห้องแล็บที่มีความแม่นยำสูง ด้วยการวัดความเร็วเสียงผ่านเซลล์ที่พิมพ์จากเครื่องพิมพ์ 3D ระบบนี้สามารถหาคุณสมบัติทางกายภาพที่สำคัญของแก๊สได้ ทำให้เราสามารถระบุสารที่ไม่รู้จักได้ ตั้งแต่ไนโตรเจนบริสุทธิ์ไปจนถึงแก๊สทำความเย็นทั่วไป

**ความเร็วเสียงในแก๊ส** เป็นค่าคงที่ทางฟิสิกส์ที่ชัดเจน ถูกกำหนดโดยตัวแปรหลักสองตัวคือ มวลโมเลกุลของสาร และ **ค่าคงที่อะเดียแบติก (Adiabatic Constant)** หรืออัตราส่วนความจุความร้อน โปรเจกต์นี้ใช้ไมโครโปรเซสเซอร์ Arduino และแอปพลิเคชัน Android ที่ออกแบบเอง เพื่อสร้าง "เครื่องสเปกโตรมิเตอร์เสมือน" (Virtual Spectrometer) เปลี่ยนเทคโนโลยีเสียงสะท้อน (Echo) ให้กลายเป็นเครื่องมือระบุสารเคมีระดับมืออาชีพได้เลย จัดไปวัยรุ่น!

วิเคราะห์แบบนักวิทย์ และภาพรวมของ Acoustic Telemetry

หัวใจของ Gas Identification Cell นี้คือ Echo Method นั่นเองจ้า โดยการยิงพัลส์อัลตราซาวด์ผ่านท่อที่วัดความยาวมาอย่างแม่นยำ แล้วจับเวลา "ไป-กลับ" (Time-of-Flight) ระบบจะคำนวณหาความเร็วได้ (v = 2x/t) เพราะความเร็วเสียงมันขึ้นอยู่กับอุณหภูมิของตัวกลางแบบสุดๆ เลยต้องมีเทอร์โมมิเตอร์ดิจิตอลความแม่นยำสูงมาช่วยชดเชยค่าทางคณิตศาสตร์แบบเรียลไทม์ รับรองว่าข้อมูลแม่นยำไม่ว่าสภาพแวดล้อมจะเป็นยังไงก็ตาม

โครงสร้างฮาร์ดแวร์ และชั้นการวิเคราะห์

  • Arduino Nano V3.0: ตัว "สมองประมวลผล" จัดการจับเวลาในระดับไมโครวินาทีที่จำเป็นสำหรับเซ็นเซอร์อัลตราซาวด์ HC-SR04 พร้อมทั้งดึงข้อมูลจากเซ็นเซอร์อุณหภูมิแบบ 1-Wire
  • HC-SR04 Ultrasonic Sensor: ตัว "ส่ง-รับสัญญาณเสียง" ติดตั้งที่ปลายท่อที่พิมพ์จาก 3D พริ้นเตอร์ ส่ง "Ping" ออกไปแล้วรอเสียงสะท้อนจากแผ่นเรียบที่ปลายอีกด้าน
  • DS18B20 Digital Thermometer: ให้ข้อมูลอุณหภูมิสำคัญที่ใช้ปรับค่าความเร็วเสียงให้เป็นค่าอ้างอิง (ปกติก็ 0°C หรือ 20°C)
  • 3D Printed Measurement Cell: ออกแบบเองด้วย Autodesk 123D Design เซลล์นี้สร้างสภาพแวดล้อมที่ปิดสนิทสำหรับแก๊สที่เราศึกษา ความยาวท่อปรับได้ (63.5mm ถึง 98.4mm) ทำให้ปรับช่วงความไวได้หลากหลาย
  • HC-06 Bluetooth Module: ส่งผลลัพธ์ดิบไปยังแอปพลิเคชันบนมือถือเพื่อประมวลผลทางคณิตศาสตร์ที่ซับซ้อนและระบุตัวตนโดยเทียบกับฐานข้อมูลแก๊สในตัว

ตรรกะทางเทคโนโลยี และ Mobile ID Engine

ระบบทำงานผ่านวงจรชีวิตของ Sampling and Comparison ที่เข้มงวด:

  1. ช่วง Probe Sampling: Arduino จะอ่านค่าอะคูสติกความเร็วสูงเฉลี่ย 7 ครั้งเพื่อกรองสัญญาณรบกวนและความปั่นป่วนในท่อออก
  2. Bluetooth Data Burst: ค่าเฉลี่ยนั้น พร้อมกับค่าอุณหภูมิที่แก้ไขแล้ว จะถูกส่งไปยังแอปที่สร้างด้วย MIT App Inventor 2
  3. ขั้นตอนการปรับเทียบ: เพื่อความแม่นยำในระดับต่ำกว่ามิลลิเมตร ผู้ใช้ต้อง "ตั้งศูนย์" เครื่องด้วยแก๊สอ้างอิงที่รู้ความเร็ว (เช่น อากาศแห้งหรือไนโตรเจนบริสุทธิ์)
  4. ฐานข้อมูลการระบุตัวตน: แอปจะเปรียบเทียบความเร็วที่วัดได้กับเส้นโค้งทฤษฎีของแก๊สต่างๆ เช่น ฮีเลียม อาร์กอน หรือสารทำความเย็น R134a ตัวที่มีเปอร์เซ็นต์ความผิดพลาดต่ำที่สุดจะถูกระบุว่าเป็น "สารที่น่าจะเป็น"

ทำไมโปรเจคนี้ถึงสำคัญ

การเชี่ยวชาญการวิเคราะห์แก๊สด้วยเสียงคือก้าวที่ก้าวหน้าเข้าสู่โลกของ Analytical Instrumentation มันสอนพื้นฐานของ Signal Decomposition (แยกผลของอุณหภูมิออกจากความหนาแน่นของแก๊ส) และ Sensor Fusion นอกเหนือจากความอยากรู้อยากเห็นของนักเล่นแล้ว หลักการเหล่านี้ถูกใช้ใน Industrial Gas Leak Detection, Medical Anesthesia Monitors และ HVAC Refrigerant Analyzers โปรเจคนี้พิสูจน์ว่า ด้วยการผสมผสานระหว่างการออกแบบ 3D และคณิตศาสตร์ฝังตัวที่เหมาะสม ไมโครคอนโทรลเลอร์ตัวจิ๋วก็ทำงานแทนอุปกรณ์ในห้องแล็บราคาแพงได้

Measurement Cell

เซลล์วัดที่พิมพ์จาก 3D ประกอบด้วยท่อทรงกระบอกที่ถอดประกอบได้ ขนาดเส้นผ่านศูนย์กลาง 46 มม. ความยาวสามารถปรับเปลี่ยนได้ระหว่าง 63.5 มม. ถึง 98.4 มม. ขึ้นอยู่กับประเภทของตัวอย่างที่ต้องการวิเคราะห์และความแม่นยำที่ต้องการ

ที่ปลายท่อด้านที่ตรึงไว้ จะมีเซ็นเซอร์อัลตราซาวด์และเซ็นเซอร์อุณหภูมิ รวมถึงช่องทางเข้าและออกของตัวอย่างแก๊ส

ปลายอีกด้านของท่อทั้งสองที่ถอดได้จะเป็นพื้นเรียบ เพื่อให้คลื่นพัลส์อัลตราซาวด์สะท้อนกลับมาที่ไมโครโฟนของเซ็นเซอร์อัลตราซาวด์อย่างสมมาตร

มีท่อยางอ่อนติดอยู่ที่ช่องทางเข้าและออกของแก๊ส เพื่อใช้เป็นวาล์วปิด (ใช้คลิปหนีบกระดาษเล็กๆ หนีบท่อไว้) เมื่อเซลล์ถูกเติมแก๊สจนเต็มแล้ว

เซลล์วัดที่ประกอบแล้วในความยาว 63.5 มม.

รายละเอียดภายในของเซลล์วัดที่ปลายซึ่งเป็นที่ตั้งของเซ็นเซอร์

รายละเอียดภายในของท่อที่ถอดได้ขนาด 63.5 มม.

การต่อวงจร Arduino และการปรับเทียบ

การเชื่อมต่อเซลล์วัดเข้ากับคอนโทรลเลอร์ Arduino แสดงไว้ในแผนภาพ Fritzing ที่แนบมา

ควรทราบว่า ในขณะที่โมดูลบลูทูธ HC-06 สามารถทำงานกับแรงดันอินพุตระหว่าง 3.3 ถึง 5 โวลต์ แต่เราเลือกใช้ค่าที่สูงกว่า มิฉะนั้นสัญญาณจะขาดบ่อย

มีโค้ดโปรแกรมสำหรับ Arduino Nano V3.0 CH340 แนบมาด้วย ซึ่งมีสองจุดสำคัญที่ควรทราบ

  1. อย่างแรกคือค่าคงที่แบบ float ชื่อ CorrecTemp เป็นการแก้ไขที่ทำกับค่าอุณหภูมิเริ่มต้นจากเซ็นเซอร์ การแก้ไขนี้ประมาณได้โดยอ่านค่าอุณหภูมิที่เซ็นเซอร์แสดงเมื่อจุ่มลงในอ่างน้ำแข็ง (น้ำแข็งลอยในน้ำ) ค่าความเบี่ยงเบนจาก 0°C ซึ่งเป็นค่าที่อ่างน้ำแข็งควรมี คือค่าที่ใช้เป็นค่าการแก้ไขเซ็นเซอร์อุณหภูมิ
  2. อีกจุดคือค่า delay(150) ซึ่งต้องน้อยกว่าหรือเท่ากับความเร็วสัญญาณนาฬิกาของบลูทูธในแอป App Inventor 2 เพื่อให้การส่งและรับข้อมูลจาก Arduino ไปยังแอปมือถือเป็นไปอย่างลื่นไหล

อัพโหลดโค้ดลง Arduino Nano โดยใช้ IDE 1.8.19 และใช้ Power Bank (6000 mAh 3.7V, Out 5V, Output Max. 2.4A) เป็นแหล่งจ่ายไฟ

แผนภาพวงจรสำหรับโค้ด SoundSpeed_3D_2022.ino

รายละเอียดการเชื่อมต่อภายในตัวเครื่องวัด

การปรับเทียบเซ็นเซอร์อุณหภูมิ

คำอธิบายแอป SoundSpeed_2023 App Inventor

ข้อมูลที่ประมวลผลโดยไมโครโพรเซสเซอร์ Arduino จะถูกส่งผ่านบลูทูธไปยังแอปบนมือถือ (Android 12) ที่ออกแบบโดยใช้สภาพแวดล้อมการเขียนโปรแกรมแบบ visual ที่เรียกว่า MIT App Inventor 2

มีไฟล์แอปแนบมาให้

หมายเหตุ: มีเวอร์ชันใหม่ที่เข้ากันได้กับ Android 12 เพิ่มเข้ามาด้วย

สภาพแวดล้อมการเขียนโปรแกรม MIT App Inventor 2 ที่ใช้ออกแบบแอป SoundSpeed_2023_2.apk

แอปพลิเคชันประกอบด้วย หน้าจอเริ่มต้น ซึ่งหลังจากเชื่อมต่อบลูทูธกับเซลล์วัดแล้ว (ปุ่ม Bluetooth Icon) จะรายงานค่าความเร็วเสียง ( m/s ) ของแก๊สที่อยู่ในโพรบ

ค่าที่รายงานคือค่าเฉลี่ยของ 7 ครั้งวัด และยังรายงานอุณหภูมิขณะวัด ( °C ) รวมถึงค่าเบี่ยงเบนมาตรฐานของข้อมูลทั้งสองนี้ด้วย ข้อมูลนี้สามารถบันทึกลงมือถือได้หลังจากกำหนดชื่อไฟล์ (ปุ่ม SAVE )

หน้าจอเริ่มต้นนี้ยังแสดงปุ่มห้าปุ่มที่อนุญาตให้คุณ:

• ดูวงจรและส่วนประกอบพื้นฐานที่ประกอบเป็นอุปกรณ์วัด (ปุ่ม CIRCUIT )

• วัดความยาวของโพรบวัด ( m ) โดยใช้แก๊สอ้างอิง (ปุ่ม CALIBRATE )

• เมื่อปรับเทียบอุปกรณ์แล้ว ให้ระบุตัวตนโดยประมาณของสารแก๊สที่กำลังวัด (ปุ่ม IDENTIFY )

• ตัดการเชื่อมต่อเซ็นเซอร์บลูทูธ (ปุ่ม DISCONECT )

• ออกจากแอปพลิเคชัน (ปุ่ม EXIT )

หน้าจอเริ่มต้นแสดงการปรับเทียบเซลล์วัดโดยใช้อากาศเป็นแก๊สอ้างอิง

หน้าจอที่แสดงเมื่อกดปุ่ม CALIBRATE จะแสดงปุ่มสี่ปุ่มที่อนุญาตให้คุณ:

• เลือกแก๊สอ้างอิง (ปุ่ม REFERENCE GAS ) ที่จะใช้ปรับเทียบความยาวของโพรบวัด

• บันทึกค่าความยาวเซลล์วัด (โพรบ) ที่วัดได้ เพื่อใช้ในการวัดตัวอย่างแก๊สที่ไม่รู้จัก (ปุ่ม SAVE )

• ลบค่าความยาวเซลล์วัดที่บันทึกไว้ (ปุ่ม DELETE )

• ทำการวัดกับตัวอย่างแก๊สที่ไม่รู้จัก (ปุ่ม MEASURE ) ซึ่งจะพาเรากลับไปยังหน้าจอเริ่มต้น

การเลือกแก๊สอ้างอิงที่ใช้ปรับเทียบความยาวของเซลล์วัด (โพรบ)

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

ในรายการนี้ ผู้สมัครที่มีค่า % error ต่ำกว่าจะถูกนำมาเป็นผู้สมัครที่น่าจะเป็นมากที่สุด

บนหน้าจอนี้มีปุ่มที่จะพาเรากลับไปยังหน้าจอเริ่มต้น (ปุ่ม RETURN )

การวิเคราะห์ตัวอย่างแก๊สที่ไม่รู้จัก (แก๊สทำความสะอาด)

การติดตั้ง

เมื่อคุณมีอุปกรณ์วัดที่ประกอบแล้ว (เซลล์วัดและการเชื่อมต่อกับ Arduino) ต้องดาวน์โหลดและติดตั้งแอป SoundSpeed_2023.apk (Android 11 หรือต่ำกว่า) หรือ SoundSpeed_2024.apk (Android 12 หรือต่ำกว่า) ลงบนมือถือ เนื่องจากแอปพลิเคชันนี้ไม่ได้มาจากแหล่งที่เป็นทางการ คุณควรทำตามขั้นตอนต่อไปนี้:

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

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

• จากนั้นต้องเชื่อมต่อไมโครโพรเซสเซอร์ Arduino เข้ากับ Power Bank เพื่อเปิดใช้งานโมดูลบลูทูธ

• จากนั้นต้องเปิดใช้งานการค้นหาอุปกรณ์บลูทูธบนมือถือและจับคู่กับตัวส่งสัญญาณบลูทูธของไมโครโพรเซสเซอร์ Arduino (ชื่อเฉพาะของตัวส่งบลูทูธจะแตกต่างกันไปในแต่ละอุปกรณ์ แต่สามารถเปลี่ยนได้หากต้องการ)

• เมื่อจับคู่ตัวส่งแล้ว ให้กดปุ่มที่มี ไอคอนบลูทูธ ในแอปพลิเคชัน ซึ่งจะแสดงรายการอุปกรณ์บลูทูธที่พร้อมใช้งาน เลือกอันที่ตรงกับตัวส่งสัญญาณของไมโครคอนโทรลเลอร์ Arduino

การปรับเทียบ

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

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Autodesk 123D Design"
  - "1x Arduino IDE 1.8.19"
  - "1x MIT App Inventor 2"
  - "1x Autodesk Meshmixer"
  - "1x Cura Slicer"
author: "aewolframio"
category: "Sensors & Environment"
components:
  - "1x 2k ohm resistor"
  - "1x DS18B20 1-Wire Digital Temperature Sensor"
  - "1x Dust removal gas"
  - "1x USB cable (Micro B)"
  - "1x 1K ohm resistor"
  - "1x HC-06 Bluetooth module"
  - "1x 4,7 kOhm Resistor"
  - "1x Flexible hose"
  - "1x Arduino Nano V3.0 CH340 with mini usb cable"
  - "1x Portable USB battery pack"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x Breadbord"
  - "2x Binder clip"
  - "1x Breadboard Jumper Wire Pack (200mm&100mm)"
  - "1x Ender 3 Pro"
  - "1x Steren - White PLA filament (1.75 mm) 1 kg"
description: "โครงการนี้คือการสร้างเครื่องมือพกพาเทพๆ พิมพ์จาก 3D Printer ใช้ Arduino เป็นตัวประมวลผล แล้วก็มีแอพมือถือช่วย งานง่ายแต่หล่อคือวัดความเร็วเสียงในก๊าซ แล้วเอามาเทียบข้อมูลจนระบุได้เลยว่ากำลังเจอก๊าซตัวไหนอยู่ จัดไป!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX19T0cMYvBYEXL6uvedMsQGUdNuihBKc2xobu+yV8Hiz51W3Mpd2/s2FOmkP/1SRTx/rFe8rjKmtIUGfOLNWL1IrHOJ6Isff0cFUMKUCRL79jh5u2AnX412AC/An3usbncyC0UCZP4YOnWroGPiilrgARq6ZGMqTATk4FrvBn/a3r1MvSueNBHLMr+clo46a1D/h8p8Nc2PBSx6OP8i3ewzzSaL0ZNn0dlE="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/measuring-the-speed-of-sound-in-gases-as-a-means-of-identifying-them-7035c3_cover.jpg"
lang: "en"
likes: 4
passwordHash: "f42c5f0d50703fa0c72bc2a5bf26d8f172433b1733bee7d8801f4399a895fcd5"
price: 2450
seoDescription: "Build a portable gas identification device using Arduino and 3D printing. Measures the speed of sound and temperature to identify gases."
tags:
  - "Data Collection"
  - "Weather"
  - "Tools"
  - "Audio"
  - "Environmental Sensing"
  - "Monitoring"
title: "Measuring the Speed of Sound in Gases as a Means of Identifying Them"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/1wrD4JLgb1c"
views: 7868