สารบัญ:

สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษด้วย ESP8266: 3 ขั้นตอน
สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษด้วย ESP8266: 3 ขั้นตอน

วีดีโอ: สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษด้วย ESP8266: 3 ขั้นตอน

วีดีโอ: สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษด้วย ESP8266: 3 ขั้นตอน
วีดีโอ: การพ่นทรายลงบนรางเมื่อรถไฟวิ่ง 2024, กรกฎาคม
Anonim
สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษพร้อม ESP8266
สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษพร้อม ESP8266
สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษพร้อม ESP8266
สัญญาณเตือนน้ำท่วมชั้นใต้ดินพลังงานต่ำพิเศษพร้อม ESP8266

สวัสดียินดีต้อนรับสู่การสอนครั้งแรกของฉัน

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

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

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

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

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

ขั้นตอนที่ 1: แผนผัง:

แผนผัง
แผนผัง

อะไหล่

  • D1: BAT46 Schottky-diode สำหรับการตื่นนอนลึก ฉันมีประสบการณ์ที่ดีกว่ากับไดโอด Schottky มากกว่าตัวต้านทานระหว่าง D0 และ RST
  • สวิตช์ลูกลอย: หลอดกกแบบธรรมดาราคา 1.2 เหรียญและสวิตช์ลอยตัวแบบแม่เหล็กจาก eBay วงแหวนที่มีแม่เหล็กสามารถย้อนกลับเพื่อเปลี่ยนระหว่างการสลับระดับของเหลวสูงและต่ำได้ ลิงค์อีเบย์
  • ที่ใส่แบตเตอรี่: สำหรับแบตเตอรี่ AAA 1.5V 2 ก้อน
  • P1: 2x 2P 5.08 มม. (200mil) ขั้วสกรูสำหรับเชื่อมต่อสายไฟจากแบตเตอรี่และสวิตช์ลูกลอย
  • C1: 1000uF 10V ตัวเก็บประจุเพื่อเพิ่มความเสถียรของ ESP ในขณะที่วิทยุเปิดอยู่ โปรดทราบว่าหาก ESP อยู่ในโหมดสลีป พลังงานที่เก็บไว้ในตัวเก็บประจุจะเพียงพอสำหรับการจ่ายไฟเป็นเวลา 3-4 นาที ในช่วงเวลานั้น การทำงานของสวิตช์ลูกลอยไม่สามารถรีสตาร์ท ESP ได้ เนื่องจากตัวเก็บประจุเปิดไว้ในขณะที่อยู่ในโหมดสลีป สิ่งนี้น่าสนใจเฉพาะระหว่างการทดสอบ
  • U1: ไมโครคอนโทรลเลอร์ LOLIN / Wemos D1 Mini Pro ESP8266 นี่คือรุ่นโปรที่มีขั้วต่อเสาอากาศภายนอก ซึ่งอาจเป็นประโยชน์เมื่อวางไว้ในห้องใต้ดิน โปรดทราบว่าคุณควรบัดกรี "ตัวต้านทาน" 0 โอห์ม SMD อีกครั้งเพื่อเลือกเสาอากาศภายนอกแทนเสาอากาศเซรามิกในตัวที่เป็นค่าเริ่มต้น ฉันแนะนำให้ซื้อไมโครคอนโทรลเลอร์ LOLIN จากร้านค้า LOLIN AliExpress อย่างเป็นทางการ เพราะมีบอร์ด Wemos / LOLIN รุ่นเก่าหรือปลอมจำนวนมาก
  • Perfboard: บอร์ดโปรโต 50 มม. * 50 มม. จะเพียงพอสำหรับใส่ชิ้นส่วนทั้งหมด วงจรง่ายเกินไปที่จะสร้าง PCB:)

โปรดทราบว่าแบตเตอรี่เชื่อมต่อกับอินพุต 3.3V แม้ว่า D1 Mini จะมี LDO ในตัวสำหรับการทำงานของ USB / LiPo แต่เราไม่ต้องการสิ่งนี้เมื่อใช้พลังงานจากแบตเตอรี่อัลคาไลน์ขนาด 3V ของ 2xAAA ด้วยการเชื่อมต่อนี้ D1 Mini ของฉันสามารถทำงานให้เสร็จได้ด้วยแรงดันไฟเพียง 1.8V เช่นกัน

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

โปรแกรมอาจจะดีกว่าหรือง่ายกว่านี้ก็ได้ แต่ส่วนต่างๆ ได้รับการพิสูจน์อย่างดีในโครงการอื่นๆ ของฉัน

ร่างนี้ใช้ไลบรารีต่อไปนี้:

ESP8266WiFi.h: ค่าเริ่มต้นสำหรับบอร์ด ESP8266

Gsender.h: ห้องสมุดผู้ส่ง Gmail จาก Borya สามารถดาวน์โหลดได้จากที่นี่

การไหลของโปรแกรมค่อนข้างง่าย

  • อีเอสพีเริ่มทำงาน
  • อ่านหน่วยความจำ RTC เพื่อตรวจสอบว่าเป็นการเริ่มต้นครั้งแรกหรือไม่
  • เชื่อมต่อกับ WiFi โดยใช้ฟังก์ชัน smartwifi() การดำเนินการนี้จะเชื่อมต่อกับ WiFi โดยใช้ที่อยู่ MAC ของเราเตอร์ (BSSID) และหมายเลขช่องสัญญาณเพื่อการเชื่อมต่อที่รวดเร็วยิ่งขึ้น ลองใหม่โดยไม่ผ่าน 100 ครั้งและเข้าสู่โหมดสลีปหลังจากพยายาม 600 ครั้ง ฟังก์ชันนี้มาจากร่างการประหยัดพลังงาน WiFi ของ OppoverBakke แต่ไม่มีการบันทึกข้อมูลการเชื่อมต่อไปยังส่วน RTC ในแอปพลิเคชันนี้
  • ตรวจสอบแรงดันไฟของแบตเตอรี่ด้วยคุณสมบัติ ESP ที่สร้างขึ้นใน ADC_MODE(ADC_VCC) / ESP.getVcc() ไม่ต้องใช้ตัวแบ่งแรงดันไฟภายนอกหรือสายไฟใดๆ กับ A0 เหมาะสำหรับแรงดันไฟฟ้าที่ต่ำกว่า 3.3V ซึ่งเป็นกรณีของเรา
  • ส่งอีเมลแจ้งเตือนด้วย Gsender.h ฉันเพิ่มตัวแปรและข้อความที่กำหนดเองไปที่หัวเรื่องและสตริงข้อความเพื่อรายงานแรงดันแบตเตอรี่ เวลาที่ผ่านไปตั้งแต่การตรวจจับครั้งแรกและคำแนะนำเกี่ยวกับการเปลี่ยนแบตเตอรี่ โปรดอย่าลืมเปลี่ยนที่อยู่อีเมลของผู้รับ

    • นอน

      • หากประสบความสำเร็จ มันจะหลับ "ตลอดไป" ด้วย ESP.deepSleep(0); โดยร่างกายจะอยู่ในโหมดสลีปจนกว่าระดับน้ำจะสูง ในทางเทคนิคแล้วจะใช้เวลาสองสามชั่วโมงหรือสูงสุดสองสามวัน ซึ่งจะไม่ทำให้แบตเตอรี่หมดด้วยกระแสไฟสลีปของ uA เพียงเล็กน้อย เมื่อน้ำหมด สวิตช์ลูกลอยจะเปิดขึ้นและ ESP จะปิดโดยสมบูรณ์ และปริมาณการใช้กระแสไฟฟ้าจะเป็น 0
      • หากไม่สำเร็จ จะเข้าสู่โหมดสลีปเป็นเวลา 20 นาที แล้วลองอีกครั้ง อาจเกิดไฟฟ้าดับได้ในกรณีที่เกิดพายุฝนฟ้าคะนองในฤดูร้อน นับการรีสตาร์ทและเก็บไว้ในหน่วยความจำ RTC ข้อมูลนี้ใช้เพื่อรายงานเวลาที่ผ่านไปตั้งแต่การพยายามเตือนครั้งแรก (โปรดทราบว่าเมื่อทำการทดสอบด้วยพลังงาน USB และจอภาพแบบอนุกรม RTC อาจเก็บค่าจำนวนรอบระหว่างการดาวน์โหลดไว้ด้วย)

ขั้นตอนที่ 3: การประกอบและติดตั้ง

การประกอบและติดตั้ง
การประกอบและติดตั้ง
การประกอบและติดตั้ง
การประกอบและติดตั้ง
การประกอบและติดตั้ง
การประกอบและติดตั้ง

หลังจากทดสอบโค้ดบนเขียงหั่นขนมแล้ว ฉันบัดกรีมันให้เป็นแผ่นไม้อัดชิ้นเล็กๆ

ฉันใช้ขั้วต่อสกรู 2 ขั้วระยะพิทช์ 5.08 มม. 2 ชิ้นที่เย็บเข้าด้วยกัน ส่วนหัวของตัวเมียสำหรับ ESP ตัวเก็บประจุ และจัมเปอร์สองสามตัว

โปรดทราบว่าตัวต้านทาน SMD ที่มีหมายเลข "0" ถัดจากเสาอากาศเซรามิกควรบัดกรีใหม่กับแผ่นเปล่าข้างๆ เพื่อเลือกเสาอากาศภายนอก

จากนั้นฉันก็ใส่สิ่งทั้งหมดลงในกล่องรวมสัญญาณไฟฟ้า IP55 ขนาดเล็ก สายไฟจากสวิตช์ลูกลอยเชื่อมต่อกับรางเคเบิลแกลนด์

กล่องถูกวางไว้ในความสูงที่ปลอดภัย โดยที่น้ำ (หวังว่า) จะไม่ถึง ดังนั้นฉันจึงใช้ลวดทองแดงขนาด 1 มม. ^ 2 (17AWG) ที่ค่อนข้างหนาเพื่อเชื่อมต่อสวิตช์ลูกลอย ด้วยการตั้งค่านี้ ESP สามารถเริ่มต้นและส่งข้อความได้แม้จะมีแรงดันไฟฟ้าขาเข้า 1.8V

หลังการติดตั้ง ยามเงียบนี้กำลังเฝ้าระวังอยู่ แต่ฉันหวังว่ามันจะไม่ต้องส่งสัญญาณเตือนในเร็วๆ นี้…

แนะนำ: