ในบทความนี้ฉันจะแสดงวิธีสร้างรหัสล็อคจาก Arduino ในการทำเช่นนี้ เราต้องการไฟ LED สีแดงและสีเขียว ออด Arduino nano จอ LCD พร้อมตัวแปลง I2C เซอร์โวไดรฟ์ และแป้นพิมพ์เมทริกซ์ขนาด 4x4 เมื่อเปิดเครื่อง หน้าจอจะเขียนว่า "Enter code",
ไฟ LED สีแดงจะเปิดขึ้น
และสีเขียวจะดับลง เซอร์โวจะถูกตั้งค่าเป็น 0 ° เมื่อป้อนตัวเลขแล้ว * จะสว่างขึ้นบนหน้าจอ
หากป้อนรหัสไม่ถูกต้อง หน้าจอจะแสดง "Enter cod" หากรหัสถูกต้อง จะมีเสียงบี๊บ เซอร์โวจะหมุน 180° หน้าจอจะขึ้นว่า "เปิด"
ไฟ LED สีเขียวจะเปิดขึ้น
และสีแดงจะปิด หลังจาก 3 วินาที เซอร์โวจะกลับสู่ตำแหน่งเริ่มต้น ไฟ LED สีแดงจะเปิดขึ้น และไฟ LED สีเขียวจะดับลง จอแสดงผลจะเขียนว่า "ปิด",
จากนั้นหน้าจอจะเขียนว่า "Enter code." ตอนนี้เกี่ยวกับโครงการ ก่อนอื่นเราเชื่อมต่อ Arduino กับสายไฟด้วย เขียงหั่นขนม(หน้าสัมผัสไฟฟ้า)
จากนั้นเราเชื่อมต่อแป้นพิมพ์เมทริกซ์กับผู้ติดต่อ D9 - D2
จากนั้นเซอร์โว เราเชื่อมต่อกับพิน 10
LED สีแดงที่ขา 11
สีเขียว - เพื่อตรึง 12
Buzzer - เพื่อพิน 13
ตอนนี้อัปโหลดร่าง
#รวม
นั่นคือทั้งหมดที่ สนุกกับการล็อครหัส!
การกำหนด | พิมพ์ | นิกาย | ปริมาณ | บันทึก | ร้านค้า | แผ่นจดบันทึกของฉัน |
---|---|---|---|---|---|---|
E1 | บอร์ด Arduino | Arduino นาโน 3.0 | 1 | 5V | ไปยังแผ่นจดบันทึก | |
E8, E9 | ตัวต้านทาน | 220 โอห์ม | 2 | smd | ไปยังแผ่นจดบันทึก | |
E6 | ไดโอดเปล่งแสง | AL102G | 1 | สีแดง | ไปยังแผ่นจดบันทึก | |
E7 | ไดโอดเปล่งแสง | AL307G | 1 | สีเขียว | ไปยังแผ่นจดบันทึก | |
E3 | จอ LCD | ด้วยอินเทอร์เฟซ I2C | 1 | แสงไฟสีเขียว | ไปยังแผ่นจดบันทึก | |
E5 | เซอร์โว | SG90 | 1 | 180 องศา | ไปยังแผ่นจดบันทึก | |
E2 | Buzzer | 5V | 1 | บู | ไปยังแผ่นจดบันทึก | |
E4 | แป้นพิมพ์ | 4x4 | 1 | เมทริกซ์ | ไปยังแผ่นจดบันทึก | |
ไม่ | เขียงหั่นขนม | 640 คะแนน | 1 | โดยไม่ต้องบัดกรี |
กุญแจรหัส DIY บน Arduino
พื้นหลัง
มันเกิดขึ้นมากจนเราตัดสินใจติดตั้งรหัสล็อคที่ประตูของเราในที่ทำงาน เพราะเมื่อเราวิ่งเข้าไปเรื่อย ๆ เราออกจากสำนักงาน ประตูที่จะต้องปิดตลอดเวลาเมื่อไม่มีคนอาศัยอยู่ กุญแจมักจะถูกลืมอยู่ข้างใน โดยทั่วไปแล้ว เราตัดสินใจว่ารหัสล็อคเป็นวิธีที่ดี
หลังจากค้นหาของตามตลาดนัดและอีเบย์ของจีนแล้ว ฉันไม่พบอะไรที่ถูกและจริงจังมากหรือน้อยและตัดสินใจทำเอง ฉันจะจองทันทีว่าเลือกแพลตฟอร์ม Arduino เพราะความเรียบง่าย เนื่องจากไม่มีประสบการณ์เกี่ยวกับไมโครคอนโทรลเลอร์เลย
ที่ประตู ด้านนอกของประตู ควรมีแป้นพิมพ์สำหรับใส่รหัสผ่าน และโครงสร้างที่เหลือจะยึดไว้ด้านใน ใช้สวิตช์กกเพื่อควบคุมการปิดประตูโดยสมบูรณ์ ออกจากสำนักงานมีคนกด "*" บนแป้นพิมพ์และโดยไม่ต้องรอให้ประตูปิดประตูที่ใกล้ชิดกว่าจะไปเกี่ยวกับธุรกิจของเขาเมื่อประตูปิดสนิทสวิตช์กกจะปิดและล็อคจะปิด ประตูเปิดโดยป้อนรหัสผ่าน 4 หลักแล้วกด "#"
เครื่องประดับ
Arduino UNO = 18 เหรียญ
Arduino protoshield + เขียงหั่นขนม = $6
L293D = $1
มัดสายไฟ 30 ชิ้นสำหรับกระดานเพาะพันธุ์ = $4
ช่องเสียบ RJ45 2 ช่อง = $4
ปลั๊ก RJ45 2 อัน = 0.5 เหรียญสหรัฐ
ตัวกระตุ้นเซ็นทรัลล็อค = 250 รูเบิล
สวิตช์กก = ขาดฟรีจากหน้าต่างเก่า
โลหะ Espagnolette ขนาดมหึมา = ฟรี
เคสจากดุม D-LINK เก่า เหล็ก 1.5 mm = ฟรี
แหล่งจ่ายไฟจากฮับ D-LINK เดียวกันสำหรับ 12 และ 5v = ฟรีเช่นกัน
สกรูและน็อตจำนวนมากสำหรับยึดสิ่งของทั้งหมดนี้เข้ากับเคส = 100 รูเบิล
แผงควบคุมจาก สัญญาณกันขโมย= ฟรี
รวม: $33.5 และ 350 rubles
คุณพูดไม่น้อยและคุณจะพูดถูก แต่คุณต้องจ่ายเพื่อความสุข! และเป็นการดีเสมอที่จะรวบรวมบางสิ่งด้วยมือของคุณเอง นอกจากนี้ การออกแบบสามารถลดราคาได้อย่างมากหากคุณใช้ MK เปล่าโดยไม่มี Arduino
การเตรียมการประกอบ
ฉันอยากจะพูดสองสามคำเกี่ยวกับการซื้อองค์ประกอบหลักของการออกแบบแอคทูเอเตอร์ ที่ร้านขายรถยนต์ในท้องถิ่น พวกเขาเสนอแอคทูเอเตอร์ให้ฉันสองประเภท: "มีสายสองสายและมีห้าสาย" ตามที่พนักงานขายบอก พวกเขาเหมือนกันทุกประการ และความแตกต่างในจำนวนสายไฟไม่ได้มีความหมายอะไรเลย อย่างไรก็ตาม มันกลับกลายเป็นว่าไม่เป็นเช่นนั้น! ฉันเลือกอุปกรณ์ที่มีสายไฟสองเส้น ใช้ไฟ 12v ดีไซน์แบบห้าสายมีสวิตช์จำกัดเพื่อควบคุมการเคลื่อนไหวของคันโยก ฉันรู้ว่าฉันซื้อมาผิดก็ต่อเมื่อฉันถอดมันออกจากกันและมันก็สายเกินไปที่จะเปลี่ยน ระยะชักของคันโยกนั้นสั้นเกินไปที่จะดันสลักได้อย่างเหมาะสม ดังนั้นจึงจำเป็นต้องปรับเปลี่ยนเล็กน้อย กล่าวคือ ถอดแหวนรองยางสองอันออกซึ่งจะทำให้จังหวะของคันโยกแอคชูเอเตอร์สั้นลง การทำเช่นนี้ต้องเลื่อยร่างกายตาม ด้วยเลื่อยวงเดือนธรรมดาเพราะเครื่องซักผ้าที่สองอยู่ข้างใน เทปพันท่อสีน้ำเงินสำหรับเราเช่นเคย ช่วยเราประกอบกลับในภายหลังได้เสมอ
ในการควบคุมมอเตอร์แอคชูเอเตอร์ ไดรเวอร์มอเตอร์ L293D ถูกใช้ ซึ่งสามารถทนต่อโหลดสูงสุดได้ถึง 1200 mA ในกรณีของเรา เมื่อมอเตอร์แอคทูเอเตอร์หยุด โหลดสูงสุดเพิ่มขึ้นเป็น 600 mA เท่านั้น
ผู้ติดต่อจากแป้นพิมพ์ ลำโพง และไฟ LED สองดวงถูกลบออกจากแผงควบคุมจากสัญญาณเตือนความปลอดภัย รีโมตคอนโทรลและอุปกรณ์หลักควรจะเชื่อมต่อโดยใช้ขั้วต่อแบบบิดเกลียวและ RJ45
การเขียนโปรแกรม
เนื่องจากฉันไม่เคยมีประสบการณ์กับการเขียนโปรแกรม Arduino มาก่อนเลยจนถึงตอนนี้ ฉันใช้ประโยชน์จากการพัฒนาและบทความของผู้อื่นจากเว็บไซต์ arduino.cc ใครสนใจสามารถดูรหัสน่าเกลียดนี้ได้ :)
ภาพถ่ายและวิดีโอ
โฮสต์ของช่อง youtube "AlexGyver" ถูกขอให้ทำล็อคอิเล็กทรอนิกส์ด้วยมือของเขาเอง ยินดีต้อนรับสู่วงจรวิดีโอเกี่ยวกับการล็อคอิเล็กทรอนิกส์บน Arduino ใน ในแง่ทั่วไปอาจารย์จะอธิบายความคิด
มีหลายตัวเลือกสำหรับการสร้างระบบ ล็อคอิเล็กทรอนิกส์. ส่วนใหญ่มักใช้ล็อกประตู ลิ้นชัก ตู้ และยังสร้างที่ซ่อนและตู้เซฟลับ ดังนั้นคุณต้องสร้างเลย์เอาต์ที่สะดวกในการทำงานและคุณสามารถแสดงโครงสร้างระบบได้ชัดเจนและละเอียดจากภายในและภายนอก ดังนั้นฉันจึงตัดสินใจทำกรอบที่มีประตู สิ่งนี้จะต้อง แท่งสี่เหลี่ยม 30 x 30. ไม้อัด 10 มม. บานพับประตู. ตอนแรกฉันต้องการทำกล่องไม้อัด แต่ฉันจำได้ว่าทุกอย่างในห้องเกลื่อนไปด้วยอะไหล่ ไม่มีที่ไหนที่จะใส่กล่องดังกล่าว ดังนั้นจะทำการจัดวาง หากมีคนต้องการใส่กุญแจอิเล็กทรอนิกส์ให้ตัวเองจากนั้นดูที่เลย์เอาต์คุณสามารถทำซ้ำทุกอย่างได้อย่างง่ายดาย
ทุกสิ่งที่คุณต้องการสำหรับปราสาทมีอยู่ในร้านค้าจีนแห่งนี้
เป้าหมายคือการพัฒนาวงจรและเฟิร์มแวร์ที่มีประสิทธิภาพสูงสุดสำหรับ ล็อคอิเล็กทรอนิกส์. คุณจะสามารถใช้ผลลัพธ์เหล่านี้ในการติดตั้งระบบเหล่านี้บนประตู ลิ้นชัก ตู้ และสถานที่หลบซ่อนของคุณได้
ประตูพร้อมแล้ว ตอนนี้คุณต้องหาวิธีเปิดและปิดด้วยระบบอิเล็กทรอนิกส์ เพื่อจุดประสงค์เหล่านี้ สลักโซลินอยด์อันทรงพลังจาก aliexpress นั้นเหมาะสม (ลิงก์ไปยังร้านค้าด้านบน) หากคุณใช้แรงดันไฟฟ้ากับขั้ว เครื่องจะเปิดขึ้น ความต้านทานของคอยล์อยู่ที่เกือบ 12 โอห์ม ซึ่งหมายความว่าที่แรงดัน 12 โวลต์ คอยล์จะกินประมาณ 1 แอมแปร์ จะรับมือกับงานนี้และ แบตเตอรี่ลิเธียมและเพิ่มโมดูล เราปรับให้เข้ากับแรงดันไฟฟ้าที่เหมาะสม แม้ว่าอาจจะมากกว่าเล็กน้อย ห่าติดอยู่กับ ข้างในประตูในระยะไกลเพื่อไม่ให้ขอบเกาะติดและปิดกระแทกได้ ห่าควรเป็นคู่ในรูปแบบของกล่องโลหะ การใช้โดยไม่ได้ใช้งานจะไม่สะดวกและไม่ถูกต้อง เราจะต้องวางขั้นตอน อย่างน้อยก็สร้างลักษณะการทำงานปกติ
ในโหมดไม่ได้ใช้งานสลักเปิดตามปกตินั่นคือหากมีที่จับที่ประตูเราให้แรงกระตุ้นเราเปิดประตูด้วยที่จับ แต่ถ้าคุณสปริงมัน วิธีนี้ไม่เหมาะอีกต่อไป ตัวแปลงบูสต์รองรับโหลดไม่ได้ ในการเปิดประตูแบบสปริง คุณจะต้องใช้แบตเตอรี่ขนาดใหญ่ขึ้นและตัวแปลงที่ทรงพลังกว่า หรือแหล่งจ่ายไฟหลักและให้คะแนนความเป็นอิสระของระบบ ร้านค้าในจีนมีความหวือหวา ขนาดใหญ่. พอดีกับกล่อง สามารถจ่ายไฟได้โดยใช้รีเลย์หรือทรานซิสเตอร์มอสเฟต หรือสวิตช์เปิดปิดบนทรานซิสเตอร์ตัวเดียวกัน ตัวเลือกที่น่าสนใจและราคาไม่แพงคือเซอร์โวที่เชื่อมต่อกับก้านสูบที่มีองค์ประกอบการล็อค - สลักหรือวาล์วที่จริงจังกว่า นอกจากนี้ยังอาจต้องใช้เข็มถักที่ทำจากเหล็กซึ่งทำหน้าที่เป็นก้านสูบ ระบบดังกล่าวไม่ต้องการกระแสไฟขนาดใหญ่ แต่มันใช้พื้นที่มากขึ้นและตรรกะการควบคุมที่ฉลาดแกมโกงมากขึ้น
เซอร์โวมีสองประเภท อันทรงพลังขนาดเล็กและขนาดใหญ่ซึ่งสามารถดันเข้าไปในรูได้อย่างง่ายดายด้วยหมุดโลหะที่จริงจัง ทั้งสองตัวเลือกที่แสดงทำงานทั้งสองประตูและ ลิ้นชัก. คุณจะต้องปรับแต่งกล่องให้เป็นรูในผนังเลื่อน
ส่วนที่สอง
ในบทนี้เราจะมาเรียนรู้วิธีการทำ ระบบง่ายๆซึ่งจะปลดล็อคโดย กุญแจอิเล็กทรอนิกส์(เม็ทเคะ).
ในอนาคต คุณสามารถปรับแต่งและขยายฟังก์ชันการทำงานได้ ตัวอย่างเช่น เพิ่มฟังก์ชัน "การเพิ่มคีย์ใหม่และลบออกจากหน่วยความจำ" ในกรณีพื้นฐาน ให้พิจารณาตัวอย่างง่ายๆ เมื่อมีการระบุรหัสคีย์เฉพาะไว้ล่วงหน้าในโค้ดโปรแกรม
ในบทช่วยสอนนี้ เราจะต้อง:
ในการดำเนินโครงการ เราจำเป็นต้องติดตั้งไลบรารี:
2) ตอนนี้ คุณต้องเชื่อมต่อ Buzzer ซึ่งจะให้สัญญาณหากกุญแจทำงานและล็อคเปิดขึ้น และสัญญาณที่สองเมื่อล็อคปิด
เราเชื่อมต่อออดตามลำดับต่อไปนี้:
Arduino | Buzzer |
---|---|
5V | VCC |
GND | GND |
พิน 5 | IO |
3) เซอร์โวจะใช้เป็นกลไกการปลดล็อก สามารถเลือกเซอร์โวใดก็ได้ ขึ้นอยู่กับขนาดที่คุณต้องการและแรงที่เซอร์โวสร้างขึ้น เซอร์โวมี 3 พิน:
ชัดเจนยิ่งขึ้น คุณสามารถดูว่าเราเชื่อมต่อโมดูลทั้งหมดในภาพด้านล่างอย่างไร:
ตอนนี้ หากทุกอย่างเชื่อมต่อแล้ว คุณสามารถดำเนินการตั้งโปรแกรมได้
ร่าง:
#รวม
มาวิเคราะห์ร่างในรายละเอียดเพิ่มเติม:
ในการค้นหา UID ของการ์ด (ป้ายกำกับ) คุณต้องเขียนแบบร่างนี้ไปยัง Arduino ประกอบวงจรที่อธิบายข้างต้น และเปิดคอนโซล (การตรวจสอบพอร์ตอนุกรม) เมื่อคุณนำแท็กไปที่ RFID ตัวเลขจะปรากฏในคอนโซล
ต้องป้อน UID ที่เป็นผลลัพธ์ในบรรทัดต่อไปนี้:
If (uidDec == 3763966293) // เปรียบเทียบ Uid ของป้ายกำกับ หากเท่ากับค่าที่ระบุ เซอร์โวจะเปิดวาล์ว
สำหรับการ์ดแต่ละใบ ตัวระบุนี้จะไม่ซ้ำกันและไม่ซ้ำกัน ดังนั้น เมื่อคุณแสดงบัตรที่มี ID ที่คุณตั้งค่าไว้ในโปรแกรม ระบบจะเปิดการเข้าถึงโดยใช้เซอร์โว
วิดีโอ:
kayabaparts.ru - โถงทางเข้า ห้องครัว ห้องนั่งเล่น สวน. เก้าอี้. ห้องนอน