สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ฮาร์ดแวร์
- ขั้นตอนที่ 2: ซอฟต์แวร์
- ขั้นตอนที่ 3: ประกอบ
- ขั้นตอนที่ 4: โมดูลการทำงาน
วีดีโอ: เซ็นเซอร์ประตูและล็อคโรงเก็บของที่ใช้แบตเตอรี่ Solar, ESP8266, ESP-Now, MQTT: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันสร้างเซ็นเซอร์ที่ใช้แบตเตอรี่เพื่อตรวจสอบประตูและสถานะการล็อกของโรงเก็บจักรยานระยะไกลของฉันได้อย่างไร ฉันไม่มีไฟหลัก ดังนั้นฉันจึงใช้พลังงานจากแบตเตอรี่ แบตเตอรี่ถูกชาร์จโดยแผงโซลาร์เซลล์ขนาดเล็ก
โมดูลได้รับการออกแบบสำหรับการทำงานที่ใช้พลังงานต่ำและทำงานบน ESP-07S ในสภาวะหลับลึก ซึ่งจะปลุกและตรวจสอบตำแหน่งประตูและล็อคทุกนาที อย่างไรก็ตาม เมื่อเปิดประตู โมดูลจะถูกปลุกด้วยวงจรฮาร์ดแวร์ง่ายๆ เพื่อส่งข้อมูล 'เปิดประตู' ทันที โมดูลสื่อสารผ่าน ESP-Now ซึ่งใช้เวลาในการส่งข้อมูลสั้นมาก โดยใช้พลังงานเพียงเล็กน้อย
ระบบอัตโนมัติในบ้านของฉันที่ทำงานบน Openhab และ Mosquitto จะจัดการข้อความและส่งข้อความที่น่าตกใจผ่าน Telegram หากการเตือนเปิดอยู่
เสบียง
ส่วนประกอบทั้งหมดซื้อจาก Aliexpress
- โมดูล ESP-07S ถูกเลือกสำหรับการเชื่อมต่อที่ง่ายดายของเสาอากาศภายนอกเพื่อเพิ่มช่วง ESP-Now
- บอร์ดชาร์จ TP4056 พร้อมระบบป้องกันแบตเตอรี่
- แบตเตอรี่ LiPo 18650
- สวิตช์กก (NO เพื่อตรวจสอบตำแหน่งประตู)
- สวิตช์สัมผัส (ตำแหน่งล็อคจอภาพ)
- แผงโซลาร์เซลล์ (6V, 0.6W)
- ทรานซิสเตอร์ ตัวต้านทาน ไดโอด คอนเนคเตอร์ (ดูแผนผัง)
ขั้นตอนที่ 1: ฮาร์ดแวร์
แผนผังที่สร้างขึ้นจะรวมเป็นรูปภาพ ก่อนอื่นฉันสร้างต้นแบบวงจรบนเขียงหั่นขนม จากนั้นฉันก็บัดกรีส่วนประกอบทั้งหมดบนบอร์ดที่สมบูรณ์แบบ
ฉันใช้โมดูล ESP-07S ESP8266 เนื่องจากมีการเชื่อมต่อเสาอากาศภายนอก เนื่องจากโรงจอดรถของฉันอยู่ข้างนอก สัญญาณ WiFi จึงต้องผ่านกำแพงคอนกรีต ฉันพบว่าเสาอากาศภายนอกเพิ่มช่วงของ ESP-Now อย่างมาก ค่อนข้างสมเหตุสมผลเนื่องจากเป็นสัญญาณ WiFi
สำหรับเซ็นเซอร์ประตู ฉันใช้สวิตช์กกที่มีการเชื่อมต่อ botn NO และ NC เมื่อปิดประตู แม่เหล็กที่ติดอยู่กับสวิตช์จะเปิดขึ้น โมดูลจะตรวจสอบสถานะประตูและล็อคทุก 60 วินาที แต่เมื่อเปิดประตู ฉันต้องการรับการแจ้งเตือนทันที ดังนั้นฉันจึงใช้วงจรรีเซ็ต ดูด้านล่าง
สำหรับเซ็นเซอร์ล็อค ฉันใช้สวิตช์หน้าสัมผัสที่มีการเชื่อมต่อ botn NO และ NC เมื่อปิดล็อค สลักล็อคจะเปิดสวิตช์ ดังนั้นทั้งเซ็นเซอร์ประตูและเซ็นเซอร์ล็อคจึงเปิดตามปกติ (NO)
แบตเตอรี่ชาร์จผ่านแผงชาร์จ TP4056 พร้อมตัวป้องกันแบตเตอรี่ติดอยู่กับแผงโซลาร์เซลล์ขนาดเล็ก 6V
ฉันจะอธิบายบางส่วนของวงจรด้านล่าง
รีเซ็ตวงจร
วงจรรีเซ็ตที่มี 2N7000 Mosfet เชื่อมต่อกับพินรีเซ็ตของ ESP8266 ถ้าประตูปิด หน้าสัมผัสจะเปิด ทั้งเกทและต้นทางของทรานซิสเตอร์จะสูงและปิดมอสเฟต ตัวเก็บประจุที่เชื่อมต่อกับเกตมีประจุบวก ESP8266 รีด GPIO12 เป็น HIGH = ปิด
เมื่อเปิดประตู แหล่งกำเนิดของมอสเฟตจะเชื่อมต่อกับกราวด์ เนื่องจากเกตอยู่สูง มอสเฟตจึงถูกเปิดและดึงพินรีเซ็ตลงกราวด์ ส่งผลให้ ESP8266 รีเซ็ต ตัวเก็บประจุจะคายประจุผ่าน R7 จากนั้นจึงปิดมอสเฟต ดูภาพหน้าจอของออสซิลโลสโคปของฉันสำหรับชีพจรต่ำ 50 มิลลิวินาที หลังจากชีพจรแล้ว ESP8266 ก็เริ่มทำงาน ESP8266 รีด GPIO12 เป็น LOW = เปิด
เมื่อปิดประตูอีกครั้ง ตัวต้านทาน R6 จะดึงแหล่งสัญญาณและ GPIO12 ขึ้น
การตรวจสอบแบตเตอรี่
แรงดันไฟฟ้าของแบตเตอรี่อ่านผ่านตัวแบ่งแรงดันระหว่าง VBat และ GND อย่างไรก็ตาม ฉันไม่ต้องการการเชื่อมต่อแบบถาวรระหว่าง VBat และ GND เพราะจะทำให้แบตเตอรี่หมด ดังนั้นฉันจึงใส่มอสเฟต P-channel ที่ด้านสูงของตัวแบ่งแรงดันและดึงเกทของมอสเฟตขึ้น ดังนั้นมอสเฟตจึงปิด เฉพาะเมื่อ GPIO14 ต่ำ มอสเฟตจะถูกเปิดและ ESP8266 สามารถรีดแรงดันไฟฟ้าด้วย ADC ได้
ขั้นตอนที่ 2: ซอฟต์แวร์
โมดูล ESP8266 ส่วนใหญ่อยู่ในโหมดหลับลึกเพื่อประหยัดพลังงาน
ทุกๆ 60 วินาที โมดูลจะบู๊ตโดยปิดใช้งาน WiFi และวัดตำแหน่งล็อคและประตู และตรวจสอบว่าตำแหน่งเหล่านี้เปลี่ยนไปหรือไม่เมื่อเทียบกับค่าที่เก็บไว้ในหน่วยความจำ RTC หากตำแหน่งมีการเปลี่ยนแปลง โมดูลจะเข้าสู่โหมดสลีปเป็นเวลาขั้นต่ำและปลุกด้วยการเปิดใช้งาน WiFi เพื่อส่งตำแหน่งใหม่ผ่าน ESP-Now และแน่นอนว่าตำแหน่งใหม่จะถูกเก็บไว้ในหน่วยความจำ RTC หากไม่มีอะไรเปลี่ยนแปลง โมดูลก็จะเข้าสู่โหมดสลีปอีกครั้งและปลุกโดยปิด WiFi
ดูคำแนะนำอื่น ๆ ของฉันที่ฉันอธิบายวิธีที่ฉันใช้ ESP-Now เพื่อส่งข้อความและแปลงเป็นข้อความ MQTT
หาก 'วงจร OTA' ถูกปิดด้วยตนเองผ่านจัมเปอร์ โมดูลจะทำงานและเชื่อมต่อกับเครือข่าย WiFi ของฉันเพื่อรอการอัปเดต OTA ผ่าน ESP8266HTTPUpdateServer
ทุกๆ 30 นาที แรงดันไฟฟ้าของแบตเตอรี่จะถูกวัดและเผยแพร่
มันทำงานเป็นเครื่องของรัฐ สถานะถูกกำหนดไว้ในโปรแกรมที่เผยแพร่บน Github ของฉัน
STATE_CHECK: ปลุกโดยปิดวิทยุ (ปิด WiFi) เพียงตรวจสอบว่ามีอะไรเปลี่ยนแปลงหรือไม่
STATE_INIT: ปลุกโดยเปิดวิทยุ (เปิด WiFi) และส่งสถานะประตูและล็อค
STATE_DOOR: ตื่นขึ้นมาพร้อมกับเปิดวิทยุ เผยแพร่ doorstate ครั้งหน้าที่เปิดขึ้น
STATE_LOCK: ปลุกโดยเปิดวิทยุ เผยแพร่สถานะล็อกในครั้งต่อไปที่บูทขึ้น
STATE_VOLTAGE: ปลุกโดยเปิดวิทยุ เผยแพร่แรงดันไฟฟ้าในครั้งต่อไปที่บูทขึ้น
STATE_OTA 5: ปลุกโดยเปิดวิทยุ ไปที่โหมด OTA
ขั้นตอนที่ 3: ประกอบ
ฉันใช้ขั้วต่อสกรูและขั้วต่อ DC ตัวผู้/ตัวเมียเพื่อให้สามารถประกอบและถอดแยกชิ้นส่วนโครงการของฉันได้ ฉันใส่ชิ้นส่วนทั้งหมดในกล่อง ABS ขนาดเล็กดูรูปภาพ ฉันห่อหุ้มชิ้นส่วนด้วยเทป Kapton เพื่อแยกไฟฟ้า
ฉันเชื่อมต่อแผงโซลาร์เซลล์ผ่านปลั๊ก DC ตัวผู้ (5.5 x 2.1) กับไดโอด 1N5817 ซึ่งมีแรงดันไฟฟ้าไปข้างหน้าต่ำ
สวิตช์กกติดอยู่ในกล่องและติดแม่เหล็กที่ประตูในตำแหน่งที่ถูกต้อง
หน้าสัมผัสล็อคถูกป้อนจากด้านข้างดูรูป
ขั้นตอนที่ 4: โมดูลการทำงาน
ข้อมูลที่ได้รับจะถูกอ่านโดยระบบอัตโนมัติภายในบ้านของ Openhab ฉันชอบฉันสามารถโพสต์ไฟล์ Openhab
ฉันตรวจสอบ:
- แรงดันไฟฟ้าของแบตเตอรี่ (ด้วยความคงอยู่ดังนั้นฉันจึงเห็นแรงดันไฟฟ้าเมื่อเวลาผ่านไปในกราฟ)
- ตำแหน่งประตูและล็อค
- เวลาที่ตำแหน่งมีการเปลี่ยนแปลง
ด้วยวิธีนี้ เมื่อฉันเข้านอน ฉันสามารถดูได้อย่างง่ายดายว่าเพิงทั้งหมดถูกล็อคหรือไม่
ฉันเริ่มใช้งานแบตเตอรี่ถูกชาร์จในวันที่สดใสและหลังจากนั้นประมาณหนึ่งสัปดาห์แบตเตอรี่ก็ถูกชาร์จจนเต็ม ตอนนี้ในฤดูใบไม้ร่วง แบตเตอรี่ยังคงชาร์จอยู่ เห็นได้ชัดว่าโมดูลนี้ประหยัดมากและใช้พลังงานน้อยกว่าแผงโซลาร์เซลล์ขนาดเล็กมาก แบตเตอรีที่อ้วนอาจมีพลังในความมืดสองสามเดือน มาดูกันว่าโมดูลทำงานอย่างไรในฤดูหนาวนี้ เมื่ออุณหภูมิในโรงเก็บลดลงมาก
แนะนำ:
ระบบอัตโนมัติภายในบ้านที่ควบคุมด้วยอินเทอร์เน็ต/คลาวด์โดยใช้ Esp8266 (aREST, MQTT, IoT): 7 ขั้นตอน (พร้อมรูปภาพ)
ระบบอัตโนมัติภายในบ้านที่ควบคุมด้วยอินเทอร์เน็ต/คลาวด์โดยใช้ Esp8266 (aREST, MQTT, IoT): เครดิตทั้งหมดไปที่ http://arest.io/ สำหรับบริการคลาวด์!!IoT หัวข้อที่มีคนพูดถึงมากที่สุดในโลกในขณะนี้!! เซิร์ฟเวอร์และบริการบนคลาวด์ที่ทำให้สิ่งนี้เป็นไปได้คือจุดดึงดูดของโลกปัจจุบัน…การขจัดสิ่งกีดขวางระยะทางเคยเป็นและเป็น
ปุ่มกดนาฬิกาปลุก MQTT ESP8266: 4 ขั้นตอน (พร้อมรูปภาพ)
ปุ่มกดสัญญาณเตือน MQTT ESP8266: ในคำแนะนำนี้ ผมจะแสดงให้คุณเห็นว่าฉันสร้างปุ่มกดที่ใช้พลังงานจากแบตเตอรี่เพื่อเปิดใช้งานและปิดใช้งานการเตือนที่บ้านได้อย่างไร ในอนาคต ฉันวางแผนที่จะทำการปรับปรุงซึ่งมีเครื่องอ่าน RFID รวมอยู่ด้วยและไม่ได้ใช้พลังงานจากแบตเตอรี่ นอกจากนี้ฉันวางแผนที่จะอ่านปุ่มกดผ่าน
เริ่มต้นใช้งาน Esp 8266 Esp-01 ด้วย Arduino IDE - การติดตั้งบอร์ด Esp ใน Arduino Ide และการเขียนโปรแกรม Esp: 4 ขั้นตอน
เริ่มต้นใช้งาน Esp 8266 Esp-01 ด้วย Arduino IDE | การติดตั้งบอร์ด Esp ใน Arduino Ide และการเขียนโปรแกรม Esp: ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้งบอร์ด esp8266 ใน Arduino IDE และวิธีตั้งโปรแกรม esp-01 และอัปโหลดโค้ดในนั้น เนื่องจากบอร์ด esp ได้รับความนิยมอย่างมาก และคนส่วนใหญ่ประสบปัญหา
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266: 8 ขั้นตอน (พร้อมรูปภาพ)
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266: ในคำแนะนำนี้ ฉันจะอธิบายว่าโปรโตคอล MQTT คืออะไรและใช้อย่างไรในการสื่อสารระหว่างอุปกรณ์ต่างๆ จากนั้นในการสาธิตเชิงปฏิบัติ ฉันจะแสดงวิธีตั้งค่าสองอย่างง่ายๆ ระบบไคลเอ็นต์ โดยที่โมดูล ESP8266 จะส่งข้อความ
คณะกรรมการการเขียนโปรแกรมและการพัฒนา ESP-12E และ ESP-12F: 3 ขั้นตอน (พร้อมรูปภาพ)
คณะกรรมการการเขียนโปรแกรมและการพัฒนา ESP-12E และ ESP-12F: การชำระเงินสำหรับบอร์ดนี้ทำได้ง่าย: สามารถตั้งโปรแกรมโมดูล ESP-12E และ ESP-12F ได้อย่างง่ายดายเหมือนกับบอร์ด NodeMCU (เช่น ไม่จำเป็นต้องกดปุ่ม) มีหมุดที่เป็นมิตรกับเขียงหั่นขนมพร้อมการเข้าถึง IO ที่ใช้งานได้ ใช้ USB แยกต่างหากเพื่อคอนเวอร์