Talaan ng mga Nilalaman:

Ultra-low Power Basement Flooding Alarm Sa ESP8266: 3 Mga Hakbang
Ultra-low Power Basement Flooding Alarm Sa ESP8266: 3 Mga Hakbang

Video: Ultra-low Power Basement Flooding Alarm Sa ESP8266: 3 Mga Hakbang

Video: Ultra-low Power Basement Flooding Alarm Sa ESP8266: 3 Mga Hakbang
Video: Low Power Water Detector Alarm Circuit and IoT with trigBoard (Immediate Push Notifications) 2024, Hulyo
Anonim
Ultra-low Power Basement Flooding Alarm Sa ESP8266
Ultra-low Power Basement Flooding Alarm Sa ESP8266
Ultra-low Power Basement Flooding Alarm Sa ESP8266
Ultra-low Power Basement Flooding Alarm Sa ESP8266

Kumusta, maligayang pagdating sa aking unang itinuro.

Ang basement ng aking bahay ay nabaha sa bawat ilang taon para sa iba't ibang mga kadahilanan tulad ng mabibigat na pagkulog ng tag-init, mataas na tubig sa lupa o kahit isang pagsabog ng tubo. Bagaman hindi ito isang magandang lugar, ngunit ang aking boiler ng sentral-pag-init ay matatagpuan doon at maaaring mapinsala ng tubig ang mga elektronikong bahagi nito, kaya't kailangan kong ibomba ang tubig sa lalong madaling panahon. Mahirap at hindi komportable na suriin ang sitwasyon pagkatapos ng isang malakas na bagyo sa tag-init, kaya't nagpasya akong gumawa ng isang alarma batay sa ESP8266 na nagpapadala sa akin ng isang e-mail kung sakaling may pagbaha. (Kapag ang pagbaha ay sanhi ng mataas na tubig sa lupa ang antas ng tubig ay kadalasang mas mababa sa 10 sentimetro na hindi nakakasama sa pampainit at hindi inirerekumenda na mag-pump out dahil babalik pa rin ito at kung mas maraming bomba ka, mas maraming tubig sa lupa ang darating sa susunod. Ngunit magandang malaman ang tungkol sa sitwasyon.)

Sa application na ito ang aparato ay maaaring nasa "pagtulog" nang maraming taon, at kung ang lahat ay gumagana tulad ng nakaplano, nagpapatakbo lamang ng ilang segundo. Ang paggamit ng malalim na pagtulog ay hindi praktikal dahil nakakakuha ito ng sobrang kasalukuyang kung nais naming matulog nang napakahabang panahon at ang ESP8266 ay makakatulog lamang ng halos 71 minuto ang maximum.

Nagpasya akong gumamit ng float switch upang buksan ang lakas ng ESP. Sa ganitong solusyon ang ESP ay hindi pinapatakbo kapag ang switch ay bukas, kaya ang pagkonsumo ng kuryente ay paglabas lamang ng sarili ng mga baterya, na pinapanatili ang system na handa na mag-alarma sa loob ng maraming taon.

Kapag naabot ng antas ng tubig ang float switch, normal na nagsisimulang ang ESP, kumokonekta sa aking WiFi network, nagpapadala sa akin ng isang e-mail at matulog magpakailanman kasama ang ESP. Sleepe (0) hanggang sa patayin ang kuryente at muli. Kung hindi ito makakonekta sa WiFi o hindi makapagpadala ng e-mail, matutulog ito sa loob ng 20 minuto, at subukang muli hanggang sa tagumpay.

Ang ideyang ito ay katulad ng solusyon na inilarawan ni Andreas Spiess sa video na ito. Ngunit dahil sa likas na katangian ng pagbaha at float switch, hindi namin kailangang magdagdag ng isang MOSFET upang mapanatili ang pagpapatakbo ng ESP hanggang sa matapos ang gawain nito, dahil ang float switch ay sarado kung ang antas ng tubig ay higit sa antas ng pag-trigger.

Hakbang 1: Ang Iskematika:

Ang Iskematika
Ang Iskematika

Mga Bahagi

  • D1: BAT46 Schottky-diode para sa paggising ng malalim na tulog. Mayroon akong mas mahusay na mga karanasan sa Schottky diode kaysa sa resistors sa pagitan ng D0 at RST.
  • Float Switch: Simpleng $ 1.2 reed tube at magnet based float switch mula sa eBay. Ang singsing na may pang-akit ay maaaring baligtarin upang baguhin sa pagitan ng mataas at mababang paglipat ng antas ng likido. Link ng eBay
  • May hawak ng baterya: para sa 2x AAA 1.5V na mga baterya
  • P1: 2x 2P 5.08mm (200mil) mga screw terminal para sa pagkonekta ng mga wire mula sa baterya at float switch.
  • C1: 1000uF 10V capacitor upang madagdagan ang katatagan ng ESP habang ang radyo ay nakabukas. Mangyaring tandaan, kung ang ESP ay nasa mahimbing na pagtulog, ang enerhiya na nakaimbak sa capacitor ay sapat na upang mapagana ito sa loob ng 3-4 minuto. Sa panahong iyon, hindi maaaring i-restart ng pagpapatakbo ng float switch ang ESP dahil pinapanatili itong pinalakas ng capacitor habang mahimbing ang pagtulog. Ito ay kagiliw-giliw lamang sa panahon ng pagsubok.
  • U1: LOLIN / Wemos D1 Mini Pro ESP8266 microcontroller. Ito ang pro bersyon na may panlabas na konektor ng antena, na maaaring maging kapaki-pakinabang kapag inilagay ito sa basement. Mangyaring tandaan, dapat mong muling i-solder ang 0 ohm SMD "resistor" upang piliin ang panlabas na antena sa halip na ang default na built-in na ceramic antena. Inirerekumenda kong bumili ng mga LOLIN microcontroller mula sa opisyal na tindahan ng LOLIN AliExpress dahil maraming mga pekeng o lumang bersyon ng mga board ng Wemos / LOLIN doon.
  • Perfboard: Ang isang 50mm * 50mm proto board ay magiging sapat upang magkasya sa lahat ng mga bahagi. Ang circuit ay masyadong simple upang makagawa ng isang PCB.:)

Mangyaring tandaan, ang baterya ay konektado sa input ng 3.3V. Kahit na ang D1 Mini ay may built in na LDO para sa operasyon ng USB / LiPo, hindi namin kailangan iyon kapag pinalakas ito mula sa 3V ng 2xAAA na mga alkalina na alkalina. Sa koneksyon na ito ang aking D1 Mini ay nakumpleto ang gawain nito na may 1.8V supply boltahe lamang din.

Hakbang 2: Ang Code

Ang programa ay maaaring maging mas maganda o mas simple, ngunit ang mga bahagi nito ay napatunayan nang mabuti sa aking iba pang mga proyekto.

Gumagamit ang sketch ng mga sumusunod na aklatan:

ESP8266WiFi.h: Default para sa mga board ng ESP8266.

Gsender.h: Ang library ng nagpadala ng Gmail mula sa Borya, maaaring mai-download mula rito.

Ang daloy ng programa ay medyo simple.

  • Nagsisimula ang ESP.
  • Binabasa ang memorya ng RTC upang suriin ito ay isang unang pagsisimula o hindi
  • Kumokonekta sa WiFi gamit ang cleverwifi () function. Kumokonekta ito sa WiFi gamit ang router MAC address (BSSID) at numero ng channel para sa mas mabilis na koneksyon, muling sinusubukan nang walang mga pagkatapos ng 100 hindi matagumpay na pagtatangka at natutulog pagkatapos ng 600 pagtatangka. Ang pagpapaandar na ito ay nagmula sa oppoverBakke's WiFi power konsumo saver sketch, ngunit nang hindi nai-save ang data ng koneksyon sa bahagi ng RTC sa application na ito.
  • Sinusuri ang boltahe ng baterya gamit ang built-in na tampok na ADC_MODE (ADC_VCC) / ESP.getVcc (). Hindi ito nangangailangan ng panlabas na divider ng boltahe o anumang mga kable sa A0. Perpekto para sa mga voltages sa ilalim ng 3.3V, na kung saan ang aming kaso.
  • Nagpadala ng isang alrt e-mail sa Gsender.h. Nagdagdag ako ng mga variable at pasadyang teksto sa paksa at mga string ng mensahe upang iulat ang boltahe ng baterya, lumipas ang oras mula pa noong unang nakita at payo tungkol sa kapalit ng baterya. Mangyaring huwag kalimutan na baguhin ang tatanggap ng e-mail address.

    • Natutulog

      • Kung matagumpay, natutulog ito "magpakailanman" kasama ang ESP.deepS Sleep (0); Pisikal na ito ay nasa mode ng pagtulog hanggang sa mataas ang antas ng tubig. Teknikal ito ng ilang oras o maximum ng ilang araw, na hindi maubos ang baterya gamit ang ilang uA na kasalukuyang pagtulog. Kapag nawala ang tubig ay magbubukas ang float switch at ganap na papatayin ang ESP, at ang kasalukuyang pagkonsumo ay 0.
      • Kung hindi matagumpay, natutulog ito sa loob ng 20 minuto, pagkatapos ay subukang muli. Posibleng magkaroon ng pagkawala ng kuryente ng AC sakaling magkaroon ng bagyo sa tag-init. Binibilang nito ang restart at iniimbak ito sa memorya ng RTC. Ginagamit ang impormasyong ito upang iulat ang oras na lumipas mula noong unang pagtatangka ng alarma. (Mangyaring tandaan, kapag sinusubukan ito sa USB power at serial monitor, maaaring panatilihin ng RTC ang halaga ng bilang ng ikot sa pagitan ng mga pag-download din.)

Hakbang 3: Assembly at Pag-install

Assembly at Pag-install
Assembly at Pag-install
Assembly at Pag-install
Assembly at Pag-install
Assembly at Pag-install
Assembly at Pag-install

Matapos subukan ang code sa isang breadboard, hinangin ko ito sa isang maliit na piraso ng perfboard.

Gumamit ako ng 2 piraso ng 5.08mm pitch 2 poste ng mga terminal ng tornilyo na magkasama, isang babaeng header para sa ESP, isang kapasitor at ilang mga jumper.

Mangyaring tandaan, ang risistor ng SMD na may numero na "0" sa tabi ng ceramic antena ay dapat na muling solder sa mga walang laman na pad sa tabi nito upang mapili ang panlabas na antena.

Pagkatapos ay inilagay ko ang buong bagay sa isang maliit na kahon ng elektrikal na IP55 junction. Ang mga wire mula sa float switch ay konektado sa labangan ng isang cable gland.

Ang kahon ay inilalagay sa isang ligtas na taas, kung saan ang tubig ay maaaring (sana) ay hindi maabot ito, kaya gumamit ako ng isang pares ng isang medyo makapal, 1mm ^ 2 (17AWG) tanso na tanso upang ikonekta ang float switch. Sa pag-setup na ito, maaaring magsimula ang ESP at maipadala ang mensahe kahit na may 1.8V input voltage.

Pagkatapos ng pag-install, ang tahimik na bantay na ito ay nakabantay, ngunit inaasahan kong hindi na ito magpapadala ng alarma sa lalong madaling panahon …

Inirerekumendang: