เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

มาเรียนรู้วิธีการทำเครื่องขายของเหลวกันเถอะ

เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

เครื่องจำหน่ายของเหลวอัตโนมัตินี้ใช้ระบบระบุด้วยคลื่นวิทยุ (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

โมดูล 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 ครั้ง เพียงเปลี่ยนค่าปริมาณตามความต้องการของคุณ

ดาวน์โหลดโฟลเดอร์ต้นฉบับ: คลิกที่นี่

การก่อสร้างและการทดสอบ

  1. เชื่อมต่อส่วนประกอบและโมดูลทั้งหมดตามแผนผัง
  2. เชื่อมต่อแหล่งจ่ายไฟ 12V จากอะแดปเตอร์ 12V หรือแบตเตอรี่ 12V เข้ากับพิน Vin ของ Arduino, ไดรเวอร์รีเลย์ และเข้ากับพินรีเลย์ NO
  3. เชื่อมต่อขาทั่วไปของรีเลย์เข้ากับโซลินอยด์ตามที่แสดงในแผนผังวงจร
  4. ตรวจสอบจำนวนของเหลวเริ่มต้นในโค้ดสำหรับการจ่ายต่อนาที
  5. ปัดแท็ก RFID เหนือเครื่องอ่าน EM-18 หากแท็ก RFID ตรงกับรหัสแท็ก RFID ที่ตั้งโปรแกรมไว้ รีเลย์และโซลินอยด์จะทำงาน น้ำจากแหล่ง (ก๊อกน้ำ) จะไหลผ่านเซ็นเซอร์การไหล
  6. คุณจะได้รับข้อมูลที่เกี่ยวข้องทั้งหมดบน LCD1 ตามที่อธิบายไว้แล้ว

ตรวจสอบให้แน่ใจว่ามีของเหลวในแหล่งน้ำเพียงพอ (เช่น ก๊อกน้ำหรือภาชนะ) หากแหล่งน้ำมีของเหลวในแหล่งน้ำน้อย แรงดันในการไหลของของเหลวในท่อก็จะน้อยลง ส่งผลให้การวัดอัตราการไหลของของเหลวไม่แม่นยำ

เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

มาเรียนรู้วิธีการทำเครื่องขายของเหลวกันเถอะ

นักเขียนบทความ
by 
นักเขียนบทความ
เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

มาเรียนรู้วิธีการทำเครื่องขายของเหลวกันเถอะ

เครื่องจำหน่ายของเหลวอัตโนมัตินี้ใช้ระบบระบุด้วยคลื่นวิทยุ (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

โมดูล 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 ครั้ง เพียงเปลี่ยนค่าปริมาณตามความต้องการของคุณ

ดาวน์โหลดโฟลเดอร์ต้นฉบับ: คลิกที่นี่

การก่อสร้างและการทดสอบ

  1. เชื่อมต่อส่วนประกอบและโมดูลทั้งหมดตามแผนผัง
  2. เชื่อมต่อแหล่งจ่ายไฟ 12V จากอะแดปเตอร์ 12V หรือแบตเตอรี่ 12V เข้ากับพิน Vin ของ Arduino, ไดรเวอร์รีเลย์ และเข้ากับพินรีเลย์ NO
  3. เชื่อมต่อขาทั่วไปของรีเลย์เข้ากับโซลินอยด์ตามที่แสดงในแผนผังวงจร
  4. ตรวจสอบจำนวนของเหลวเริ่มต้นในโค้ดสำหรับการจ่ายต่อนาที
  5. ปัดแท็ก RFID เหนือเครื่องอ่าน EM-18 หากแท็ก RFID ตรงกับรหัสแท็ก RFID ที่ตั้งโปรแกรมไว้ รีเลย์และโซลินอยด์จะทำงาน น้ำจากแหล่ง (ก๊อกน้ำ) จะไหลผ่านเซ็นเซอร์การไหล
  6. คุณจะได้รับข้อมูลที่เกี่ยวข้องทั้งหมดบน LCD1 ตามที่อธิบายไว้แล้ว

ตรวจสอบให้แน่ใจว่ามีของเหลวในแหล่งน้ำเพียงพอ (เช่น ก๊อกน้ำหรือภาชนะ) หากแหล่งน้ำมีของเหลวในแหล่งน้ำน้อย แรงดันในการไหลของของเหลวในท่อก็จะน้อยลง ส่งผลให้การวัดอัตราการไหลของของเหลวไม่แม่นยำ

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

เครื่องจำหน่ายของเหลวอัตโนมัติโดยใช้ Arduino

มาเรียนรู้วิธีการทำเครื่องขายของเหลวกันเถอะ

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

เครื่องจำหน่ายของเหลวอัตโนมัตินี้ใช้ระบบระบุด้วยคลื่นวิทยุ (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

โมดูล 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 ครั้ง เพียงเปลี่ยนค่าปริมาณตามความต้องการของคุณ

ดาวน์โหลดโฟลเดอร์ต้นฉบับ: คลิกที่นี่

การก่อสร้างและการทดสอบ

  1. เชื่อมต่อส่วนประกอบและโมดูลทั้งหมดตามแผนผัง
  2. เชื่อมต่อแหล่งจ่ายไฟ 12V จากอะแดปเตอร์ 12V หรือแบตเตอรี่ 12V เข้ากับพิน Vin ของ Arduino, ไดรเวอร์รีเลย์ และเข้ากับพินรีเลย์ NO
  3. เชื่อมต่อขาทั่วไปของรีเลย์เข้ากับโซลินอยด์ตามที่แสดงในแผนผังวงจร
  4. ตรวจสอบจำนวนของเหลวเริ่มต้นในโค้ดสำหรับการจ่ายต่อนาที
  5. ปัดแท็ก RFID เหนือเครื่องอ่าน EM-18 หากแท็ก RFID ตรงกับรหัสแท็ก RFID ที่ตั้งโปรแกรมไว้ รีเลย์และโซลินอยด์จะทำงาน น้ำจากแหล่ง (ก๊อกน้ำ) จะไหลผ่านเซ็นเซอร์การไหล
  6. คุณจะได้รับข้อมูลที่เกี่ยวข้องทั้งหมดบน LCD1 ตามที่อธิบายไว้แล้ว

ตรวจสอบให้แน่ใจว่ามีของเหลวในแหล่งน้ำเพียงพอ (เช่น ก๊อกน้ำหรือภาชนะ) หากแหล่งน้ำมีของเหลวในแหล่งน้ำน้อย แรงดันในการไหลของของเหลวในท่อก็จะน้อยลง ส่งผลให้การวัดอัตราการไหลของของเหลวไม่แม่นยำ