- ส่วนประกอบที่จำเป็นในการสร้าง Arduino Automated Blinds
- การควบคุม Roller Blinds โดยใช้ Arduino
- ออกแบบและสร้าง Window Blind Gear
- การพิมพ์ 3 มิติที่ยึดมอเตอร์และเกียร์ตาบอด
- แผนภาพวงจรสำหรับ Arduino Blinds Control
- แอปพลิเคชั่น Blynk สำหรับ Arduino Blind Control
- การเขียนโปรแกรม NodeMCU เพื่อควบคุมมู่ลี่โดยใช้ Blynk
- การควบคุมมู่ลี่โดยใช้ Google Assistant
- การควบคุมคนตาบอดหน้าต่างอัตโนมัติตาม Arduino - การสาธิต
“ สวัสดีตอนเช้า เวลา 7.00 น. อากาศในมาลิบูอยู่ที่ 72 องศา…” คำเหล่านี้เป็นคำแรกของ JARVIS เมื่อถูกนำเข้ามาใน Marvel Cinematics Universe แฟน ๆ Iron Man ส่วนใหญ่น่าจะจำฉากนี้ได้และจำไว้ว่า JARVIS สามารถเปิดหน้าต่าง (แบบ) ได้ในตอนเช้าและแจ้งข้อมูลอัปเดตตามเวลาและสภาพอากาศ ในภาพยนตร์เรื่องนี้หน้าต่างแว่นตาทำมาจากจอแสดงผลแบบสัมผัสแบบซีทรูและด้วยเหตุนี้ JARVIS จึงสามารถเปลี่ยนจากสีดำเป็นสีโปร่งใสและยังแสดงสถิติสภาพอากาศด้วย แต่ในความเป็นจริงเราอยู่ห่างไกลจากการดูผ่านหน้าจอแบบสัมผัสและใกล้ชิดเราจะได้รับคือการควบคุมผ้าม่านหน้าต่างหรือข้อ จำกัด โดยอัตโนมัติ
ดังนั้นในโครงการนี้เราจะสร้างสิ่งนั้นอย่างแน่นอนเราจะสร้างมู่ลี่ที่ใช้มอเตอร์อัตโนมัติซึ่งจะเปิดและปิดโดยอัตโนมัติตามเวลาที่กำหนดไว้ล่วงหน้า ก่อนหน้านี้เราได้สร้างโครงการระบบอัตโนมัติภายในบ้านหลายโครงการซึ่งเราได้ทำการติดตั้งระบบไฟมอเตอร์ ฯลฯ โดยอัตโนมัติคุณสามารถตรวจสอบได้หากคุณสนใจ ดังนั้นเมื่อกลับมามู่ลี่ที่ควบคุมด้วย Arduinoเหล่านี้ ยังสามารถรับคำสั่งจาก Google Assistant เพื่อให้คุณสามารถเปิดหรือปิดมู่ลี่หน้าต่างจากระยะไกลผ่านคำสั่งเสียง น่าสนใจ? จากนั้นมาสร้างกัน
ส่วนประกอบที่จำเป็นในการสร้าง Arduino Automated Blinds
โครงการนี้ค่อนข้างง่ายและไม่จำเป็นต้องมีส่วนประกอบมากมาย เพียงรวบรวมรายการด้านล่างนี้
- NodeMCU
- สเต็ปเปอร์มอเตอร์ - 28BYJ-48
- โมดูลไดร์เวอร์ Stepper Motor
- LM117-3.3V
- ตัวเก็บประจุ (10uf, 1uf)
- อะแดปเตอร์ 12V DC
- คณะกรรมการ Perf
- ชุดบัดกรี
- เครื่องพิมพ์ 3 มิติ
การควบคุม Roller Blinds โดยใช้ Arduino
ตอนนี้มีมู่ลี่หลายประเภทในท้องตลาด แต่ม่านที่นิยมใช้กันมากที่สุดคือเชือกที่มีลูกปัด (ตามภาพด้านล่าง) ที่สามารถดึงเพื่อเปิดหรือปิดมู่ลี่ได้
เมื่อเราดึงเชือกวงกลมนี้ในทิศทางตามเข็มนาฬิกาม่านหน้าต่างจะเปิดออกและเมื่อเราดึงเชือกนี้ในทิศทางทวนเข็มนาฬิกาม่านหน้าต่างจะปิด ดังนั้นถ้าเราทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติสิ่งที่เราต้องทำก็คือใช้มอเตอร์ดึงเชือกนี้ในทิศทางตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาแล้วเราจะทำตามนั้น นี่คือสิ่งที่เรากำลังจะทำในโครงการนี้ เราจะใช้สเต็ปเปอร์มอเตอร์ 28BYJ-48 พร้อมกับ NodeMCU เพื่อดึงเชือกลูกปัด
ออกแบบและสร้าง Window Blind Gear
ส่วนอิเล็กทรอนิกส์ของโครงการนี้ค่อนข้างเรียบง่ายและตรงไปตรงมาส่วนที่ท้าทายคือการสร้าง Blind Gear ที่สามารถดึงเชือกลูกปัดได้ มาเริ่มบทความนี้ด้วยการออกแบบเกียร์ตาบอดฉันจะไม่ลงรายละเอียดเกี่ยวกับวิธีการออกแบบเกียร์ แต่แนวคิดพื้นฐานนี้จะช่วยคุณได้ ภาพเชือกที่มีลูกปัดอยู่ด้านล่าง
อีกครั้งมีเชือกหลายประเภท แต่เชือกที่ใช้กันมากที่สุดคือระยะกึ่งกลางถึงกึ่งกลางของแต่ละลูกปัดคือ 6 มม. และเส้นผ่านศูนย์กลางของแต่ละลูกปัดคือ 4 มม. เมื่อใช้ข้อมูลนี้เราสามารถเริ่มออกแบบอุปกรณ์ของเราได้ หากเชือกบนมู่ลี่ของคุณมีขนาดเท่ากันตามที่กล่าวไว้คุณสามารถข้ามขั้นตอนนี้และดาวน์โหลดไฟล์ STL ที่ให้ไว้ในบทความนี้และพิมพ์เฟืองได้ หากเชือกของคุณมีการจัดเรียงด้วยลูกปัดที่แตกต่างกันนี่คือวิธีที่คุณควรออกแบบเฟืองมู่ลี่ใหม่
ฉันตัดสินใจที่จะมีลูกปัด 24 เม็ดบนเฟืองเพื่อให้ได้ขนาดล้อเฟืองที่เหมาะสมคุณสามารถเลือกตัวเลขใดก็ได้ที่ใกล้เคียงกับจำนวนนี้เพื่อให้ล้อเฟืองของคุณมีขนาดใหญ่หรือเล็ก ตอนนี้เรารู้แล้วว่าระยะห่างระหว่างลูกปัดแต่ละอันคือ 6 มม. และเราต้องการ 24 เม็ดบนเฟืองของเรา การคูณทั้งสองจะให้เส้นรอบวงของล้อเฟือง ด้วยข้อมูลนี้คุณสามารถคำนวณรัศมีของล้อเฟืองได้ ดังที่คุณเห็นในภาพด้านบนเส้นผ่านศูนย์กลางของล้อเฟืองของฉันคำนวณได้ประมาณ 46 มม. แต่อย่าลืมว่านี่ไม่ใช่เส้นผ่านศูนย์กลางจริงของเฟืองเนื่องจากเราไม่ได้คิดเป็นเส้นผ่านศูนย์กลางของลูกปัดซึ่งเป็น 4 มม. ดังนั้นเส้นผ่านศูนย์กลางที่แท้จริงของเฟืองจะเท่ากับ 42 มม. ฉันจึงพิมพ์และทดสอบล้อเฟืองหลาย ๆ อันก่อนที่จะพบล้อที่ทำงานได้ดีที่สุด หากคุณไม่ชอบการออกแบบเพียงดาวน์โหลดและพิมพ์ไฟล์ STL จากย่อหน้าถัดไปและดำเนินการต่อในโครงการของคุณ
การพิมพ์ 3 มิติที่ยึดมอเตอร์และเกียร์ตาบอด
นอกจากเกียร์แล้วเรายังต้องมีปลอกขนาดเล็กที่สามารถเจาะเข้ากับผนังและยึดมอเตอร์สเต็ปเปอร์ให้อยู่ในตำแหน่งได้ทั้งปลอกและเกียร์ที่ใช้ในโครงการนี้แสดงไว้ด้านล่าง
คุณสามารถค้นหาไฟล์ออกแบบและไฟล์ STL ที่สมบูรณ์ได้ในหน้า Arduino Blind Control Thingiverse ที่ระบุด้านล่าง คุณสามารถดาวน์โหลดและพิมพ์กล่องเกียร์และมอเตอร์ตาบอดได้
ดาวน์โหลดไฟล์ STL สำหรับ Blind Gear และ Motor Case
แผนภาพวงจรสำหรับ Arduino Blinds Control
เมื่อคุณพร้อมกับเกียร์และชุดประกอบแล้วคุณสามารถดำเนินการกับส่วนอิเล็กทรอนิกส์และซอฟต์แวร์ได้อย่างง่ายดาย แผนภาพวงจรที่สมบูรณ์สำหรับโครงการควบคุม IoT Blind แสดงอยู่ด้านล่าง
เราใช้อะแดปเตอร์ 12V เพื่อจ่ายไฟให้กับการตั้งค่าทั้งหมด LM1117-3.3V regulator แปลง 12V เป็น 3.3V ซึ่งสามารถใช้เพื่อจ่ายไฟให้กับบอร์ด NodeMCU โมดูลไดรเวอร์สเต็ปมอเตอร์ขับเคลื่อนโดยตรงจากอะแดปเตอร์ 12V ฉันได้ลองใช้สเต็ปเปอร์มอเตอร์ที่ 5V แต่มันไม่ได้ให้แรงบิดเพียงพอที่จะดึงมู่ลี่ดังนั้นตรวจสอบให้แน่ใจว่าคุณใช้ 12V ด้วย
นอกเหนือจากนั้นวงจรยังค่อนข้างเรียบง่ายหากคุณยังใหม่กับสเต็ปเปอร์มอเตอร์ให้ดูที่บทความพื้นฐานของสเต็ปเปอร์มอเตอร์เพื่อทำความเข้าใจว่ามันทำงานอย่างไรและสามารถใช้กับไมโครคอนโทรลเลอร์ได้อย่างไร
แอปพลิเคชั่น Blynk สำหรับ Arduino Blind Control
ก่อนที่เราจะเข้าสู่โปรแกรม Arduino สำหรับการควบคุมมู่ลี่ให้เปิดแอปพลิเคชั่น blynk และสร้างปุ่มบางปุ่มที่เราสามารถเปิดหรือปิดมู่ลี่ของเราได้ เราจะต้องใช้สิ่งนี้ในภายหลังเพื่อควบคุมจากหน้าแรกของ Google
ฉันเพิ่งเพิ่มปุ่มสองปุ่มเพื่อเปิดและปิดมู่ลี่และตัวจับเวลาหนึ่งตัวเพื่อเปิดม่านเวลา 10.00 น. ทุกวัน คุณสามารถเพิ่มตัวจับเวลาหลายตัวเพื่อเปิดหรือปิดมู่ลี่ในช่วงเวลาต่างๆของวัน โดยพื้นฐานแล้วเมื่อเราต้องปิดมู่ลี่เราจะต้องทริกเกอร์พินเสมือน V1 และเมื่อเราต้องเปิดมู่ลี่เราจะต้องทริกเกอร์พินเสมือน V2 โปรแกรมควบคุมมอเตอร์สเต็ปเปอร์ตามปุ่มที่กดที่นี่จะเขียนบน Arduino IDE ตามที่กล่าวไว้ด้านล่าง
การเขียนโปรแกรม NodeMCU เพื่อควบคุมมู่ลี่โดยใช้ Blynk
รหัส ESP8266 ที่สมบูรณ์สำหรับโครงการ Blind Control นี้มีอยู่ที่ด้านล่างของหน้านี้ โปรแกรมของเราต้องรอคำสั่งจากแอปพลิเคชัน blynk และตามคำสั่งนั้นเราต้องหมุนมอเตอร์สเต็ปเปอร์ตามเข็มนาฬิกาหรือในทิศทางทวนเข็มนาฬิกา ส่วนที่สำคัญของโค้ดจะกล่าวถึงด้านล่าง
ตามแผนภาพวงจรของเราเราได้ใช้พินดิจิทัล 1, 2, 3 และ 4 บน nodemcu เพื่อควบคุมมอเตอร์สเต็ปของเรา ดังนั้นเราต้องสร้างอินสแตนซ์ที่เรียกว่า stepper โดยใช้หมุดเหล่านี้ดังที่แสดงด้านล่าง สังเกตว่าเราได้กำหนดพินตามลำดับที่ 1, 3, 2 และ 4 เป็นการกระทำโดยเจตนาและไม่ใช่ความผิดพลาด เราต้องสลับพิน 2 และ 3 เพื่อให้มอเตอร์ทำงานได้อย่างถูกต้อง
// สร้างอินสแตนซ์ของคลาส stepper โดยใช้ขั้นตอนและหมุด Stepper stepper (STEPS, D1, D3, D2, D4);
ในขั้นตอนต่อไปเราต้องแชร์โทเค็นการตรวจสอบสิทธิ์แอปพลิเคชัน blynk และข้อมูลรับรอง Wi-Fi ที่ต้องเชื่อมต่อกับคอนโทรลเลอร์ IoT Blind ของเรา หากคุณไม่แน่ใจว่าจะรับโทเค็นการตรวจสอบสิทธิ์ Blynk นี้ได้อย่างไรโปรดดูโครงการ Blynk LED Control เพื่อทำความเข้าใจพื้นฐานของแอปพลิเคชัน blynk และวิธีการใช้งาน
// คุณควรได้รับ Auth Token ในแอป Blynk // ไปที่การตั้งค่าโครงการ (ไอคอนถั่ว) ถ่าน auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // ข้อมูลรับรอง WiFi ของคุณ // ตั้งรหัสผ่านเป็น "" สำหรับเครือข่ายแบบเปิด ถ่าน ssid = "CircuitDigest"; ถ่านผ่าน = "dummy123";
ดำเนินการต่อด้วยรหัสของเราหลังจากฟังก์ชั่นการตั้งค่าเราได้กำหนดสองวิธีสำหรับ blynk ดังที่ได้กล่าวไว้ก่อนหน้านี้เราต้องกำหนดสิ่งที่พินเสมือน V1 และ V2 ควรทำ รหัสสำหรับเดียวกันได้รับด้านล่าง
BLYNK_WRITE (V1) // ปิด BLINDS {Serial.println ("ปิดม่านบังตา"); ถ้า (เปิด == จริง) {สำหรับ (int c_val = 0; c_val <= 130; c_val ++) // หมุนทวนเข็มนาฬิกาเพื่อปิด {stepper.step (c_val); ผลผลิต (); } ปิด = จริง; เปิด = เท็จ; disable_motor (); // สเต็ปเปอร์มอเตอร์ที่ถอดออกได้ทุกครั้งหลังการใช้งานเพื่อลดการใช้พลังงานและความร้อน}} BLYNK_WRITE (V2) // เปิด BLINDS {Serial.println ("Opening Blinds"); ถ้า (ปิด == จริง) {สำหรับ (int cc_val = 0; cc_val> = -130; cc_val--) // หมุนตามเข็มนาฬิกาเพื่อเปิด {stepper.step (cc_val); ผลผลิต (); } เปิด = จริง; ปิด = เท็จ; } disable_motor (); // สเต็ปเปอร์มอเตอร์หลังการใช้งานเสมอเพื่อลดการใช้พลังงานและความร้อน}
ดังที่คุณเห็น V1 ใช้เพื่อปิดมู่ลี่และ V2 ใช้เพื่อเปิดมู่ลี่ A for loop ใช้เพื่อหมุนมอเตอร์ในทิศทางตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาสำหรับ 130 ขั้นตอน ฉันทดลองใช้มู่ลี่พบว่าด้วยบันได 130 ขั้นฉันสามารถเปิดและปิดมู่ลี่ได้เต็มที่ หมายเลขของคุณอาจแตกต่างกันไป สำหรับวง ที่จะมอเตอร์หมุนตามเข็มนาฬิกาในและทวนเข็มนาฬิกาทิศทางที่แสดงอยู่ด้านล่าง
สำหรับ (int c_val = 0; c_val <= 130; c_val ++) // หมุนทวนเข็มนาฬิกาเพื่อปิด {stepper.step (c_val); ผลผลิต (); } สำหรับ (int cc_val = 0; cc_val> = -130; cc_val--) // หมุนตามเข็มนาฬิกาเพื่อเปิด {stepper.step (cc_val); ผลผลิต (); }
คุณยังสามารถสังเกตเห็นตัวแปรบูลีนสองตัว“ เปิด” และ“ ปิด” ในโปรแกรมของเรา ตัวแปรทั้งสองนี้ใช้เพื่อป้องกันไม่ให้มอเตอร์เปิดหรือปิดมู่ลี่สองครั้ง ความหมายมู่ลี่จะเปิดเฉพาะเมื่อปิดไว้ก่อนหน้านี้และจะปิดเฉพาะเมื่อเปิดก่อนหน้านี้เท่านั้น
วิธีเพิ่มความเร็วของมอเตอร์ 28BJY-48 Stepper?
ข้อเสียอย่างหนึ่งของการใช้สเต็ปเปอร์มอเตอร์ 28BJY-48 คือมันช้ามาก เดิมทีมอเตอร์เหล่านี้ผลิตขึ้นเพื่อใช้ในงานความเร็วต่ำที่มีความแม่นยำสูงดังนั้นอย่าคาดหวังว่ามอเตอร์เหล่านี้จะหมุนด้วยความเร็วสูง หากคุณต้องการเพิ่มความเร็วของสเต็ปเปอร์มอเตอร์โดยใช้ Arduino มีพารามิเตอร์สองตัวที่คุณสามารถเปลี่ยนได้ หนึ่งคือ#define STEPS 64ฉันพบว่าเมื่อกำหนดขั้นตอนเป็น 64 มอเตอร์จะเร็วกว่า พารามิเตอร์อื่นคือ stepper.setSpeed (500); อีกครั้งฉันพบว่า 500 เป็นค่าที่เหมาะสมที่สุดมีอะไรมากกว่านั้นที่ทำให้สเต็ปเปอร์มอเตอร์ช้าลง
คุณรู้วิธีอื่นในการเพิ่มความเร็วของมอเตอร์เหล่านี้หรือไม่? ถ้าใช่ทิ้งไว้ในส่วนความคิดเห็นด้านล่าง
จะป้องกันไม่ให้สเต็ปเปอร์มอเตอร์ร้อนเกินไปได้อย่างไร?
ควรปิดการใช้งานมอเตอร์สเต็ปเปอร์เสมอเมื่อไม่ใช้งานเพื่อป้องกันความร้อนสูงเกินไป การปิดใช้งานสเต็ปเปอร์มอเตอร์นั้นง่ายมาก เพียงแค่เปลี่ยนสถานะพินของพิน GPIO ทั้งสี่ตัวที่ควบคุมสเต็ปมอเตอร์ให้ต่ำ สิ่งนี้สำคัญมากมิฉะนั้นมอเตอร์ของคุณอาจร้อนจัดที่ + 12V และทำให้ตัวเองเสียหายอย่างถาวร โปรแกรมปิดการใช้งานมอเตอร์สเต็ปได้รับด้านล่าง
เป็นโมฆะ disable_motor () // ปิดมอเตอร์เมื่อเสร็จสิ้นเพื่อหลีกเลี่ยงความร้อน {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
การควบคุมมู่ลี่โดยใช้ Google Assistant
เราจะใช้ blynk API เพื่อควบคุมมู่ลี่ผ่าน Google Assistant ซึ่งจะคล้ายกับโครงการระบบอัตโนมัติในบ้านที่ควบคุมด้วยเสียงของเราดังนั้นโปรดตรวจสอบว่าหากสนใจ โดยทั่วไปเราต้องเรียกใช้ลิงก์ด้านล่างเมื่อเราพูดวลีที่กำหนดไว้ล่วงหน้ากับ Google Assistant
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนโทเค็นการตรวจสอบความถูกต้องเป็นโทเค็นที่แอปพลิเคชัน blynk ของคุณให้มา คุณยังสามารถทดสอบลิงก์นี้บนเบราว์เซอร์ Chrome เพื่อดูว่าทำงานได้ตามที่คาดไว้หรือไม่ เมื่อลิงก์พร้อมแล้วเราก็ต้องไปที่ IFTTT และสร้างแอพเพล็ตสองตัวที่สามารถทริกเกอร์พินเสมือน V1 และ V2 เมื่อเราขอให้ปิดและเปิดมู่ลี่ อีกครั้งฉันไม่ได้ลงรายละเอียดในเรื่องนี้เพราะเราทำแบบนี้มาหลายครั้งแล้ว หากคุณต้องการความช่วยเหลือเพิ่มเติมโปรดดูโครงการวิทยุ FM ที่ควบคุมด้วยเสียงนี้เพียงแค่เปลี่ยนบริการ adafruit ด้วยเว็บฮุก ฉันยังแชร์ภาพหน้าจอของตัวอย่างข้อมูลเพื่อใช้อ้างอิง
การควบคุมคนตาบอดหน้าต่างอัตโนมัติตาม Arduino - การสาธิต
หลังจากที่วงจรและโครงพิมพ์ 3 มิติพร้อมแล้วให้ประกอบอุปกรณ์เข้ากับผนังโดยเจาะรูสองรูบนผนัง การตั้งค่าการติดตั้งของฉันแสดงในภาพด้านล่าง
หลังจากนั้นตรวจสอบให้แน่ใจว่ามู่ลี่ของคุณอยู่ในสภาพเปิดจากนั้นจึงเปิดวงจร ตอนนี้คุณสามารถลองปิดมู่ลี่จากแอพพลิเคชั่น blynk หรือผ่าน Google Assistant ก็น่าจะใช้ได้ คุณยังสามารถตั้งค่าตัวจับเวลาบนแอปพลิเคชัน blynk เพื่อเปิดและปิดมู่ลี่โดยอัตโนมัติในช่วงเวลาใดเวลาหนึ่งของวัน
การทำงานทั้งหมดของโครงการสามารถพบได้ในวิดีโอด้านล่าง หากคุณมีคำถามใด ๆ อย่าลังเลที่จะเขียนไว้ในส่วนความคิดเห็นด้านล่าง นอกจากนี้คุณสามารถใช้ฟอรัมของเราสำหรับการสนทนาทางเทคนิคอื่น ๆ