Satura rādītājs:

Ar akumulatoru darbināms ūdens savācēja līmeņa sensors: 7 soļi (ar attēliem)
Ar akumulatoru darbināms ūdens savācēja līmeņa sensors: 7 soļi (ar attēliem)

Video: Ar akumulatoru darbināms ūdens savācēja līmeņa sensors: 7 soļi (ar attēliem)

Video: Ar akumulatoru darbināms ūdens savācēja līmeņa sensors: 7 soļi (ar attēliem)
Video: Alex Crazy Fisherman - S2:E -20 ALEX BRAUC PIRKT MOTORU UZ LIETUVU 2024, Novembris
Anonim
Ar akumulatoru darbināms ūdens savācēja līmeņa sensors
Ar akumulatoru darbināms ūdens savācēja līmeņa sensors
Ar akumulatoru darbināms ūdens savācēja līmeņa sensors
Ar akumulatoru darbināms ūdens savācēja līmeņa sensors

Mūsu mājā ir ūdens tvertne, kas barota no lietus, kas krīt uz jumta, un to izmanto tualetē, veļas mazgājamā mašīnā un dārza laistīšanas iekārtās. Pēdējos trīs gadus vasaras bija ļoti sausas, tāpēc mēs sekojām līdzi ūdens līmenim tvertnē. Līdz šim mēs izmantojām koka nūju, kuru ievietojām tvertnē un atzīmējām līmeni. Bet noteikti ir jābūt iespējai to uzlabot!

Šeit rodas šis projekts. Ideja ir piestiprināt ultraskaņas attāluma sensoru tvertnes augšpusē. Šis sensors darbojas kā hidrolokators, kas izstaro skaņas viļņus, kurus pēc tam atstaro ūdens virsma. Kopš laika, kas nepieciešams, lai viļņi atgrieztos, un skaņas ātrumu, jūs varat aprēķināt attālumu līdz ūdens virsmai un noteikt, cik pilna ir tvertne.

Tā kā man nav elektrības savienojuma tvertnes tuvumā, ir svarīgi, lai visa ierīce darbotos ar baterijām. Tas nozīmē, ka man bija jāapzinās visu detaļu enerģijas patēriņš. Lai nosūtītu atpakaļ datus, es nolēmu izmantot ESP8266 mikroshēmas iebūvēto Wifi. Lai gan Wifi ir diezgan jaudīgs, tam ir priekšrocības salīdzinājumā ar cita veida radio savienojumu: jūs varat tieši izveidot savienojumu ar savas mājas bezvadu maršrutētāju, neveidojot citu ierīci, kas darbojas kā relejs.

Lai taupītu enerģiju, es lielāko daļu laika ievietošu ESP8266 dziļā miegā un mērīšu katru stundu. Manam nolūkam sekot līdzi ūdens līmenim, tas ir vairāk nekā pietiekami. Dati tiks nosūtīti uz ThingSpeak, un pēc tam tos varēs nolasīt viedtālrunī, izmantojot lietotni.

Vēl viena detaļa! Skaņas ātrums, kas ir būtisks attāluma mērīšanai, ir atkarīgs no temperatūras un mazākā mērā no mitruma. Lai veiktu precīzus mērījumus ārpus telpām visu sezonu laikā, mēs iemetīsim BME280 sensoru, kas mēra temperatūru, mitrumu un spiedienu. Kā bonuss no mūsu ūdens līmeņa sensora tiek iegūta arī neliela laika stacija.

Daļas:

  • 1x ESP8266 ESP-12F.
  • 1x ESP-12F adaptera plāksne.
  • 1x FT232RL FTDI: USB uz seriālo adapteri.
  • 1x HC-SR04-P: ultraskaņas attāluma mērīšanas modulis. Ņemiet vērā, ka P ir svarīgs, jo šai versijai ir zems minimālais darba spriegums 3 V.
  • 1x BME280 3.3V versija: temperatūras, spiediena un mitruma sensors.
  • 1x IRL2203N: n-kanālu MOSFET tranzistors.
  • 1x MCP1700-3302E 3.3V versija: sprieguma regulators.
  • 3x uzlādējams AA akumulators, piem. 2600 mAh.
  • 1x akumulatora turētājs 3 baterijām.
  • 1x maizes dēlis.
  • Rezistori: 1x 470K, 1x 100K, 4x 10K.
  • Kondensatori: 2x keramikas 1uF.
  • 3x pārslēgšanas slēdzis.
  • U formas maizes dēļa vadi.
  • Jumper vadi.
  • Plastmasas zupas trauks 1l.
  • Tvertnes stiprinājuma gredzens.

Es padarīju kodu pieejamu vietnē GitHub.

1. darbība: Iepazīstieties ar ultraskaņas attāluma sensoru

Iepazīšanās ar ultraskaņas attāluma sensoru
Iepazīšanās ar ultraskaņas attāluma sensoru
Iepazīšanās ar ultraskaņas attāluma sensoru
Iepazīšanās ar ultraskaņas attāluma sensoru

Mēs izmērīsim attālumu līdz ūdens virsmai ar ultraskaņas sensoru HC-SR04-P. Tāpat kā sikspārnis, šis sensors izmanto hidrolokatoru: tas nosūta skaņas impulsu ar pārāk augstu frekvenci cilvēka ausij, tātad ultraskaņu, un gaida, kad tas atsitīsies pret kādu priekšmetu, atspoguļosies un atgriezīsies. Tālāk attālumu var aprēķināt no laika, kas nepieciešams, lai saņemtu atbalsi un skaņas ātrumu.

Konkrēti, ja Trig tapu pavelk augstu vismaz 10 μs, sensors nosūta 8 impulsu sēriju ar frekvenci 40 Hz. Atbilde tiek iegūta uz Echo tapas impulsa veidā, kura ilgums ir vienāds ar laiku starp ultraskaņas impulsa nosūtīšanu un saņemšanu. Tad mums ir jāsadala ar 2, jo ultraskaņas impulss virzās uz priekšu un atpakaļ, un mums ir vajadzīgs vienvirziena ceļojuma laiks, un tas jāreizina ar skaņas ātrumu, kas ir aptuveni 340 m/s.

Bet pagaidiet minūti! Faktiski skaņas ātrums ir atkarīgs no temperatūras un mazākā mērā no mitruma. Vai es māku vai tas ir aktuāli? Izmantojot aprēķina rīku, mēs atklājam, ka ziemā (ņemot -5 ° C) mums varētu būt 328,5 m/s, bet vasarā (ņemot 25 ° C) 347,1 m/s. Pieņemsim, ka mēs atrodam vienvirziena ceļojuma laiku 3 ms. Ziemā tas nozīmētu 98,55 cm un vasarā 104,13 cm. Tā ir liela atšķirība! Tātad, lai iegūtu pietiekamu precizitāti visu sezonu laikā un pat dienu un nakti, mūsu iestatījumiem ir jāpievieno termometrs. Es nolēmu iekļaut BME280, kas mēra temperatūru, mitrumu un spiedienu. Kodā, ko izmantoju funkcijā speedOfSound, formula, kas aprēķina skaņas ātrumu pēc visiem trim parametriem, lai gan temperatūra patiešām ir vissvarīgākais faktors. Mitrumam joprojām ir mazāka ietekme, bet spiediena ietekme ir niecīga. Mēs varētu izmantot vienkāršāku formulu, ņemot vērā tikai temperatūru, kuru es ieviesu programmā speedOfSoundSimple.

Ir vēl viens svarīgs jautājums par HC-SR04. Ir pieejamas divas versijas: standarta versija darbojas ar 5 V spriegumu, savukārt HC-SR04-P var darboties ar sprieguma diapazonu no 3 V līdz 5 V. Tā kā 3 uzlādējamās AA baterijas nodrošina aptuveni 3x1.25V = 3.75V, ir svarīgi iegūt P versiju. Daži pārdevēji var nosūtīt nepareizu. Tāpēc, ja jūs to iegādājaties, apskatiet attēlus. Abas versijas gan aizmugurē, gan priekšā izskatās atšķirīgi, kā paskaidrots šajā lapā. P versijas aizmugurē visas trīs mikroshēmas ir horizontālas, savukārt standarta versijā viena ir vertikāla. Priekšpusē standarta versijai ir papildu sudraba sastāvdaļa.

Elektroniskajā shēmā mēs izmantosim tranzistoru kā slēdzi, lai izslēgtu ultraskaņas sensora barošanu, kad mūsu iestatījumi pāriet dziļā miega režīmā, lai taupītu akumulatora darbības laiku. Pretējā gadījumā tas joprojām patērē apmēram 2 mA. No otras puses, BME280 patērē tikai aptuveni 5 μ, kad tas ir neaktīvs, tāpēc to nav nepieciešams izslēgt ar tranzistoru.

2. solis: ESP8266 valdes izvēle

ESP8266 valdes izvēle
ESP8266 valdes izvēle

Lai sensoru pēc iespējas ilgāk darbinātu ar akumulatoru, mums ir jātaupa enerģijas patēriņš. Lai gan ESP8266 Wifi nodrošina ļoti ērtu veidu, kā savienot mūsu sensoru ar mākoni, tas ir arī diezgan jaudīgs. Darbības laikā ESP8266 patērē aptuveni 80 mA. Tātad ar 2600 mAh baterijām mēs varētu darbināt savu ierīci tikai ne vairāk kā 32 stundas, pirms tās ir tukšas. Praksē tas būs mazāks, jo mēs nevarēsim izmantot visu 2600 mAh jaudu, pirms spriegums nokritīsies līdz pārāk zemam līmenim.

Par laimi ESP8266 ir arī dziļā miega režīms, kurā gandrīz viss ir izslēgts. Tātad plāns ir lielāko daļu laika iemigt ESP8266 un pamodināt to tik bieži, lai veiktu mērījumus un nosūtītu datus, izmantojot Wifi, uz ThingSpeak. Saskaņā ar šo lapu maksimālais dziļā miega laiks bija aptuveni 71 minūte, bet kopš ESP8266 Arduino kodola 2.4.1 tas ir palielinājies līdz aptuveni 3,5 stundām. Savā kodā es nokārtoju vienu stundu.

Vispirms es izmēģināju ērto NodeMCU izstrādes paneli, bet bummer, dziļā miegā tas joprojām patērēja aptuveni 9 mA, kas dod mums ne vairāk kā 12 dienas tīra dziļa miega, pat neņemot vērā pamošanās intervālus. Svarīgs vaininieks ir sprieguma regulators AMS1117, kas patērē jaudu pat tad, ja mēģināt to apiet, savienojot akumulatoru tieši ar 3,3 V tapu. Šajā lapā ir paskaidrots, kā noņemt sprieguma regulatoru un USB UART. Tomēr man nekad nav izdevies to izdarīt, neiznīcinot savu dēli. Turklāt pēc USB UART noņemšanas jūs vairs nevarat izveidot savienojumu ar ESP8266, lai noskaidrotu, kas notika nepareizi.

Šķiet, ka lielākajā daļā ESP8266 izstrādes dēļu tiek izmantots izšķērdīgs sprieguma regulators AMS1117. Viens izņēmums ir WEMOS D1 mini (attēls kreisajā pusē), kas tiek piegādāts ar ekonomiskāku ME6211. Patiešām, es atklāju, ka WEMOS D1 mini dziļā miegā izmanto aptuveni 150 μA, kas vairāk līdzinās tam. Lielākā daļa no tā, iespējams, ir saistīta ar USB UART. Izmantojot šo dēli, jums pašiem ir jāplodē tapas.

Tomēr mēs varam paveikt daudz labāk, izmantojot kailu kaulu, piemēram, ESP-12F (attēls labajā pusē), kuram nav USB UART vai sprieguma regulatora. Barojot 3.3V tapu, es atklāju, ka dziļā miega patēriņš ir tikai 22 μA!

Bet, lai ESP-12F sāktu darboties, sagatavojieties lodēšanai un nedaudz grūtāk to programmēt! Turklāt, ja vien baterijas nepiegādā pareizo spriegumu, kas ir no 3V līdz 3,6V, mums ir jānodrošina savs sprieguma regulators. Praksē izrādās, ka ir grūti atrast akumulatoru sistēmu, kas nodrošina spriegumu šajā diapazonā visā izlādes ciklā. Atcerieties, ka mums ir jāieslēdz arī HC-SR04-P sensors, kas teorētiski var darboties ar pat 3 V spriegumu, bet darbojas precīzāk, ja spriegums ir augstāks. Turklāt manā diagrammā HC-SR04-P ieslēdz tranzistors, kas izraisa nelielu papildu sprieguma kritumu. Mēs izmantosim sprieguma regulatoru MCP1700-3302E. Maksimālais ieejas spriegums ir 6 V, tāpēc mēs to barojam ar līdz pat 4 AA baterijām. Es nolēmu izmantot 3 AA baterijas.

3. darbība: izveidojiet ThingSpeak kanālu

Datu glabāšanai izmantosim IoT mākoņpakalpojumu ThingSpeak. Dodieties uz vietni https://thingspeak.com/ un izveidojiet kontu. Kad esat pieteicies, noklikšķiniet uz pogas Jauns kanāls, lai izveidotu kanālu. Kanāla iestatījumos aizpildiet nosaukumu un aprakstu, kā vēlaties. Tālāk mēs nosaucam kanāla laukus un aktivizējam tos, noklikšķinot uz izvēles rūtiņām labajā pusē. Ja manu kodu izmantojat nemainīgu, lauki ir šādi:

  • 1. lauks: ūdens līmenis (cm)
  • 2. lauks: akumulatora uzlādes līmenis (V)
  • 3. lauks: temperatūra (° C)
  • 4. lauks: mitrums (%)
  • 5. lauks: spiediens (Pa)

Turpmāk uzrakstiet kanāla ID, lasīšanas API atslēgu un rakstīšanas API atslēgu, kas atrodami izvēlnes API atslēgās.

Izmantojot lietotni, viedtālrunī varat nolasīt ThingSpeak datus. Savā Android tālrunī es izmantoju IoT ThingSpeak Monitor logrīku. Jums tas jākonfigurē, izmantojot kanāla ID un lasīšanas API atslēgu.

4. darbība. Kā ieprogrammēt ESP-12F

Kā ieprogrammēt ESP-12F
Kā ieprogrammēt ESP-12F
Kā programmēt ESP-12F
Kā programmēt ESP-12F

Lai ietaupītu akumulatora darbības laiku, mums ir nepieciešams kails kauls, taču negatīvie ir tas, ka to ir nedaudz grūtāk programmēt nekā izstrādes plati ar iebūvētu USB UART.

Mēs izmantosim Arduino IDE. Ir arī citi norādījumi, kā to izmantot, tāpēc es šeit runāšu īsi. Lai to sagatavotu ESP8266, ir jāveic šādas darbības:

  • Lejupielādējiet Arduino IDE.
  • Instalējiet ESP8266 plates atbalstu. Izvēlnē Fails - Preferences - Iestatījumi pievienojiet vietrādi URL https://arduino.esp8266.com/stable/package_esp8266com_index.json papildu valdes pārvaldnieka vietrāžiem URL. Tālāk izvēlnē Rīki - Dēlis - Dēļu pārvaldnieks instalējiet kopienu esp8266 by esp8266.
  • Izvēlieties kā paneli: vispārējais ESP8266 modulis.

Lai apstrādātu ESP-12F, es izmantoju adaptera plāksni, kas parasti ir pieejama tiešsaistes veikalos. Es pielodēju mikroshēmu pie plāksnes un pēc tam pielodēju galvenes pie plāksnes. Tikai tad es atklāju, ka adaptera plāksne ir pārāk plata standarta maizei! Tas neatstāj sānos brīvas tapas, lai izveidotu savienojumus.

Risinājums, kuru es izvēlējos, ir izmantot U veida vadus un savienot tos, kā parādīts labajā pusē, pirms ESP8266 ievietošanas ar adaptera plāksni uz maizes dēļa. Tātad GND un VCC ir savienoti ar maizes dēļa sliedēm, un atlikušās tapas ir pieejamas tālāk uz maizes dēļa. Trūkums ir tāds, ka, pabeidzot visu ķēdi, jūsu maizes dēlis būs diezgan pārpildīts ar vadiem. Vēl viens risinājums ir divu maizes dēļu salikšana kopā, kā parādīts šajā video.

Tālāk, lai ieprogrammētu ESP-12F caur datora USB portu, mums ir nepieciešams USB seriālais adapteris. Es izmantoju FT232RL FTDI programmētāju. Programmētājam ir džemperis, lai izvēlētos starp 3.3V vai 5V. ESP8266 tas jānovieto līdz 3.3V. Neaizmirstiet to, jo 5V var cept jūsu mikroshēmu! Draiveru instalēšanai vajadzētu būt automātiskai, taču, ja programmēšana nedarbojas, varat mēģināt tos manuāli instalēt no šīs lapas.

ESP8266 ir programmēšanas režīms, lai zibatmiņā augšupielādētu jaunu programmaparatūru, un zibspuldzes režīms, lai palaistu pašreizējo programmaparatūru no zibatmiņas. Lai izvēlētos starp šiem režīmiem, dažām tapām sāknēšanas laikā ir jābūt noteiktai vērtībai:

  • Programmēšana: GPIO0: zems, CH-PD: augsts, GPIO2: augsts, GPIO15: zems
  • Zibspuldze: GPIO0: augsta, CH-PD: augsta, GPIO2: augsta, GPIO15: zema

Adaptera plāksne jau rūpējas par CH-PD pacelšanu un GPIO15 nolaišanu ar 10K rezistoriem.

Tātad mūsu elektroniskajā shēmā mums joprojām ir jāvelk GPIO2. Mēs nodrošinām arī slēdzi, lai ESP8266 ievietotu programmēšanas vai zibspuldzes režīmā, un slēdzi tā atiestatīšanai, ko veic, savienojot RST ar zemi. Turklāt pārliecinieties, ka esat pievienojis FT232RL TX tapu ESP8266 RXD tapai un otrādi.

Programmēšanas secība ir šāda:

  • Iestatiet GPIO2 uz zemu, aizverot programmēšanas slēdzi.
  • Atiestatiet ESP8266, aizverot un pēc tam atverot atiestatīšanas slēdzi. ESP8266 tagad sāk darboties programmēšanas režīmā.
  • Iestatiet GPIO2 atpakaļ uz augstu, atverot programmēšanas slēdzi.
  • Augšupielādējiet jauno programmaparatūru no Arduino IDE.
  • Atkal atiestatiet ESP8266, aizverot un atkārtoti atverot atiestatīšanas slēdzi. ESP8266 tagad sāk darboties zibspuldzes režīmā un palaiž jauno programmaparatūru.

Tagad jūs varat pārbaudīt, vai programmēšana darbojas, augšupielādējot slaveno Blink skici.

Ja tas viss darbojas, vismaz GND, VCC, GPIO2, RST, TXD un RXD tapas ir pareizi pielodētas un savienotas. Kāds atvieglojums! Bet pirms turpināt, es ieteiktu pārbaudīt arī citas tapas ar savu multimetru. Man pašam bija problēma ar vienu no tapām. Jūs varat izmantot šo skici, kas visas tapas pa vienam uz augšu nosaka uz 5 sekundēm un pēc tam ievieto ESP8266 20 sekundes dziļā miegā. Lai ESP8266 varētu pamosties pēc dziļa miega, jums ir jāpievieno RST ar GPIO16, kas dod modināšanas signālu.

5. darbība: skices augšupielāde

Esmu padarījis kodu pieejamu vietnē GitHub, tas ir tikai viens fails: Level-Sensor-Deepsleep.ino. Vienkārši lejupielādējiet to un atveriet to Arduino IDE. Vai arī varat izvēlēties Fails - Jauns un vienkārši kopējiet/ielīmējiet kodu.

Faila sākumā ir jāaizpilda informācija: lietojamā WLAN nosaukums un parole, statiska IP informācija un ThingSpeak kanāla kanāla ID un rakstīšanas API atslēga.

Ievērojot padomu šajā emuārā, DHCP vietā, kur maršrutētājs dinamiski piešķir IP, mēs izmantojam statisko IP, kur mēs paši iestatām ESP8266 IP adresi. Tas izrādās daudz ātrāk, tāpēc mēs ietaupām aktīvo laiku un līdz ar to akumulatora enerģiju. Tāpēc mums ir jānodrošina pieejama statiskā IP adrese, kā arī maršrutētāja (vārtejas) IP, apakštīkla maska un DNS serveris. Ja neesat pārliecināts, ko aizpildīt, izlasiet maršrutētāja rokasgrāmatā par statiskā IP iestatīšanu. Windows datorā, kas savienots ar maršrutētāju, izmantojot Wifi, palaidiet apvalku (Windows poga-r, cmd) un ievadiet ipconfig /all. Lielāko daļu nepieciešamās informācijas atradīsit sadaļā Wi-Fi.

Pārbaudot kodu, redzat, ka atšķirībā no citiem Arduino kodiem lielākā daļa darbību notiek iestatīšanas funkcijā, nevis cilpas funkcijā. Tas ir tāpēc, ka pēc iestatīšanas funkcijas pabeigšanas ESP8266 nonāk dziļā miega režīmā (ja vien mēs nesākām OTA režīmā). Pēc tam, kad tas pamostas, tas ir kā jauna restartēšana, un tā atkal veic iestatīšanu.

Šeit ir galvenās koda iezīmes:

  • Pēc pamodināšanas kods pārslēgšanas taustiņu (noklusējuma GPIO15) nosaka uz augstu. Tas ieslēdz tranzistoru, kas savukārt ieslēdz HC-SR04-P sensoru. Pirms došanās dziļā miega režīmā, spriegums tiek atgriezts zemā līmenī, izslēdzot tranzistoru un HC-SR04-P, pārliecinoties, ka tas neizmanto dārgāku akumulatora enerģiju.
  • Ja modePIN (noklusējuma GPIO14) ir zems, kods tiek izmantots OTA režīmā, nevis mērīšanas režīmā. Izmantojot OTA (bezvadu atjauninājumu), mēs varam atjaunināt programmaparatūru, izmantojot seriālo portu, izmantojot Wifi. Mūsu gadījumā tas ir diezgan ērti, jo mums vairs nav jāpievieno seriālais savienojums ar USB adapteri turpmākai atjaunināšanai. Vienkārši iestatiet GPIO14 uz zemu (ar OTA slēdzi elektroniskajā shēmā), atiestatiet ESP8266 (ar atiestatīšanas slēdzi), un tam vajadzētu kļūt pieejamam Arduino IDE augšupielādei.
  • Izmantojot analogo PIN (A0), mēs mēra akumulatora spriegumu. Tas ļauj mums izslēgt savu ierīci jeb aka pastāvīgu dziļo miegu, ja spriegums kļūst pārāk zems, zem minVoltage, lai pasargātu baterijas no pārmērīgas izlādes. Analogais mērījums nav ļoti precīzs, mēs veicam numMeasuresBattery (noklusējuma 10) mērījumus un ņemam vidējo, lai uzlabotu precizitāti.
  • HC-SR04-P sensora attāluma mērīšana tiek veikta funkcijā distanceMeasurement. Lai uzlabotu precizitāti, mērījumu atkārto numMeasuresDistance (noklusējuma 3) reizes.
  • Ir funkcija, lai aprēķinātu speedOfSound no BME280 sensora temperatūras, mitruma un spiediena. BME280 noklusējuma I2C adrese ir 0x76, bet, ja tā nedarbojas, iespējams, tā būs jāmaina uz 0x77: bool bme280Started = bme280.begin (0x77);
  • Mēs izmantosim BME280 piespiedu režīmā, kas nozīmē, ka ir nepieciešams veikt vienu mērījumu un atgriezties miega režīmā, lai taupītu enerģiju.
  • Ja iestatāt ietilpību (l), fullDistance (cm) un laukumu (m2), kods no attāluma mērījuma aprēķina ūdens tvertnes atlikušo tilpumu: divkāršais atlikušais apjoms = tilpums+10,0*(fullDistance-distance)*apgabals; un augšupielādējiet to vietnē ThingSpeak. Ja saglabājat noklusējuma vērtības, attālums līdz ūdens virsmai tiek augšupielādēts cm.

6. darbība: elektroniskās shēmas izveide

Elektroniskās shēmas izveide
Elektroniskās shēmas izveide

Augšpusē ir elektroniskās shēmas shēma. Tas ir diezgan liels vienam maizes dēlim, it īpaši ar liela izmēra adaptera plāksni un triku ar U veida vadiem. Kādā brīdī es noteikti gribēju, lai būtu izmantojis divu maizes dēļu savienošanas iespēju, bet galu galā man izdevās.

Šeit ir ķēdes svarīgās iezīmes:

  • Ir divi spriegumi, kuriem ir nozīme: ieejas spriegums no akumulatora (aptuveni 3,75 V) un 3,3 V, kas baro ESP8266 un BME280. Es uzliku 3.3V uz laušanas paneļa kreisās sliedes un 3.75V uz labās sliedes. Sprieguma regulators pārveido 3.75V uz 3.3V. Ievērojot norādījumus datu lapā, es pievienoju 1 μF kondensatorus sprieguma regulatora ieejai un izejai, lai palielinātu stabilitāti.
  • ESP8266 GPIO15 ir savienots ar tranzistora vārtiem. Tas ļauj ESP8266 ieslēgt tranzistoru un līdz ar to ultraskaņas sensoru, kad tas ir aktīvs, un izslēgt to, dodoties dziļā miegā.
  • GPIO14 ir savienots ar slēdzi, OTA slēdzi. Slēdža aizvēršana dod signālu ESP8266, kuru vēlamies sākt OTA režīmā, t.i., pēc tam, kad nospiežam (aizveram un atveram) RESET slēdzi un augšupielādējam jaunu skici.
  • RST un GPIO2 tapas ir savienotas kā programmēšanas shēmā. RST tapa tagad ir pievienota arī GPIO16, lai ļautu ESP8266 pamosties no dziļa miega.
  • Ultraskaņas sensora tapas TRIG un ECHO ir savienotas ar GPIO12 un GPIO13, savukārt BME280 tapas SCL un SDA ir savienotas ar GPIO5 un GPIO4.
  • Visbeidzot, analogā tapa ADC ir caur sprieguma dalītāju, kas savienots ar ieejas spriegumu. Tas ļauj izmērīt ieejas spriegumu, lai pārbaudītu akumulatoru uzlādi. ADC tapa var izmērīt spriegumu no 0V līdz 1V. Sprieguma dalītājam mēs izvēlējāmies rezistorus 100K un 470K. Tas nozīmē, ka spriegumu pie ADC tapas norāda: V_ADC = 100K/(100K+470K) V_in. Ņemot V_ADC = 1V, tas nozīmē, ka mēs varam izmērīt ieejas spriegumu līdz V_in = 570/100 V_ADC = 5.7V. Attiecībā uz enerģijas patēriņu caur sprieguma dalītāju ir arī noplūde. Ar V_in = 3,75V no baterijām mēs atrodam I_leak = 3,75V/570K = 6,6 μA.

Pat tad, ja ķēde darbojas no baterijām, ir iespējams savienot USB ar seriālo adapteri. Vienkārši atvienojiet adaptera VCC un pievienojiet GND, RX un TX, kā norādīts programmēšanas shēmā. Tas ļauj atvērt sērijas monitoru Arduino IDE, lai lasītu atkļūdošanas ziņojumus un pārliecinātos, ka viss darbojas, kā paredzēts.

Pilnai ķēdei es izmērīju strāvas patēriņu 50 μA dziļā miegā, darbojoties no baterijām. Tas ietver ESP8266, BME280, ultraskaņas sensoru (izslēgts ar tranzistoru) un noplūdi caur sprieguma dalītāju un, iespējams, citas noplūdes. Tātad tas nav pārāk slikti!

Es atklāju, ka kopējais aktīvais laiks ir aptuveni 7 sekundes, no kurām 4,25 sekundes, lai izveidotu savienojumu ar Wifi, un 1,25 sekundes, lai nosūtītu datus uz ThingSpeak. Tātad ar aktīvo strāvu 80mA aktīvajam laikam es atradu 160 μAh stundā. Pievienojot 50 μAh stundā dziļā miega stāvoklī, mums kopā ir 210 μAh stundā. Tas nozīmē, ka 2600 mAh baterijas teorētiski ilgst 12400 stundas = 515 dienas. Tas ir absolūtais maksimums, ja mēs varētu izmantot visu bateriju jaudu (kas tā nav) un nav noplūdes, kuras es neatradu ar saviem pašreizējiem mērījumiem. Tāpēc man vēl jānoskaidro, vai tas tiešām izzudīs.

7. darbība: sensora apdare

Sensora apdare
Sensora apdare
Sensora apdare
Sensora apdare
Sensora apdare
Sensora apdare

Es ievietoju sensoru 1 litra plastmasas traukā, kurā agrāk bija zupa. Apakšā es izveidoju divus caurumus, lai tie atbilstu HC-SR04-P sensora "acīm". Papildus caurumiem traukam jābūt ūdensizturīgam. Pēc tam tas tiek piestiprināts pie ūdens tvertnes sienas ar apļveida gredzenu, ko parasti izmanto lietus ūdens novadīšanas caurulei.

Izklaidējieties ar projektu!

Ieteicams: