สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: แผนผังและซอร์สโค้ด
- ขั้นตอนที่ 2: การทำงานของวงจร
- ขั้นตอนที่ 3: ตรวจสุขภาพ
- ขั้นตอนที่ 4: การวัดพลังงานและอายุการใช้งานแบตเตอรี่
- ขั้นตอนที่ 5: การปรับปรุงในอนาคต
วีดีโอ: Wireless Door Sensor - Ultra Low Power: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เซ็นเซอร์ประตูอีกตัว !! แรงจูงใจสำหรับฉันในการสร้างเซ็นเซอร์นี้คือสิ่งที่ฉันเห็นบนอินเทอร์เน็ตมีข้อจำกัดอย่างใดอย่างหนึ่ง เป้าหมายบางประการของเซ็นเซอร์สำหรับฉันคือ:
1. เซ็นเซอร์ควรเร็วมาก - ควรน้อยกว่า 5 วินาที
2. เซ็นเซอร์ควรใช้แบตเตอรี่ Li-ion 3.7V เนื่องจากฉันมีแบตเตอรี่หลายสิบก้อนอยู่รอบๆ
3. เซ็นเซอร์ควรทำงานเป็นเวลาหลายเดือนโดยชาร์จแบตเตอรี่เพียงครั้งเดียว มันควรจะกิน < 10uA ในโหมดสลีป
4. เซ็นเซอร์ควรปลุกเพื่อส่งข้อมูลที่สำคัญ เช่น สถานะแบตเตอรี่ แม้ว่าจะไม่ได้ใช้งานประตูเป็นเวลานานก็ตาม
5. เซ็นเซอร์ควรส่งข้อมูลไปยังหัวข้อ MQTT เมื่อเปิดประตูและเมื่อประตูปิด
6. เซ็นเซอร์ควรใช้พลังงานในปริมาณเท่ากันโดยไม่คำนึงถึงสถานะของประตู
การทำงานของเซ็นเซอร์:
เซ็นเซอร์มีตัวควบคุมหลัก 2 ตัว อย่างแรกคือไมโครคอนโทรลเลอร์ขนาดเล็ก ATiny 13A ประการที่สองคือ ESP ซึ่งมักจะอยู่ในโหมดสลีปและตื่นขึ้นเมื่อ ATiny เปิดใช้งานเท่านั้น วงจรทั้งหมดสามารถทำได้โดยใช้ ESP โดยใช้ในโหมดสลีป แต่กระแสไฟที่ใช้นั้นมากกว่าที่จำเป็นสำหรับแบตเตอรี่ที่จะใช้งานได้นานหลายเดือน ดังนั้น ATTiny จึงเข้ามาช่วยเหลือ ใช้เพื่อปลุกทุก N วินาทีเท่านั้น มองหาเหตุการณ์ที่ประตูหรือตรวจสุขภาพ หากมี จะถือ CH_PD pin ของ ESP ไปที่ HIGH และส่งสัญญาณที่เหมาะสมของประเภทของเหตุการณ์ไปยัง ESP. บทบาทของมันจบลงที่นั่น
จากนั้น ESP จะเข้าควบคุม อ่านประเภทสัญญาณ เชื่อมต่อกับ WiFi/MQTT เผยแพร่ข้อความที่จำเป็นรวมถึงระดับแบตเตอรี่ จากนั้นปิดตัวเองโดยนำพิน EN กลับไปที่ LOW
เมื่อใช้ชิปเหล่านี้ ฉันจะใช้ประโยชน์จากกระแสสลีปต่ำของ ATtiny และกระแสไฟที่ว่างเป็นศูนย์ของ ESP เมื่อชิปถูกปิดใช้งานผ่านพิน CH_PD
เสบียง
ข้อกำหนดเบื้องต้น:
- ความรู้เกี่ยวกับการเขียนโปรแกรม ATTiny & ESP 01
- ความรู้เกี่ยวกับการบัดกรีส่วนประกอบบน PCB
ESP-01 (หรือ ESP ใด ๆ)
ATTiny 13A - AVR
LDO 7333-A - ตัวควบคุมแรงดันไฟตกคร่อมต่ำ
ตัวต้านทาน - 1K, 10K, 3K3
ตัวเก็บประจุ: 100uF, 0.1 uF
สวิตช์ปุ่มกด, สวิตช์เปิด/ปิดไมโคร - (ทั้งสองตัวเลือก)
ไดโอด - IN4148 (หรือเทียบเท่า)
แบตเตอรี่ลิเธียมไอออน
รีดสวิทช์
กรณีที่จะบ้านมันทั้งหมด
บัดกรี, PCB ฯลฯ
ขั้นตอนที่ 1: แผนผังและซอร์สโค้ด
Schematics ดังแสดงในไดอะแกรมที่แนบมา
ฉันได้รวม P Channel MOSFET สำหรับการป้องกันขั้วย้อนกลับ หากคุณไม่ต้องการสิ่งนี้ คุณสามารถละเว้นได้ P Channel MOSFET ใด ๆ ที่มี Rds ON ต่ำจะทำ
ในปัจจุบัน ESP ไม่มีความสามารถของ OTA แต่สำหรับการปรับปรุงในอนาคต
ซอร์สโค้ด smart-door-sensor
ขั้นตอนที่ 2: การทำงานของวงจร
ATTiny เวิร์กโฟลว์
ความมหัศจรรย์เกิดขึ้นจากการที่ ATTiny ตรวจสอบตำแหน่งของสวิตช์ประตู
ตัวเลือกปกติคือติดตัวต้านทานแบบดึงขึ้นกับสวิตช์และตรวจสอบสถานะต่อไป สิ่งนี้มีข้อเสียของกระแสคงที่ที่ใช้โดยตัวต้านทานแบบดึงขึ้น วิธีหลีกเลี่ยงสิ่งนี้คือฉันใช้หมุดสองตัวเพื่อตรวจสอบสวิตช์แทนที่จะเป็นตัวเดียว ฉันได้ใช้ PB3 & PB4 ที่นี่ PB3 ถูกกำหนดเป็นอินพุตและ PB4 เป็นเอาต์พุตที่มี INPUT_PULLUP ภายในบน PB3 โดยปกติ PB4 จะอยู่ในระดับสูงเมื่อ ATtiny อยู่ในโหมดสลีป เพื่อให้แน่ใจว่าไม่มีกระแสไหลผ่านอินพุตดึงตัวต้านทานโดยไม่คำนึงถึงตำแหน่งของสวิตช์กก เช่น. หากปิดสวิตช์ ทั้ง PB3 และ PB4 จะสูง ดังนั้นจึงไม่มีกระแสไหลระหว่างกัน หากสวิตช์เปิดอยู่ แสดงว่าไม่มีเส้นทางระหว่างสวิตช์ ดังนั้นกระแสจึงเป็นศูนย์ เมื่อ ATtiny ตื่นขึ้น มันจะเขียน LOW บน PB4 จากนั้นตรวจสอบสถานะของ PB3 หาก PB3 สูง สวิตช์กกจะเปิด มิฉะนั้นจะปิด จากนั้นเขียนกลับค่า HIGH บน PB4
การสื่อสารระหว่าง ATtiny & ESP เกิดขึ้นผ่านสองพิน PB1 / PB2 ที่เชื่อมต่อกับ Tx/RX ของ ESP ฉันได้กำหนดสัญญาณเป็น
PB1 PB2 ====== Tx Rx
0 0 ====== WAKE_UP (ตรวจสุขภาพ)
0 1 ====== SENSOR_OPEN
1 0 ====== SENSOR_CLOSED
1 1 ====== ไม่ได้ใช้
นอกจากการส่งสัญญาณไปยัง ESP แล้ว มันยังส่งพัลส์สูงบน PB0 ซึ่งเชื่อมต่อกับพิน ESP CH_PD สิ่งนี้จะปลุก ESP สิ่งแรกที่ ESP ทำคือเก็บ GPIO0 HIGH ซึ่งเชื่อมต่อกับ CH_PD ดังนั้นจึงมั่นใจได้ว่าจะมีพลังงานเพิ่มขึ้นแม้ว่า ATTiny จะนำ PB0 HIGH ออกไป ขณะนี้การควบคุมอยู่กับ ESP เพื่อกำหนดว่าเมื่อใดที่ต้องการปิดเครื่อง
จากนั้นจะเชื่อมต่อกับ WiFi, MQTT โพสต์ข้อความและปิดตัวเองโดยเขียน LOW บน GPIO0
ESP 01 ขั้นตอนการทำงาน:
ESP ไหลตรงไปข้างหน้า โดยจะปลุกและอ่านค่าของหมุด Tx/Rx เพื่อกำหนดประเภทของข้อความที่จะโพสต์ เชื่อมต่อกับ WiFi และ MQTT โพสต์ข้อความและปิดตัวเอง
ก่อนที่จะปิดเครื่อง เครื่องจะตรวจสอบค่าของพินอินพุตอีกครั้งเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่ตั้งแต่อ่านครั้งสุดท้าย นี่คือการดูแลการเปิดและปิดประตูอย่างรวดเร็ว หากคุณไม่มีเช็คนี้ อาจมีบางกรณีที่คุณอาจพลาดการปิดประตูหากปิดภายใน 5-6 วินาทีหลังจากเปิด สถานการณ์ที่ใช้งานได้จริงของประตูที่เปิดและปิดภายใน 2 วินาทีหรือมากกว่านั้นจะถูกบันทึกโดยลูป while ซึ่งจะคอยโพสต์ข้อความตราบเท่าที่สถานะปัจจุบันของประตูแตกต่างจากสถานะก่อนหน้า สถานการณ์เดียวที่อาจพลาดการบันทึกเหตุการณ์เปิด/ปิดทั้งหมดคือเมื่อประตูเปิด/ปิดซ้ำๆ ภายในหน้าต่าง 4-5 วินาที ซึ่งเป็นกรณีที่ไม่น่าจะเกิดขึ้นได้มาก - อาจเป็นกรณีของเด็กบางคนกำลังเล่นกับประตู
ขั้นตอนที่ 3: ตรวจสุขภาพ
ฉันยังต้องการวิธีให้ข้อความตรวจสุขภาพจาก ESP ซึ่งส่งระดับแบตเตอรี่ของ ESP ด้วยเพื่อให้แน่ใจว่าเซ็นเซอร์ทำงานได้ดีโดยไม่ต้องตรวจสอบด้วยตนเอง สำหรับสิ่งนี้ ATTiny จะส่งสัญญาณ WAKE_UP ทุก 12 ชั่วโมง สามารถกำหนดค่าผ่านตัวแปร WAKEUP_COUNT ในรหัส ATtiny วิธีนี้มีประโยชน์มากสำหรับประตูหรือหน้าต่างที่ไม่ค่อยได้เปิด คุณจึงอาจไม่ทราบว่ามีสิ่งใดผิดปกติกับเซ็นเซอร์หรือแบตเตอรี่ของเซ็นเซอร์หรือไม่
ในกรณีที่คุณไม่จำเป็นต้องใช้ฟังก์ชันการตรวจสุขภาพ แนวคิดทั้งหมดของการใช้ ATTiny ก็ไม่จำเป็น ในกรณีดังกล่าว คุณจะพบกับการออกแบบอื่นๆ ที่ผู้คนสร้างขึ้นโดยที่การจ่ายไฟให้กับ ESP นั้นถูกป้อนผ่าน MOSFET ดังนั้นคุณจึงสามารถดึงกระแสไฟเป็นศูนย์ได้เมื่อไม่ได้ใช้งานประตู มีสิ่งอื่นที่ต้องดูแลเช่นการดึงปัจจุบันให้เหมือนกันในตำแหน่งเปิดประตูและปิดประตู - เพื่อการนั้นฉันเห็นการออกแบบที่ใช้สวิตช์กก 3 สถานะแทน 2 สถานะปกติ
ขั้นตอนที่ 4: การวัดพลังงานและอายุการใช้งานแบตเตอรี่
ฉันได้วัดการใช้กระแสไฟของวงจรแล้วและใช้เวลาประมาณ 30uA เมื่อนอนหลับและรอบๆ ตามแผ่นข้อมูลของ ATTiny ควรอยู่ที่ประมาณ 1-4 uA สำหรับวงจรทั้งหมดรวมถึงกระแสไฟนิ่งของ LDO แต่จากนั้นการวัดของฉันจะแสดง 30 MOSFET และ LDO ใช้กระแสไฟที่ไม่มีนัยสำคัญ
ดังนั้นแบตเตอรี่ขนาด 800 mAh ควรมีอายุการใช้งานยาวนาน ฉันไม่มีสถิติที่แน่นอน แต่ฉันใช้มันกับประตู 2 ประตูของฉันมานานกว่าหนึ่งปีแล้วและเซลล์ 18650 แต่ละเซลล์ที่มี 800mAH เหลืออยู่ในนั้นใช้เวลาประมาณ 5-6 เดือนที่ประตูหลักของฉันซึ่งเปิดและปิดที่ อย่างน้อย 30 ครั้งต่อวัน ประตูบนหลังคาซึ่งเปิดไม่กี่ครั้งในหนึ่งสัปดาห์ อยู่ได้ 7-8 เดือน
ขั้นตอนที่ 5: การปรับปรุงในอนาคต
1. ESP ไม่รับทราบการส่งข้อความ MQTT สามารถปรับปรุงโปรแกรมได้โดยสมัครรับหัวข้อที่เผยแพร่ข้อความเพื่อยืนยันการส่ง หรือสามารถใช้ไลบรารี Async MQTT เพื่อโพสต์ข้อความด้วย QoS 1
2. การอัปเดต OTA: คุณสามารถแก้ไขรหัส ESP เพื่ออ่านหัวข้อ MQTT สำหรับการอัปเดตได้ ดังนั้นให้เข้าสู่โหมด OTA เพื่อรับไฟล์
3. ESP01 สามารถแทนที่ด้วย ESP-12 เพื่อเข้าถึง PIN อินพุตเพิ่มเติม และสามารถแนบเซ็นเซอร์เพิ่มเติมเข้ากับชุดเดียวกันได้ ในกรณีนั้นจะไม่สามารถสื่อสารผ่านวิธี 2 บิตได้ สิ่งนี้สามารถปรับปรุงเพื่อใช้การสื่อสาร I2C ระหว่าง ATtiny & ESP สิ่งนี้ค่อนข้างซับซ้อน แต่ใช้งานได้ ฉันให้มันทำงานในการตั้งค่าอื่นที่ ATTiny ส่งค่าตัวเข้ารหัสแบบหมุนไปยัง ESP ผ่านสาย I2C
4. วงจรปัจจุบันจะตรวจสอบ Vcc ภายในของ ESP หากเราใช้ ESP12 สิ่งนี้สามารถปรับเปลี่ยนเพื่ออ่านระดับแบตเตอรี่จริงผ่านพิน ADC
5. ในอนาคต ฉันจะโพสต์การแก้ไขในส่วนนี้ด้วย ซึ่งสามารถใช้เป็นเซ็นเซอร์แบบสแตนด์อโลนได้โดยไม่ต้องใช้ MQTT หรือระบบอัตโนมัติในบ้านใดๆ เซ็นเซอร์จะทำงานแบบสแตนด์อโลนและสามารถโทรออกได้เมื่อถูกกระตุ้น - แน่นอนว่าต้องมีการเชื่อมต่ออินเทอร์เน็ตสำหรับสิ่งนี้
6. และรายการดำเนินต่อไป…
7. การป้องกันแบตเตอรี่ย้อนกลับ - เสร็จสิ้น (ภาพอุปกรณ์จริงเป็นภาพเก่าและไม่สะท้อน MOSFET)
แนะนำ:
Magnetic Switch Door Alarm Sensor, ปกติเปิด, โครงการอย่างง่าย, ทำงาน 100%, รหัสที่มาที่กำหนด: 3 ขั้นตอน
Magnetic Switch Door Alarm Sensor, ปกติเปิด, โครงการอย่างง่าย, ทำงาน 100%, รหัสที่มา: คำอธิบาย:สวัสดีทุกคน ฉันจะทำการสอนเกี่ยวกับ MC-18 Magnetic Switch Sensor Alarm ที่ทำงานในโหมดเปิดตามปกติ ประเภทสวิตช์: NO (แบบปิดปกติ) วงจรเปิดตามปกติ และวงจรจะเชื่อมต่อเมื่อแม่เหล็กอยู่ใกล้ ต้นอ้อ
DIY Door Sensor เพื่อความปลอดภัยโดยใช้ ESP8266: 3 ขั้นตอน
DIY Door Sensor for Security โดยใช้ ESP8266: ปกป้องบ้านของคุณโดยใช้เซ็นเซอร์ประตูอัจฉริยะที่ออกแบบอย่างสมบูรณ์โดยใช้เทคโนโลยีโอเพ่นซอร์ส ในวิดีโอนี้ เราจะสร้างอุปกรณ์ที่จะตรวจจับว่าประตูเปิดหรือปิดและส่งข้อมูลไปยังสมาร์ทโฟนของคุณโดยใช้ เซิร์ฟเวอร์ BLYNK พร้อม
สร้าง 2GIG Like Door Sensor ในราคาประมาณ 4 ดอลลาร์ ขึ้นอยู่กับปริมาณการซื้อ: 6 ขั้นตอน
สร้าง 2GIG Like Door Sensor ในราคาประมาณ 4 เหรียญสหรัฐ ขึ้นอยู่กับปริมาณการซื้อ: คู่มือนี้จะแสดงขั้นตอนที่คุณสามารถทำตามเพื่อสร้างเซ็นเซอร์ประตูรักษาความปลอดภัยที่เข้ากันได้ซึ่งยังคงดูโฉบเฉี่ยวและมีต้นทุนต่ำมาก
Wireless Power Monitor: 6 ขั้นตอน (พร้อมรูปภาพ)
Wireless Power Monitor: ตรวจสอบการใช้พลังงานของอุปกรณ์อิเล็กทรอนิกส์ของคุณจากระยะไกลผ่านแอพ Blynk บนมือถือ อุปกรณ์ที่เรียบง่ายนี้ใช้ไมโครคอนโทรลเลอร์ D1 Mini เชื่อมต่อแหล่งพลังงานของคุณผ่านช่องสัญญาณอินพุต DC และอุปกรณ์ของคุณผ่านเอาต์พุต DC ผู้พัฒนาการมอนิเตอร์
DIY Wireless Mic to Wireless Guitar System: 4 ขั้นตอน
DIY Wireless Mic to Wireless Guitar System: ฉันเคยดู vids และบางวงแล้ว และเกือบทั้งหมดใช้ระบบไร้สายกับกีตาร์ คลั่งไคล้ เคลื่อนไหว เดิน และทำทุกอย่างที่พวกเขาต้องการโดยไม่มีเชือกผูกไว้ ฉันจึงฝันที่จะมีมัน.. แต่.. สำหรับฉันตอนนี้มันแพงเกินไป ฉันเลยคิดขึ้นมาได้ว่า