ประตูสุ่มไก่อัตโนมัติ - ควบคุมด้วย Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
ประตูสุ่มไก่อัตโนมัติ - ควบคุมด้วย Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
Anonim
Image
Image

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

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

มันทำงานที่ 9Vdc ดังนั้นจึงสามารถใช้พลังงานจากปลั๊กหรือแบตเตอรี่และแผงโซลาร์เซลล์เพื่อชาร์จแบตเตอรี่

ใช้โซลินอยด์เพื่อล็อคประตูให้ปิดและยึดประตูให้อยู่ในตำแหน่งเปิด

ส่วนสำคัญ ได้แก่:

Arduino UNO3.

4 หลัก, 7 เซ็กเมนต์ LED display

โมดูล RTC

โมดูล RF

โพเทนชิโอมิเตอร์, เซอร์โวมอเตอร์, 6V - 12V โซลินอยด์, เครื่องเข้ารหัสแบบหมุนพร้อมปุ่มกด

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

เครื่องมือในการสร้างประกอบด้วย:

พีซีที่มี Arduino IDE เพื่อตั้งโปรแกรม Arduino

ค้อน, เลื่อย, หัวแร้ง, เครื่องตัดลวด, เจาะ, ไขควง.

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

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

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

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

เมื่อเจ้าของเข้าใจถึงกิจวัตรการเลี้ยงไก่ พวกเขาจะสามารถปรับเวลาเปิดและปิดได้อย่างง่ายดาย

เวลาเปิดปิดสามารถปรับได้ตั้งแต่ 3.00 น. ถึง 9.00 น. และเวลาปิดตั้งแต่ 15.00 น. ถึง 21.00 น. เวลาเหล่านี้เหมาะกับละติจูดตั้งแต่ 12 ถึง 42 องศาจากเส้นศูนย์สูตร (ดาร์วินถึงโฮบาร์ตในออสเตรเลีย) และครอบคลุมวันที่ยาวที่สุดและสั้นที่สุดของปี.

โดยพื้นฐานแล้ว ตัวควบคุมประตูคือนาฬิกาที่มีนาฬิกาปลุกที่ตั้งค่าได้สองแบบพร้อมโอเวอร์ไซด์แบบแมนนวล

ขั้นตอนที่ 1: กรอบและประตูสวิง

วงกบและประตูสวิง
วงกบและประตูสวิง
วงกบและประตูสวิง
วงกบและประตูสวิง
วงกบและประตูสวิง
วงกบและประตูสวิง

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

1. ถอดประตูที่มีอยู่ออก

2. เลือกขนาดเฟรมที่พอดีกับช่องเปิดที่มีอยู่ สองมิติของเฟรมมีความสำคัญ - ความสูงของเฟรมและความกว้างของไม้ ประตูแกว่งจากเดือยแนวนอนและความยาวจากเดือยถึงโครง ("D" ในแผนภาพ) เท่ากับความกว้างของไม้ ซึ่งหมายความว่าเมื่อเปิดประตู ส่วนของประตูเหนือเดือยจะไม่รบกวนผนังสุ่ม

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

4. ตัวประตูควรมีน้ำหนักเบา แข็งแรง และทนต่อสภาพอากาศ

ขั้นตอนที่ 2: Pivot Rod และ Swing Door Sizing

ขนาดแกนหมุนและประตูสวิง
ขนาดแกนหมุนและประตูสวิง
ขนาดแกนหมุนและประตูสวิง
ขนาดแกนหมุนและประตูสวิง
ขนาดแกนหมุนและประตูสวิง
ขนาดแกนหมุนและประตูสวิง

ขนาดของประตูสวิงควรเป็นความกว้างของประตูที่พอดีกับขอบด้านในของโครง ความสูงของประตูเล็กกว่าความสูงของกรอบด้านใน

1. หาแท่งที่มีเส้นผ่านศูนย์กลางและความยาวประมาณ 5 มม. (1/4 นิ้ว) เท่ากับความกว้างของโครง ฉันใช้แท่งจากเครื่องพิมพ์ที่ถอดประกอบแล้ว แต่แกนเกลียวก็เพียงพอแล้ว แหล่งที่มาของแท่งอื่นมาจากราวตากผ้าโลหะ แท่งสามารถตัดด้วยมีดคัตเตอร์หรือเลื่อยเลือยตัดโลหะ ขูดผิวโลหะออกด้วยใบมีด

2. ตัดสองร่องเข้าไปในเฟรมที่ความยาว "D" (ในแผนภาพในขั้นตอนก่อนหน้า) จากช่องเปิดด้านบนของเฟรมและความลึกของเส้นผ่านศูนย์กลางของแกนหมุน

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

ด้วยความบังเอิญ แกนหมุนของเครื่องพิมพ์ที่ฉันใช้นั้นพอดีกับบานพับแรกที่ออกมาจากกล่องขยะของฉัน

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

ขั้นตอนที่ 3: เซอร์โวมอเตอร์และแขนยก

เซอร์โวมอเตอร์และแขนยก
เซอร์โวมอเตอร์และแขนยก
เซอร์โวมอเตอร์และแขนยก
เซอร์โวมอเตอร์และแขนยก
เซอร์โวมอเตอร์และแขนยก
เซอร์โวมอเตอร์และแขนยก

ฉันใช้เซอร์โวมอเตอร์ MR-996 มีแรงบิด: 9.4 kgf· cm (4.8 V) หรือ 11 kgf · cm (7.2 V) ซึ่งหมายความว่าสำหรับประตู 20 ซม. ใต้เดือย มอเตอร์สามารถยกได้ 11 กก./20 = 550 ก. ที่ 7.2V

ด้วยส่วนถ่วงน้ำหนักเหนือแกนหมุน ประตูอาจหนักกว่าและ/หรือนานกว่านั้น ฉันใช้น็อตและสลักเกลียวขนาดใหญ่สองตัวเป็นตัวถ่วงดังแสดงในรูปภาพ

เซอร์โวมาพร้อมกับแขนพลาสติกที่พอดีกับเพลาขาออกของเซอร์โว ตัดแขนข้างหนึ่งด้วยมีดคมหรือมีดคัตเตอร์

2. แขนยกทำจากอลูมิเนียมสองความยาว แขนท่อนบนเป็นขายึด L แขนท่อนล่างเป็นอะลูมิเนียมแผ่นเรียบ

ไดอะแกรมที่แนบมาแสดงวิธีการคำนวณขนาดของแขนแต่ละข้าง ขนาดผลลัพธ์จะขึ้นอยู่กับความกว้างของเฟรม "d" และตำแหน่งของจุดยกที่ติดตั้งอยู่ที่ประตู

ต้นแขนมีช่องเจาะเพื่อให้แขนล้างเซอร์โวมอเตอร์เมื่อเปิดประตู

ขั้นตอนที่ 4: ล็อคโซลินอยด์และตัวรองรับการเปิดประตู

ล็อคโซลินอยด์และตัวรองรับการเปิดประตู
ล็อคโซลินอยด์และตัวรองรับการเปิดประตู
ล็อคโซลินอยด์และตัวรองรับการเปิดประตู
ล็อคโซลินอยด์และตัวรองรับการเปิดประตู

1. โซลินอยด์ที่ติดตั้งบนเฟรมมีจุดประสงค์สองประการ:

ก) ล็อคประตูเมื่อปิด และ

b) ป้องกันไม่ให้ประตูปิดเมื่อเปิด

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

2. ยึดท่อนไม้ตามภาพ มันจะสั้นกว่าความกว้างของเฟรมและติดตั้งไว้ใต้เดือยเดือย

ขั้นตอนที่ 5: ตัวควบคุม

ผู้ควบคุม
ผู้ควบคุม
ผู้ควบคุม
ผู้ควบคุม
ผู้ควบคุม
ผู้ควบคุม

1. ฉันใช้ Arduino Uno 3 เป็นพื้นฐานของคอนโทรลเลอร์ มีพินอินพุตและเอาต์พุตทั้งหมด 17 พิน

2. ตัวควบคุมรักษาเวลาผ่านตัวควบคุม I2C RTC พร้อมแบตเตอรี่สำรอง ควรใช้แบตเตอรี่สำรองแบบชาร์จไฟได้เพื่อประหยัดความพยายามในการเปิดเครื่องควบคุมทุกปีเพื่อเปลี่ยนแบตเตอรี่ของ RTC เวลาถูกตั้งค่าผ่านตัวควบคุมแบบโรตารี่และแสดงบน LED 7 เซ็กเมนต์ 4 หลัก 7 สามารถใช้จอ LCD และแสดงข้อมูลเพิ่มเติม เช่น จำนวนครั้งที่ประตูเปิดและปิด

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

4. อะแดปเตอร์ RF ไร้สาย (https://www.adafruit.com/product/1097) เพื่อความสะดวกในการเปิดและปิดด้วยตนเองจากระยะไกล url คีย์ fob:

5. กล่องที่ฉันเลือกสำหรับใส่คอนโทรลเลอร์นั้นอยู่ด้านเล็ก ดังนั้นฉันจึงต้องเพิ่มกล่องที่เล็กลงเพื่อให้พอดีกับรีโมตรีซีฟเวอร์

6. แนบไดอะแกรม Fritzing

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

รหัสวนรอบและดำเนินการดังต่อไปนี้:

1. สแกนสถานะของสวิตช์แผงควบคุม

2. อ่าน RTC และแปลงเวลาเป็นนาทีของวัน (0 ถึง 1440)

3. อ่านโพเทนชิโอมิเตอร์แบบอะนาล็อกสองตัวและแปลงเป็นเวลาเปิดและปิดจำนวนเต็ม เพื่อให้ความละเอียดในการตั้งค่าเวลาที่ละเอียดยิ่งขึ้น เวลาเปิดปิดจะจำกัดอยู่ที่ระหว่าง 03:00-09:00 น. และ 15:00-21:00 น. ตามลำดับ

4. อ่านอินพุต RF เพื่อดูว่ามีการกดปุ่มระยะไกลหรือไม่

5. เปรียบเทียบเวลาปัจจุบันกับเวลาเปิดและปิด และอ่านโหมดเพื่อกำหนดว่าจะเปิดหรือปิดประตู

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

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

ไลบรารี LED Display ที่ฉันได้รับจาก:

ขั้นตอนที่ 7: รายการชิ้นส่วนคอนโทรลเลอร์

Arduino Uno 34-Digit 7-Segment Module

MG 996R เซอร์โวมอเตอร์

ตัวต้านทาน 1k โอห์ม

FET: FQP30N06L.

โพเทนชิโอมิเตอร์ 2 x 10kOhm (ตั้งเวลาเปิด/ปิด)

เครื่องเข้ารหัสแบบหมุนพร้อมปุ่มกดในตัว

สายจัมเปอร์

ตัวแปลง DC-DC 1A: สำหรับเซอร์โวและโซลินอยด์

1 x SPDT สวิตช์สลับ (ตัวเลือกชุดชั่วโมง/นาที)

1 x ศูนย์ SPDT ปิดชั่วขณะชั่วขณะ (สำหรับการเปิด/ปิดด้วยตนเอง)

1 x SPDT center off (สำหรับการเว้นว่าง/ดูเวลา/ตัวเลือกการตั้งค่าเวลา)

โซลินอยด์: กดดึง 6-12V 10 มม. จังหวะ

Adafruit Simple RF M4 Receiver - 315MHz Momentary Type

รีโมทคอนโทรล RF ของ Keyfob 2 ปุ่ม - 315MHz

กล่อง

ขั้นตอนที่ 8: การปรับขนาดพาวเวอร์ซัพพลายและแผงโซลาร์เซลล์และแบตเตอรี่

1. แม้ว่า Arduino จะสามารถทำงานได้จาก 12Vdc การทำเช่นนั้นจะทำให้ตัวควบคุมเชิงเส้นออนบอร์ดทำงานร้อน เซอร์โวทำงานได้ดีขึ้นเมื่อใช้แรงดันไฟฟ้าที่สูงกว่า (< 7.2V) ดังนั้นการประนีประนอมคือการใช้ระบบ 9Vdc และใช้คอนเวอร์เตอร์ DC-DC เพื่อจ่ายไฟให้กับโซลินอยด์และเซอร์โวที่ 6V ฉันเดาว่าตัวแปลง DC-DC สามารถทำได้และ Arduino เซอร์โวมอเตอร์และโซลินอยด์ทำงานของแหล่งจ่าย 6V (1A) เดียวกัน ขอแนะนำให้ใช้ตัวเก็บประจุ 100uF เพื่อกรอง Arduino ออกจากเซอร์โวและโซลินอยด์

2. ตัวควบคุมที่ฉันทำขึ้นดึงกระแสไฟนิ่งประมาณ 200mA เมื่อโซลินอยด์และเซอร์โวทำงาน กระแสดึงอยู่ที่ประมาณ 1A

จอแสดงผล LED สามารถปิดได้ด้วยสวิตช์เพื่อประหยัดพลังงานแบตเตอรี่

เมื่อพิจารณาว่าประตูใช้เวลาประมาณ 7 วินาทีในการเปิดหรือปิด และการดำเนินการเปิดและปิดเกิดขึ้นเพียง 2 ครั้งต่อวันที่ 1A ในการประเมินการใช้พลังงานในแต่ละวันนั้นถูกละเลย

สามารถใช้ปลั๊กแพ็ค 1A 9V ได้ แต่ชุดปลั๊กหลักและปลั๊กจะต้องได้รับการปกป้องจากสภาพอากาศ

3. การใช้พลังงานรายวันคำนวณเป็น 24h x 200mA = 4800mAh แบตเตอรี่ตะกั่วกรดขนาด 7Ah ที่มีแผงโซลาร์เซลล์ 20W น่าจะเพียงพอสำหรับอิสระในหนึ่งวันในพื้นที่ที่มีไข้แดดเฉลี่ย 5 ชั่วโมงต่อปี แต่ด้วยแบตเตอรี่ที่มากขึ้นและแผงที่ใหญ่ขึ้น จะมีเวลาอิสระมากขึ้น

ฉันใช้เครื่องคำนวณออนไลน์ต่อไปนี้เพื่อประเมินขนาดแบตเตอรี่และแผง:

www.telcoantenas.com.au/site/solar-power-…

ขั้นตอนที่ 9: คำแนะนำการใช้งานของผู้ใช้

คำแนะนำการใช้งานของผู้ใช้
คำแนะนำการใช้งานของผู้ใช้
คำแนะนำการใช้งานของผู้ใช้
คำแนะนำการใช้งานของผู้ใช้
คำแนะนำการใช้งานของผู้ใช้
คำแนะนำการใช้งานของผู้ใช้

ประตูทำงานในโหมดอัตโนมัติหรือด้วยตนเอง

โหมดอัตโนมัติหมายความว่าประตูจะเปิดหรือปิดตามการตั้งค่าเวลาเปิดหรือปิด โหมดอัตโนมัติจะแสดงด้วยหน้าจอเปล่าเมื่อตั้งสวิตช์การแสดงผลเป็น "ว่าง" เมื่อโหมดเปลี่ยนจากแมนนวลเป็นอัตโนมัติ คำว่า 'AUTO' จะกะพริบเป็นเวลา 200mS

ประตูจะเข้าสู่โหมดแมนนวลทุกครั้งที่เปิดใช้งานรีโมทหรือสวิตช์บนตัวควบคุม โหมดแมนนวลมีความหมายเมื่อจอแสดงผลแสดง "OPEn" หรือ "CLSd" โดยตั้งสวิตช์การแสดงผลเป็น "ว่าง"

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

หากต้องการเปลี่ยนกลับเป็นโหมดอัตโนมัติ ผู้ใช้จะต้องกดปุ่มปิดอีกครั้งหากประตูปิดไปแล้ว หรือกดปุ่มเปิดอีกครั้งหากประตูปิดแล้ว

ประตูเริ่มในโหมดอัตโนมัติเมื่อเริ่มต้นวัน (00:00 น.)

ขั้นตอนที่ 10: ระฆังและนกหวีด

การปรับปรุงในอนาคตบางอย่างอาจรวมถึง:

กริ่งประตูไร้สายเพื่อส่งสัญญาณเมื่อประตูเปิด/ปิด

"สัญญาณเตือนติดขัด" หากระบบดึงกระแสเท่ากับโซลินอยด์และเซอร์โวนานกว่า 10 วินาที

Bluetooth และ App เพื่อกำหนดค่าคอนโทรลเลอร์

การเปิดและปิดที่ควบคุมด้วยอินเทอร์เน็ต

แทนที่จอแสดงผล LED ด้วย LCD เพื่อแสดงข้อมูลเพิ่มเติม

เลิกใช้โพเทนชิโอมิเตอร์ตั้งเวลาเปิด/ปิด และใช้สวิตช์สลับและสวิตช์โรตารี่ที่มีอยู่เพื่อตั้งเวลาเปิด/ปิด

แนะนำ: