มาเรียนรู้วิธีการทำเครื่องขายของเหลวกันเถอะ
เครื่องจำหน่ายของเหลวอัตโนมัตินี้ใช้ระบบระบุด้วยคลื่นวิทยุ (RFID) สามารถจ่ายของเหลวในปริมาณที่กำหนดได้โดยการปัดแท็ก RFID ผ่านเครื่องอ่าน RFID เครื่องนี้ใช้จอ LCD ที่แสดงตัวอักษรและตัวเลขเพื่อแสดงการทำงานและคำแนะนำให้ผู้ใช้ปฏิบัติตามขณะจ่ายของเหลว เครื่องนี้สามารถนำไปใช้งานในองค์กรต่างๆ เช่น โรงพยาบาลและวิทยาลัย (ทางการแพทย์ วิศวกรรมศาสตร์ เป็นต้น) เพื่อให้บริการแก่ลูกค้าตลอด 24 ชั่วโมงโดยไม่ต้องมีเจ้าหน้าที่เข้ามาเกี่ยวข้อง
แนวคิดของโครงการนี้อาจเป็นประโยชน์สำหรับนักเล่นอดิเรกและนักออกแบบในการออกแบบเครื่องจักรกลที่ทนทานต่อไป บทความ DIY นี้จะอธิบายการเขียนโปรแกรมและเชื่อมต่อวงจรตามต้นแบบการทำงานโดยไม่ต้องใช้ชิ้นส่วนโครงสร้างเชิงกล ส่วนประกอบหลักที่จำเป็นในโครงการนี้แสดงอยู่ในตาราง แผนผังบล็อกของเครื่องจำหน่ายของเหลวที่ใช้ Arduino แสดงในรูปที่ 1
รูปที่ 1: แผนผังบล็อกของเครื่องจำหน่ายของเหลวที่ใช้ Arduino
แผนผังวงจรของเครื่องจำหน่ายของเหลวที่ใช้ Arduino แสดงอยู่ในรูปที่ 2 โปรเจ็กต์นี้ประกอบด้วยเซ็นเซอร์การไหลแบบอะนาล็อก แท็ก RFID เครื่องอ่าน RFID จอ LCD 16×2 โซลินอยด์ Arduino Uno รีเลย์ช่องสัญญาณเดียว และแหล่งจ่ายไฟ 12V DC
รูปที่ 2: แผนผังวงจรของเครื่องจำหน่ายของเหลว
เซ็นเซอร์นี้วัดอัตราการไหลของของเหลว มีช่องเปิด 2 ช่อง ช่องหนึ่งสำหรับของเหลวเข้าและอีกช่องสำหรับของเหลวออก เซ็นเซอร์ทำงานบนหลักการของเอฟเฟกต์ฮอลล์ เอฟเฟกต์ฮอลล์ใช้ในมาตรวัดอัตราการไหลโดยใช้โรเตอร์รูปใบพัด/พัดลมขนาดเล็กที่วางไว้ในเส้นทางการไหลของของเหลว
มีสายไฟ 3 เส้น ได้แก่ สายสีแดงสำหรับจ่ายแรงดันไฟฟ้า สายสีดำสำหรับกราวด์ และสายสีเหลืองสำหรับรวบรวมเอาต์พุตจากเซ็นเซอร์เอฟเฟกต์ฮอลล์ แรงดันไฟฟ้าที่จ่ายอาจอยู่ระหว่าง 5V ถึง 18V DC
โมดูล RFID EM-18 (ดูรูปที่ 3) ใช้สำหรับอ่านแท็ก RFID โดยถอดรหัสและส่งสัญญาณไปยัง Arduino ผ่านโปรโตคอลการสื่อสารแบบอนุกรม
รูปที่ 3: เครื่องอ่าน RFID EM-18
จอแสดงผล LCD (คริสตัลเหลว) ขนาด 16×2 จะแสดงข้อมูลที่ได้รับจากบอร์ด Arduino
โซลินอยด์
โซลินอยด์ 12V ใช้เพื่อควบคุมการไหลของของเหลว เมื่อโซลินอยด์ได้รับพลังงาน โซลินอยด์จะเปิดวาล์วและปล่อยให้ของเหลวไหลผ่านเซ็นเซอร์การไหล มิฉะนั้น โซลินอยด์จะปิดอยู่และไม่อนุญาตให้ของเหลวไหลผ่านได้ โซลินอยด์วาล์วที่ใช้ในโครงการนี้แสดงไว้ในรูปที่ 4
รูปที่ 4: โซลินอยด์วาล์ว
ในโครงการนี้Arduino คือสมองที่ควบคุมกระบวนการทั้งหมด เซ็นเซอร์การไหลแบบอะนาล็อกที่เชื่อมต่อกับบอร์ด Arduino แสดงอยู่ในรูปที่ 5
รูปที่ 5: เซ็นเซอร์การไหลแบบอะนาล็อกที่เชื่อมต่อกับ Arduino
เมื่อของเหลวไหลผ่านเซ็นเซอร์การไหล ของเหลวจะดันครีบของโรเตอร์ ทำให้โรเตอร์หมุน เพลาของโรเตอร์เชื่อมต่อกับเซ็นเซอร์เอฟเฟกต์ฮอลล์ ซึ่งเป็นการจัดเรียงของขดลวดที่ไหลผ่านและแม่เหล็กที่เชื่อมต่อกับเพลาของโรเตอร์ ดังนั้นจึงเกิดแรงดันไฟฟ้า/พัลส์เหนี่ยวนำในขณะที่โรเตอร์หมุน ในเครื่องวัดการไหลนี้ สำหรับของเหลวทุกลิตรที่ผ่านเซ็นเซอร์ต่อนาที เครื่องวัดจะปล่อยพัลส์ประมาณ 4.5 พัลส์
พินเอาต์พุตของเซ็นเซอร์การไหลนี้เชื่อมต่อกับพินดิจิทัล 2 ของ Arduino เมื่อของเหลวไหล พัลส์เอาต์พุตจะถูกนับโดยไมโครคอนโทรลเลอร์ใน Arduino
จำนวนพัลส์ที่รับทั้งหมดจะถูกแปลงเป็นหน่วยเฉพาะ เช่น มิลลิลิตรต่อวินาทีหรือลิตรต่อนาที ซึ่งเกิดจากการเปลี่ยนแปลงของสนามแม่เหล็กที่เกิดจากแม่เหล็กที่ติดอยู่กับเพลาโรเตอร์ โดยอัตราการไหลเป็นลิตรต่อนาที (L/min.) จะคำนวณโดยใช้สูตรแปลงง่ายๆ
พิน Tx ของเครื่องอ่าน EM-18 เชื่อมต่อกับพิน Rx ของ Arduino เมื่อแท็ก RFID เลื่อนผ่านเครื่องอ่าน EM-18 แท็กจะส่งข้อมูลไปยัง Arduino หากแท็กตรงกับข้อมูลที่ตั้งโปรแกรมไว้ แท็กจะส่งสัญญาณไปยังอินพุตของไดรเวอร์รีเลย์ซึ่งประกอบด้วยทรานซิสเตอร์ BC547 (T1) สัญญาณอินพุตนี้ทำให้ทรานซิสเตอร์นำไฟฟ้า รีเลย์ RL1 ได้รับพลังงาน ซึ่งจะเชื่อมต่อแหล่งจ่ายไฟ 12V เข้ากับโซลินอยด์ผ่านพิน NO ของรีเลย์ และโซลินอยด์จะได้รับพลังงาน ในขณะเดียวกัน ข้อความ “วางหม้อ/เหยือก/ถ้วยของคุณ” จะปรากฏบนบรรทัดแรกของ LCD1
การให้พลังงานแก่โซลินอยด์ช่วยให้ของเหลวไหลผ่านเซ็นเซอร์การไหล เมื่อของเหลวเริ่มไหลผ่านเซ็นเซอร์การไหล ปริมาณของเหลวที่จ่ายออกมาจะปรากฏบนบรรทัดที่สองของ LCD1
เมื่อของเหลวผ่านเซ็นเซอร์การไหลในปริมาณที่กำหนดไว้ล่วงหน้า (ตามโปรแกรมในโค้ด) รีเลย์จะถูกตัดกระแสไฟโดยอัตโนมัติและการไหลของของเหลวจะหยุดลง ในขณะเดียวกัน ข้อความ “นำหม้อ/เหยือก/ถ้วยออก” จะปรากฏที่บรรทัดแรกของ LCD1
หากต้องการของเหลวในปริมาณเท่าเดิมอีกครั้ง เพียงแค่ปัดบัตร RFID ผ่านเครื่องอ่าน RFID อีกครั้ง คุณสามารถทำซ้ำขั้นตอนนี้ได้เรื่อยๆ จนกว่าของเหลวในภาชนะจะหมด
โค้ดซอฟต์แวร์ (liquid_vending.ino) เขียนด้วยภาษาโปรแกรม Arduino ใช้ Arduino IDE เพื่อคอมไพล์และอัปโหลดสเก็ตช์ไปยังไมโครคอนโทรลเลอร์ ATmega328 ของบอร์ด Arduino แท็ก RFID แต่ละอันจะมีหมายเลขเฉพาะ หมายเลขนี้ต้องระบุในโค้ด/สเก็ตช์ Arduino
โค้ด Arduino ใช้ไฟล์ส่วนหัว LiquidCrystal.h สำหรับ LCD และการสื่อสารแบบอนุกรมสำหรับการอ่านข้อมูลจากเครื่องอ่าน RFID มีการใช้ฟังก์ชันในตัวสองอย่าง ได้แก่ Serial.available( ) เพื่อส่งคืนหมายเลขแท็ก RFID ที่ส่งมาในบัฟเฟอร์อนุกรม และ Serial.readString( ) เพื่ออ่านสตริงของหมายเลขแท็ก RFID
ในโค้ด/สเก็ตช์นี้ เราใช้ตัวแปรเป็น 'int amount=1000' ซึ่งจะให้ปริมาณของเหลวเริ่มต้นที่ 1,000 มิลลิลิตรหรือ 1 ลิตรต่อการรูดบัตร 1 ครั้ง เพียงเปลี่ยนค่าปริมาณตามความต้องการของคุณ
ดาวน์โหลดโฟลเดอร์ต้นฉบับ: คลิกที่นี่
ตรวจสอบให้แน่ใจว่ามีของเหลวในแหล่งน้ำเพียงพอ (เช่น ก๊อกน้ำหรือภาชนะ) หากแหล่งน้ำมีของเหลวในแหล่งน้ำน้อย แรงดันในการไหลของของเหลวในท่อก็จะน้อยลง ส่งผลให้การวัดอัตราการไหลของของเหลวไม่แม่นยำ