ล็อคอิเล็กทรอนิกส์ด้วยการ์ด Arduino การล็อคแบบรวมที่ผิดปกติบน Arduino การพัฒนาเพิ่มเติมของโครงการ Smart Lock

Arduino เป็นระบบที่ดีที่สุดสำหรับการคัดลอกฮาร์ดแวร์ใดๆ ความคิดส่วนใหญ่ไม่สามารถบรรลุผลได้หากไม่มีเธอ มีแนวคิดนี้มานานแล้ว: สร้างรหัสล็อคแบบพิเศษบน Arduino หากต้องการเปิด คุณจะต้องกดปุ่มบางปุ่มค้างไว้ ในกรณีนี้ไม่ควรเปิดล็อคแม้ว่าคุณจะรู้ปุ่มที่ถูกต้องก็ตาม หากต้องการเปิดคุณจะต้องรักษาช่วงเวลาไว้โดยใช้ความทรงจำของกล้ามเนื้อ อาชญากรไม่สามารถทำสิ่งนั้นได้ แต่ทั้งหมดนี้เป็นเพียงทฤษฎีเท่านั้น

ในการประกอบคุณต้องใช้อุปกรณ์พัลส์สี่เหลี่ยมแบบพิเศษตลอดจนตัวนับและฮีปหลายตัว แต่เครื่องที่ประกอบเสร็จแล้วจะมีขนาดโดยรวมใหญ่และใช้งานไม่สะดวก ตามกฎแล้วความคิดดังกล่าวหลอกหลอนคุณ ขั้นตอนแรกในการทำให้ความฝันของฉันเป็นจริงคือการสร้างโปรแกรมสำหรับ Arduino มันจะทำหน้าที่เป็นตัวล็อคแบบรวม ในการเปิดคุณจะต้องกดไม่ใช่เพียงปุ่มเดียว แต่กดหลายปุ่มและทำสิ่งนี้พร้อมกัน แผนภาพที่เสร็จแล้วมีลักษณะดังนี้:

คุณภาพของภาพไม่ได้ดีที่สุด แต่ทำการเชื่อมต่อกราวด์ D3, D5, D7, D9 และ D11

รหัสอยู่ด้านล่าง:

ค่าคงที่ int = 3; const int inb = 5; const int inc = 9; const int ledPin = 13; int i = 1,000; ไบต์ a = 0; ไบต์ b = 0; ไบต์ c = 0; ไบต์ d = 0; ไม่ได้ลงนามเป็นเวลานาน = 0; //อย่าลืมทุกอย่างที่รับค่า millis() unsigned long temp = 0; //เก็บในไบต์ยาวที่ไม่ได้ลงชื่อ keya = ( 0, 0, 0, 0, 0, 0, 0, 0); // รหัสจริงไบต์ keyb = (1, 1, 1, 1, 0, 1, 0, 0); ไบต์คีย์c = ( 1, 0, 1, 0, 1, 1, 1, 0); ไบต์ k = 0; การตั้งค่าเป็นโมฆะ () ( pinMode (ina, INPUT_PULLUP); // 3 อินพุตเชื่อมต่อกับปุ่ม pinMode (inb, INPUT_PULLUP); pinMode (inc, INPUT_PULLUP); pinMode (ledPin, OUTPUT); // LED ในตัวในวันที่ 13 pin pinMode (7, OUTPUT); pinMode (11, OUTPUT); digitalWrite (7, LOW); // แทนที่กราวด์ digitalWrite (11, LOW); เวลา = มิลลิวินาที (); // จำเป็นสำหรับการกำหนดเวลา ) เป็นโมฆะกะพริบสองครั้ง () ( // กะพริบสองครั้งของ LED digitalWrite (ledPin, สูง); ล่าช้า (100); digitalWrite (ledPin, ต่ำ); ล่าช้า (100); digitalWrite (ledPin, สูง); ล่าช้า (100); digitalWrite (ledPin, ต่ำ); ล่าช้า (200); ) void loop () ( if (k == 0) ( กะพริบสองครั้ง (); // แจ้งให้ป้อนรหัส ) ถ้า (k == 8) ( digitalWrite (ledPin, สูง); ล่าช้า (3000); k = 0 ; ) a = digitalRead(ina); // ระดับสัญญาณถูกอ่านจากปุ่ม - กด/ไม่ได้กด b = digitalRead(inb); c = digitalRead(inc); หน่วงเวลา (100); // ถัดไปถ้า - ป้องกันผลบวกลวง คุณไม่จำเป็นต้องใช้ if((digitalRead(ina) == a)&&(digitalRead(inb) ==b)&&(digitalRead(inc)==c)) ( if (a == keya[k]) ( ถ้า (b == keyb[k]) ( ถ้า (c == keyc[k]) ( k++; ) ) ) ) if (k==1) ( ถ้า (d ==0) ( เวลา = มิลลิวินาที (); d++; ) ) temp = มิลลิวินาที(); อุณหภูมิ = อุณหภูมิ - เวลา; ถ้า (อุณหภูมิ > 10,000) ( k= 0; d=0; เวลา = มิลลิวินาที (; ) )

เพื่อหลีกเลี่ยงคำถามที่ไม่จำเป็นเกี่ยวกับโค้ด ควรมีการชี้แจงบางประเด็น ฟังก์ชันการตั้งค่าใช้เพื่อกำหนดพอร์ต ฟังก์ชั่นถัดไปคือ Input_Pullup ซึ่งจำเป็นในการเพิ่มแรงดันพิน 5 V ซึ่งทำได้โดยใช้ตัวต้านทาน ด้วยเหตุนี้จึงไม่เกิดไฟฟ้าลัดวงจรต่างๆ เพื่อความสะดวกยิ่งขึ้น ขอแนะนำให้ใช้ฟังก์ชันกะพริบสองครั้ง โดยทั่วไป เมื่อสร้างโปรแกรมที่แตกต่างกัน คุณต้องลองใช้ฟังก์ชันอื่น

หลังจากกำหนดฟังก์ชันแล้ว สัญญาณจะถูกอ่านจากพอร์ตต่างๆ หากกดปุ่มจะมีการระบุด้วยหมายเลข 1 และหากไม่เป็นเช่นนั้นให้ระบุด้วย 2 ต่อไปจะวิเคราะห์ค่าทั้งหมด ตัวอย่างเช่น ชุดค่าผสมเช่น 0,1,1 ปรากฏขึ้น ซึ่งหมายความว่ามีการกดปุ่มแรก แต่อีกสองปุ่มไม่ได้กด หากค่าทั้งหมดเป็นจริง แสดงว่าเงื่อนไข 8 เป็นจริงด้วย ซึ่งระบุได้ด้วยไฟ LED ที่แผงด้านหน้า ถัดไปคุณต้องป้อนรหัสเฉพาะที่จะใช้เปิดประตู

องค์ประกอบสุดท้ายของโค้ดใช้เพื่อรีเซ็ตค่าตัวนับ ฟังก์ชั่นนี้จะดำเนินการหากผ่านไปเกิน 10 วินาทีนับตั้งแต่การกดปุ่มครั้งล่าสุด หากไม่มีรหัสนี้ ก็เป็นไปได้ที่จะใช้ตัวเลือกที่เป็นไปได้ทั้งหมดแม้ว่าจะมีตัวเลือกมากมายก็ตาม หลังจากสร้างอุปกรณ์นี้แล้ว คุณต้องทดสอบอุปกรณ์นี้ มากกว่า

พิธีกรช่อง YouTube “AlexGyver” ถูกขอให้ทำล็อคอิเล็กทรอนิกส์ด้วยมือของเขาเอง ยินดีต้อนรับสู่ซีรีส์วิดีโอเกี่ยวกับการล็อคแบบอิเล็กทรอนิกส์บน Arduino อาจารย์จะอธิบายแนวคิดนี้เป็นแบบทั่วไป

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

คุณจะพบทุกสิ่งที่คุณต้องการสำหรับปราสาทในร้านจีนแห่งนี้

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


ประตูพร้อมแล้ว ตอนนี้เราต้องหาวิธีเปิดและปิดด้วยระบบอิเล็กทรอนิกส์ สลักโซลินอยด์อันทรงพลังจาก aliexpress เหมาะสำหรับวัตถุประสงค์เหล่านี้ (ลิงก์ไปยังร้านค้าด้านบน) หากคุณจ่ายแรงดันไฟฟ้าไปที่ขั้วต่อ มันจะเปิดขึ้น ความต้านทานของคอยล์เกือบ 12 โอห์ม ซึ่งหมายความว่าที่แรงดันไฟฟ้า 12 โวลต์ คอยล์จะกินไฟประมาณ 1 แอมแปร์ ทั้งแบตเตอรี่ลิเธียมและโมดูลบูสต์สามารถรับมือกับงานนี้ได้ ปรับแรงดันไฟฟ้าให้เหมาะสม แม้ว่าจะเป็นไปได้อีกสักหน่อยก็ตาม สลักติดอยู่ที่ด้านในประตูโดยเว้นระยะห่างเพื่อไม่ให้ติดกับขอบและสามารถปิดกระแทกได้ สลักควรมีคู่กันในรูปของกล่องโลหะ การใช้โดยไม่ได้สิ่งนี้จะไม่สะดวกและไม่ถูกต้อง เราจะต้องติดตั้งขั้นตอนอย่างน้อยก็เพื่อสร้างรูปลักษณ์ของการทำงานปกติ

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

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

ส่วนที่สอง

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

หลังจากค้นหาตลาดนัดในจีนและอีเบย์แล้ว ฉันไม่พบสิ่งใดที่ถูกและจริงจังไม่มากก็น้อย จึงตัดสินใจทำเอง ฉันจะบอกทันทีว่าแพลตฟอร์ม Arduino ได้รับเลือกเพื่อความเรียบง่ายเนื่องจากฉันไม่เคยมีประสบการณ์กับไมโครคอนโทรลเลอร์เลย

ความคิด

ควรมีแป้นพิมพ์อยู่ที่ด้านนอกประตูที่ป้อนรหัสผ่าน และโครงสร้างที่เหลือควรยึดไว้ด้านใน สวิตช์กกใช้เพื่อควบคุมการปิดประตูโดยสมบูรณ์ เมื่อออกจากสำนักงานมีคนกด "*" บนแป้นพิมพ์และไปทำธุรกิจของเขาโดยไม่ต้องรอให้ประตูปิดสนิทเมื่อประตูปิดสนิทสวิตช์กกจะปิดและล็อคจะปิด . ประตูเปิดโดยการป้อนรหัสผ่าน 4 หลักแล้วกด “#”

เครื่องประดับ

Arduino UNO = 18 ดอลลาร์
Arduino โปรโตชิลด์ + เขียงหั่นขนม = 6 ดอลลาร์
L293D = 1 ดอลลาร์
มัดลวด 30 ชิ้นสำหรับ Bradboard = 4 ดอลลาร์
ช่องเสียบ RJ45 2 ช่อง = 4 ดอลลาร์
ปลั๊ก RJ45 2 อัน = 0.5 USD
แอคชูเอเตอร์ล็อคกลาง = 250 ถู
สวิตช์กก = ฉีกออกจากหน้าต่างเก่าอย่างอิสระ
สลักโลหะยักษ์=ฟรี
ตัวเรือนจากดุม D-LINK เก่าที่ทำจากเหล็กหนึ่งมิลลิเมตรครึ่ง = ฟรี
แหล่งจ่ายไฟจากฮับ D-LINK เดียวกันสำหรับ 12 และ 5V = ฟรีเช่นกัน
สกรูและน็อตจำนวนหนึ่งสำหรับติดสิ่งของทั้งหมดนี้เข้ากับตัวเครื่อง = 100 รูเบิล
แผงควบคุมสัญญาณกันขโมย = ฟรี

ทั้งหมด:$ 33.5 และ 350 ถู

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

กำลังเตรียมการประกอบ

ฉันอยากจะพูดสักสองสามคำเกี่ยวกับการซื้อองค์ประกอบสำคัญของการออกแบบแอคชูเอเตอร์ ร้านขายรถยนต์ในพื้นที่แห่งหนึ่งเสนอแอคชูเอเตอร์สองประเภทให้ฉัน: “แบบสองสายและแบบห้าสาย” ตามที่พนักงานขายระบุ พวกเขาเหมือนกันทุกประการ และความแตกต่างของจำนวนสายไฟไม่ได้มีความหมายอะไรเลย อย่างไรก็ตาม เมื่อปรากฏทีหลังกลับไม่เป็นเช่นนั้น! ฉันเลือกอุปกรณ์ที่มีสายไฟสองเส้นซึ่งใช้พลังงานจาก 12V การออกแบบสายไฟห้าเส้นมีลิมิตสวิตช์เพื่อควบคุมการเคลื่อนที่ของคันโยก ฉันรู้ว่าฉันซื้อมาผิดแค่ตอนที่แยกมันออกและมันก็สายเกินไปที่จะเปลี่ยน จังหวะของคันโยกสั้นเกินไปที่จะดึงสลักกลับคืนมาอย่างเหมาะสม ดังนั้นจึงจำเป็นต้องปรับเปลี่ยนเล็กน้อย กล่าวคือ ถอดแหวนรองยางสองตัวที่ทำให้จังหวะของคันโยกแอคชูเอเตอร์สั้นลง ในการทำเช่นนี้ จะต้องเลื่อยลำตัวตามยาวด้วยเลื่อยเลือยตัดโลหะธรรมดา เพราะมีเครื่องซักผ้าตัวที่สองอยู่ข้างใน เช่นเคย เทปพันสายไฟสีน้ำเงินช่วยเราในอนาคตเมื่อประกอบกลับเข้าไป
ในการควบคุมมอเตอร์แอคชูเอเตอร์ เราใช้ไดรเวอร์มอเตอร์ L293D ซึ่งสามารถทนต่อโหลดสูงสุดได้ถึง 1200 mA เมื่อเราหยุดมอเตอร์แอคชูเอเตอร์ โหลดสูงสุดเพิ่มขึ้นเป็นเพียง 600 mA
หน้าสัมผัสจากแป้นพิมพ์ ลำโพง และไฟ LED สองดวงถูกลบออกจากแผงควบคุมสัญญาณกันขโมย ควรเชื่อมต่อรีโมทคอนโทรลและอุปกรณ์หลักโดยใช้สายคู่บิดและขั้วต่อ RJ45

การเขียนโปรแกรม

ดังนั้นฉันจึงไม่มีประสบการณ์ในการเขียนโปรแกรม Arduino เลยจนกระทั่งตอนนี้ ฉันใช้งานของคนอื่นและบทความจากเว็บไซต์ arduino.cc ใครสนใจสามารถดูโค้ดน่าเกลียดนี้ :)

ภาพถ่ายและวิดีโอ



Arduino และแอคชูเอเตอร์


หน่วยพลังงาน


คีย์บอร์ด


Espagnolette (เชื่อมต่อกับแอคชูเอเตอร์ด้วยซี่โลหะและหุ้มด้วยแผ่นหดเพื่อความสวยงาม)

วิดีโอขั้นตอนการทำงานของอุปกรณ์:

ในบทนี้ เราจะได้เรียนรู้วิธีสร้างระบบง่ายๆ ที่จะปลดล็อคโดยใช้กุญแจอิเล็กทรอนิกส์ (Tag)

ในอนาคตคุณสามารถปรับแต่งและขยายฟังก์ชันการทำงานได้ ตัวอย่างเช่น เพิ่มฟังก์ชัน "การเพิ่มคีย์ใหม่และลบออกจากหน่วยความจำ" ในกรณีพื้นฐาน ลองพิจารณาตัวอย่างง่ายๆ ที่มีการตั้งค่าตัวระบุคีย์เฉพาะไว้ล่วงหน้าในโค้ดโปรแกรม

ในบทช่วยสอนนี้เราจะต้อง:

ในการดำเนินโครงการเราจำเป็นต้องติดตั้งไลบรารี:

2) ตอนนี้คุณต้องเชื่อมต่อ Buzzer ซึ่งจะส่งเสียงสัญญาณหากกุญแจทำงานและล็อคเปิดอยู่ และสัญญาณที่สองเมื่อล็อคปิด

เราเชื่อมต่อออดตามลำดับต่อไปนี้:

อาร์ดูโน่ ออด
5V วีซีซี
จีเอ็นดี จีเอ็นดี
พิน 5 ไอโอ

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

คุณสามารถดูได้ชัดเจนยิ่งขึ้นว่าเราเชื่อมต่อโมดูลทั้งหมดอย่างไรในภาพด้านล่าง:

ตอนนี้หากทุกอย่างเชื่อมต่อกันแล้ว คุณสามารถดำเนินการเขียนโปรแกรมต่อได้

ร่าง:

#รวม #รวม #รวม // ห้องสมุด "RFID" #กำหนด SS_PIN 10 #กำหนด RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); uidDec แบบยาวที่ไม่ได้ลงนาม, uidDecTemp; // เพื่อจัดเก็บหมายเลขแท็กในรูปแบบทศนิยม เซอร์โวเซอร์โว; การตั้งค่าเป็นโมฆะ () ( Serial.begin (9600); Serial.println ("กำลังรอการ์ด ... "); SPI.begin (); // การเริ่มต้น SPI / เริ่มต้นบัส SPI mfrc522.PCD_Init (); // การเริ่มต้น MFRC522 / เริ่มต้นการ์ด MFRC522 servo.attach(6); servo.write(0); // ตั้งค่าเซอร์โวเป็นสถานะปิด ) void loop() ( // ค้นหาป้ายกำกับใหม่หาก (! mfrc522.PICC_IsNewCardPresent() ) ( return; ) // เลือกแท็กถ้า (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // การออกหมายเลขซีเรียลของแท็ก สำหรับ (ไบต์ i = 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

มาดูภาพร่างโดยละเอียดเพิ่มเติม:

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

ต้องป้อน UID ผลลัพธ์ในบรรทัดต่อไปนี้:

ถ้า (uidDec == 3763966293) // เปรียบเทียบ Uid ของแท็ก ถ้ามันเท่ากับอันที่กำหนด เซอร์โวไดรฟ์จะเปิดวาล์ว

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

วิดีโอ:

วันก่อนฉันกำลังดู The Amazing Spider-Man และในฉากหนึ่งที่ Peter Parker เปิดและปิดประตูจากแล็ปท็อปของเขาจากระยะไกล ทันทีที่ฉันเห็นสิ่งนี้ ฉันก็รู้ทันทีว่าฉันต้องการล็อคแบบอิเล็กทรอนิกส์สำหรับประตูหน้าบ้านด้วย

หลังจากเล่นซอไปรอบๆ ฉันก็ประกอบโมเดลการทำงานของล็อคอัจฉริยะขึ้นมา ในบทความนี้ฉันจะบอกคุณว่าฉันประกอบมันอย่างไร

ขั้นตอนที่ 1: รายการวัสดุ





ในการประกอบล็อคอิเล็กทรอนิกส์บน Arduino คุณจะต้องมีวัสดุดังต่อไปนี้:

อิเล็กทรอนิกส์:

  • อะแดปเตอร์ติดผนัง 5V

ส่วนประกอบ:

  • สกรูล็อค 6 ตัว
  • กระดาษแข็ง
  • สายไฟ

เครื่องมือ:

  • หัวแร้ง
  • ปืนกาว
  • เจาะ
  • เจาะ
  • เจาะรูนำร่อง
  • มีดสเตชันเนอรี
  • คอมพิวเตอร์ด้วยโปรแกรม Arduino IDE

ขั้นตอนที่ 2: วิธีการทำงานของล็อค

แนวคิดก็คือฉันสามารถเปิดหรือปิดประตูได้โดยไม่ต้องใช้กุญแจ และไม่ต้องเข้าใกล้ด้วยซ้ำ แต่นี่เป็นเพียงแนวคิดพื้นฐาน เพราะคุณสามารถเพิ่มเซ็นเซอร์เคาะเพื่อให้ตอบสนองต่อการเคาะแบบพิเศษได้ หรือคุณสามารถเพิ่มระบบจดจำเสียงได้!

คันโยกเซอร์โวที่เชื่อมต่อกับสลักเกลียวจะปิด (0°) และเปิด (60°) โดยใช้คำสั่งที่ได้รับผ่านโมดูล Bluetooth

ขั้นตอนที่ 3: แผนภาพการเดินสายไฟ


ก่อนอื่นมาเชื่อมต่อเซอร์โวกับบอร์ด Arduino กันก่อน (โปรดทราบว่าแม้ว่าฉันจะใช้บอร์ด Arduino Nano แต่บอร์ด Uno ก็มี pinout เหมือนกันทุกประการ)

  • สายสีน้ำตาลของเซอร์โวกำลังต่อสายดินเราเชื่อมต่อกับกราวด์บน Arduino
  • สายสีแดงเป็นบวกเราเชื่อมต่อกับขั้วต่อ 5V บน Arduino
  • สายสีส้มคือพินซอร์สของเซอร์โวไดรฟ์ เชื่อมต่อกับพิน 9 บน Arduino

ฉันแนะนำให้คุณตรวจสอบการทำงานของเซอร์โวก่อนดำเนินการประกอบ ในการดำเนินการนี้ ในโปรแกรม Arduino IDE ให้เลือก Sweep ในตัวอย่าง หลังจากตรวจสอบให้แน่ใจว่าเซอร์โวทำงานแล้ว เราก็สามารถเชื่อมต่อโมดูล Bluetooth ได้ คุณต้องเชื่อมต่อพิน rx ของโมดูล Bluetooth เข้ากับพิน tx ของ Arduino และเชื่อมต่อพิน tx ของโมดูลเข้ากับพิน rx ของ Arduino แต่อย่าเพิ่งทำ! เมื่อบัดกรีการเชื่อมต่อเหล่านี้แล้ว คุณจะไม่สามารถอัปโหลดโค้ดใดๆ ไปยัง Arduino ได้ ดังนั้นให้ดาวน์โหลดโค้ดทั้งหมดของคุณก่อน จากนั้นจึงบัดกรีการเชื่อมต่อเท่านั้น

นี่คือแผนภาพการเชื่อมต่อระหว่างโมดูลและไมโครคอนโทรลเลอร์:

  • โมดูล Rx – บอร์ด Tx Arduino
  • โมดูล Tx – บอร์ด Rx
  • Vcc (ขั้วบวก) ของโมดูลคือ 3.3v ของบอร์ด Arduino
  • กราวด์เชื่อมต่อกับกราวด์ (กราวด์ถึงกราวด์)

หากคำอธิบายดูเหมือนไม่ชัดเจนสำหรับคุณ โปรดปฏิบัติตามแผนภาพการเดินสายไฟที่ให้ไว้

ขั้นตอนที่ 4: ทดสอบ

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

ขั้นตอนที่ 5: ที่อยู่อาศัยไฟฟ้า



ฉันตัดสินใจใส่เฉพาะคอนโทรลเลอร์และโมดูล Bluetooth ไว้ในเคสและปล่อยเซอร์โวไว้ด้านนอก ในการดำเนินการนี้ ให้วาดโครงร่างของบอร์ด Arduino Nano บนกระดาษแข็งแล้วเพิ่มพื้นที่ 1 ซม. รอบปริมณฑลแล้วตัดออก หลังจากนั้นเราก็ตัดส่วนของร่างกายออกอีกห้าด้านด้วย คุณจะต้องเจาะรูที่ผนังด้านหน้าสำหรับสายไฟของคอนโทรลเลอร์

ขนาดด้านข้างเคส:

  • ก้น – 7.5x4 ซม
  • ผ้าคลุม – 7.5x4 ซม
  • ผนังด้านซ้าย – 7.5x4 ซม
  • ผนังด้านขวา – 7.5x4 ซม
  • ผนังด้านหน้า – 4x4 ซม. (มีช่องสำหรับเสียบสายไฟ)
  • ผนังด้านหลัง – 4x4 ซม

ขั้นตอนที่ 6: การสมัคร

หากต้องการควบคุมคอนโทรลเลอร์ คุณต้องมีอุปกรณ์ Android หรือ Windows ที่มี Bluetooth ในตัว ฉันไม่มีโอกาสทดสอบแอปพลิเคชันบนอุปกรณ์ Apple อาจจำเป็นต้องใช้ไดรเวอร์บางตัว

ฉันแน่ใจว่าบางท่านมีโอกาสที่จะตรวจสอบเรื่องนี้ สำหรับ Android ดาวน์โหลดแอปพลิเคชัน Bluetooth Terminal สำหรับ Windows ดาวน์โหลด TeraTerm จากนั้นคุณจะต้องเชื่อมต่อโมดูลกับสมาร์ทโฟนของคุณ ชื่อควรเป็น linvor รหัสผ่านควรเป็น 0000 หรือ 1234 เมื่อสร้างการจับคู่แล้ว ให้เปิดแอปพลิเคชันที่ติดตั้ง ไปที่ตัวเลือกแล้วเลือก “สร้างการเชื่อมต่อ (ไม่ปลอดภัย)” ตอนนี้สมาร์ทโฟนของคุณเป็นจอภาพอินเทอร์เฟซแบบอนุกรม Arduino ซึ่งหมายความว่าคุณสามารถแลกเปลี่ยนข้อมูลกับคอนโทรลเลอร์ได้

หากคุณป้อน 0 ประตูจะปิดและข้อความ “ประตูปิด” จะปรากฏบนหน้าจอสมาร์ทโฟน
หากป้อน 1 คุณจะเห็นประตูเปิดอยู่ และหน้าจอจะขึ้นว่า "Door Open"
บน Windows กระบวนการจะเหมือนกัน ยกเว้นว่าคุณต้องติดตั้งแอปพลิเคชัน TeraTerm

ขั้นตอนที่ 7: ติดตั้งสลัก


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

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

ขั้นตอนที่ 8: พลัง


หากต้องการอุปกรณ์นี้ คุณจะต้องมีแหล่งจ่ายไฟ สายไฟ และปลั๊กมินิ USB เพื่อเชื่อมต่อกับ Arduino
เชื่อมต่อพินกราวด์ของแหล่งจ่ายไฟเข้ากับพินกราวด์ของพอร์ต mini usb เชื่อมต่อสายสีแดงเข้ากับสายสีแดงของพอร์ต mini usb จากนั้นเดินสายไฟจากตัวล็อคไปที่บานพับประตู และจากนั้นไปที่ซ็อกเก็ต .

ขั้นตอนที่ 9: รหัส

#รวมเซอร์โวมายเซอร์โว; int pos = 0; สถานะ int; int แฟล็ก = 0; การตั้งค่าเป็นโมฆะ () ( myservo.attach (9); Serial.begin (9600); myservo.write (60); ล่าช้า (1,000); ) void loop () ( if (Serial.available () > 0) ( state = Serial.read(); flag=0; ) // ถ้าสถานะเป็น "0" มอเตอร์กระแสตรงจะปิดถ้า (state == "0") ( myservo.write(8); Delay(1000); Serial. println ("ประตูล็อค"); ) else if (state == "1") ( myservo.write (55); ล่าช้า (1,000); Serial.println ("ประตูปลดล็อค"); ) )

ขั้นตอนที่ 10: ล็อค Arduino-Based เสร็จสมบูรณ์

เพลิดเพลินไปกับการล็อคด้วยรีโมทคอนโทรล และอย่าลืม "ล็อค" เพื่อนของคุณในห้องโดยไม่ได้ตั้งใจ

กำลังโหลด...กำลังโหลด...