Innehållsförteckning:

Ultra-low Power Basement Flooding Alarm With ESP8266: 3 steg
Ultra-low Power Basement Flooding Alarm With ESP8266: 3 steg

Video: Ultra-low Power Basement Flooding Alarm With ESP8266: 3 steg

Video: Ultra-low Power Basement Flooding Alarm With ESP8266: 3 steg
Video: IoT ESP8266 WiFi Tutorial - Water Leak/Flood/Rain Detector! Push Notification from trigBoard! 2024, November
Anonim
Ultra-low Power Basement Flooding Alarm With ESP8266
Ultra-low Power Basement Flooding Alarm With ESP8266
Ultra-low Power Basement Flooding Alarm With ESP8266
Ultra-low Power Basement Flooding Alarm With ESP8266

Hej, välkommen till min första instruktör.

Källaren i mitt hus översvämmas med några års mellanrum av olika anledningar som kraftiga sommarstormar, högt grundvatten eller till och med ett rör som spricker. Även om det inte är ett trevligt ställe, men min centralvärmepanna ligger där nere och vatten kan skada dess elektroniska delar, så jag måste pumpa ut vattnet så snart som möjligt. Det är svårt och obekvämt att kontrollera situationen efter ett kraftigt sommar åska, så jag bestämde mig för att göra ett ESP8266-baserat larm som skickar mig ett e-postmeddelande vid översvämningar. (När översvämningen orsakas av högt grundvatten är vattennivån vanligtvis mindre än 10 centimeter vilket inte är skadligt för värmaren och det rekommenderas inte att pumpa ut eftersom det kommer tillbaka ändå och ju mer du pumpar, desto mer grundvatten kommer nästa gång. Men det är bra att veta om situationen.)

I den här applikationen kan enheten vara i "sömn" i flera år, och om allt fungerar som planerat fungerar det bara i några sekunder. Att använda djup sömn är inte praktiskt eftersom det drar för mycket ström om vi vill sova under mycket långa perioder och ESP8266 kan bara sova i cirka 71 minuter maximalt.

Jag bestämde mig för att använda en flottörbrytare för att slå på ESP: n. Med denna lösning drivs ESP inte när strömbrytaren är öppen, så strömförbrukningen är bara självurladdning av batterierna, vilket gör att systemet är klart att larma i åratal.

När vattennivån når flottöromkopplaren startar ESP normalt, ansluter till mitt WiFi-nätverk, skickar mig ett e-postmeddelande och somnar för evigt med ESP. Desepsleep (0) tills strömmen slås av och på igen. Om den inte kan ansluta till WiFi eller inte kan skicka e-postmeddelandet somnar det i 20 minuter och försöker igen tills det lyckas.

Denna idé liknar lösningen som beskrivs av Andreas Spiess i den här videon. Men på grund av översvämningens natur och flottörbrytaren behöver vi inte lägga till en MOSFET för att hålla ESP -enheten påslagen förrän den har slutfört sin uppgift, eftersom flottöromkopplaren kommer att stängas om vattennivån är över utlösningsnivån.

Steg 1: Schemat:

Schemat
Schemat

Delar

  • D1: BAT46 Schottky-diod för väckning i djup sömn. Jag har bättre erfarenheter av Schottky -dioder än motstånd mellan D0 och RST.
  • Float Switch: Enkel $ 1,2 vassrör och magnetbaserad flottörbrytare från eBay. Ringen med magneten kan vändas för att växla mellan hög och låg vätskenivåväxling. eBay -länk
  • Batterihållare: för 2x AAA 1,5V batterier
  • P1: 2x 2P 5,08 mm (200mil) skruvplintar för anslutning av ledningarna från batteriet och flottöromkopplaren.
  • C1: 1000uF 10V kondensator för att öka stabiliteten hos ESP medan radion är på. Observera att om ESP är i djup sömn räcker energin som lagras i kondensatorn för att driva den i 3-4 minuter. Under den perioden kan flottörströmställarens funktion inte starta om ESP eftersom kondensatorn håller den påslagen under djup sömn. Detta är bara intressant under testning.
  • U1: LOLIN / Wemos D1 Mini Pro ESP8266 mikrokontroller. Detta är pro -versionen med extern antennkontakt, vilket kan vara användbart när det placeras i källaren. Observera att du bör lödda om 0 ohm SMD "motståndet" för att välja den externa antennen istället för den inbyggda keramiska antennen. Jag rekommenderar att köpa LOLIN -mikrokontroller från den officiella LOLIN AliExpress -butiken eftersom det finns många falska eller gamla versioner av Wemos / LOLIN -kort där ute.
  • Perfboard: En 50 mm*50 mm proto board kommer att räcka för att passa alla delar. Kretsen är för enkel för att göra ett kretskort.:)

Observera att batteriet är anslutet till 3,3V -ingången. Även om D1 Mini har en inbyggd LDO för USB / LiPo -drift, behöver vi inte det när den drivs från 3V med 2xAAA alkaliska batterier. Med denna anslutning kunde min D1 Mini klara sin uppgift med endast 1,8V matningsspänning också.

Steg 2: Koden

Programmet kan vara trevligare eller enklare, men delarna är väl beprövade i mina andra projekt.

Skissen använder följande bibliotek:

ESP8266WiFi.h: Standard för ESP8266 -kort.

Gsender.h: Gmail -avsändarbibliotek från Borya, kan laddas ner härifrån.

Programflödet är ganska enkelt.

  • ESP startar.
  • Läser RTC -minne för att kontrollera om det är en första start eller inte
  • Ansluter till WiFi med funktionen cleverwifi (). Detta ansluter till WiFi med routerns MAC -adress (BSSID) och kanalnummer för snabbare anslutning, försöker igen utan dem efter 100 misslyckade försök och somnar efter 600 försök. Denna funktion härleddes från OppoverBakkes WiFi -strömförbrukningssparskiss, men utan att spara anslutningsdata till RTC -delen i den här applikationen.
  • Kontrollerar batterispänningen med ESP -inbyggda ADC_MODE (ADC_VCC) / ESP.getVcc () -funktioner. Detta kräver ingen extern spänningsdelare eller någon ledning till A0. Perfekt för spänningar under 3,3V, vilket är vårt fall.
  • Skickar ett e-postmeddelande med Gsender.h. Jag lade till variabler och anpassad text till ämnes- och meddelandesträngarna för att rapportera batterispänning, tiden som gått sedan första upptäckten och råd om batteribyte. Glöm inte att ändra mottagarens e-postadress.

    • Sover

      • Om det lyckas sover det "för alltid" med ESP.deepSleep (0); Fysiskt kommer det att vara i viloläge tills vattennivån är hög. Detta är tekniskt sett några timmar eller max några dagar, vilket inte tömmer batteriet med få uA -sömnström. När vattnet är borta öppnar flottöromkopplaren och ESP stängs av helt och strömförbrukningen är 0.
      • Om det inte lyckas somnar det i 20 minuter och försöker sedan igen. Det är möjligt att ha ett strömavbrott vid sommar åska. Det räknar omstart och lagrar det i RTC -minnet. Denna information används för att rapportera tiden som gått sedan det första larmförsöket. (Observera att när du testar den med USB -ström och seriell bildskärm kan RTC också behålla cykelvärdet mellan nedladdningar.)

Steg 3: Montering och installation

Montering och installation
Montering och installation
Montering och installation
Montering och installation
Montering och installation
Montering och installation

Efter att ha testat koden på en brödbräda, lödde jag den till en liten bit perfboard.

Jag använde 2 stycken 5,08 mm pitch 2 -poliga skruvterminaler som sytts ihop, en hona för ESP, en kondensator och några hoppare.

Observera att SMD-motståndet med "0" -numret bredvid den keramiska antennen ska lödas om till de tomma plattorna bredvid för att välja den externa antennen.

Sedan lade jag det hela i en liten IP55 elektrisk kopplingsdosa. Ledningarna från flottöromkopplaren är anslutna genom en kabelgenomföring.

Lådan placeras i en säker höjd, där vattnet (förhoppningsvis) aldrig kan nå det, så jag använde ett par relativt tjocka 1 mm^2 (17AWG) koppartråd för att ansluta flottöromkopplaren. Med denna inställning kan ESP starta och skicka meddelandet även med 1,8V ingångsspänning.

Efter installationen är denna tysta vaktmästare på vakt, men jag hoppas att den inte behöver skicka ett larm snart …

Rekommenderad: