Sisällysluettelo:

Paristokäyttöinen vedenkerääjän tasoanturi: 7 vaihetta (kuvien kanssa)
Paristokäyttöinen vedenkerääjän tasoanturi: 7 vaihetta (kuvien kanssa)

Video: Paristokäyttöinen vedenkerääjän tasoanturi: 7 vaihetta (kuvien kanssa)

Video: Paristokäyttöinen vedenkerääjän tasoanturi: 7 vaihetta (kuvien kanssa)
Video: AGGE Snaplit - Paristokäyttöinen yleisvalo 2024, Marraskuu
Anonim
Paristokäyttöinen vedenkeräystason anturi
Paristokäyttöinen vedenkeräystason anturi
Paristokäyttöinen vedenkeräystason anturi
Paristokäyttöinen vedenkeräystason anturi

Talossamme on vesisäiliö, joka syötetään katolle sateelta ja jota käytetään wc: hen, pesukoneeseen ja puutarhan kastelulaitteisiin. Kolmen viime vuoden aikana kesät olivat hyvin kuivia, joten seurasimme säiliön vedenpintaa. Toistaiseksi käytimme puutikkua, jonka laitoimme säiliöön ja merkitsimme tason. Mutta varmasti tässä on voitava parantaa!

Tässä tämä projekti tulee. Ideana on kiinnittää ultraäänietäisyysanturi säiliön yläosaan. Tämä anturi toimii luotaimena, joka lähettää ääniaaltoja, jotka sitten heijastuvat veden pinnasta. Siitä hetkestä, kun aallot tulevat takaisin ja äänen nopeudesta, voit laskea etäisyyden vedenpintaan ja määrittää, kuinka täynnä säiliö on.

Koska minulla ei ole verkkoliitäntää säiliön lähellä, on välttämätöntä, että koko laite toimii paristoilla. Tämä tarkoittaa, että minun oli oltava tietoinen kaikkien osien virrankulutuksesta. Tietojen lähettämiseksi päätin käyttää ESP8266-mikrosirun sisäänrakennettua Wifi-yhteyttä. Vaikka Wifi on melko tehonhimoinen, sillä on etu verrattuna toiseen radioyhteyteen: voit muodostaa yhteyden suoraan kotisi langattomaan reitittimeen ilman, että sinun tarvitsee rakentaa toista laitetta, joka toimii releenä.

Virran säästämiseksi laitan ESP8266: n syvään uneen suurimman osan ajasta ja mittaan joka tunti. Minun tarkoituksessani seurata vedenpintaa tämä riittää. Tiedot lähetetään ThingSpeakiin ja ne voidaan sitten lukea älypuhelimella sovelluksen kautta.

Vielä yksi yksityiskohta! Äänen nopeus, joka on välttämätön etäisyyden mittaamiseen, riippuu lämpötilasta ja vähemmässä määrin kosteudesta. Tarkan ulkopuolisen mittauksen kautta vuodenaikoina käytämme BME280 -anturia, joka mittaa lämpötilan, kosteuden ja paineen. Bonuksena tämä tekee vesitasoanturistamme myös minisääaseman.

Osat:

  • 1x ESP8266 ESP-12F.
  • 1x ESP-12F-sovitinlevy.
  • 1x FT232RL FTDI: USB -sarjasovitin.
  • 1x HC-SR04-P: ultraääni-etäisyysmoduuli. Huomaa, että P on tärkeä, koska tässä versiossa on alhainen vähimmäiskäyttöjännite 3 V.
  • 1x BME280 3.3V -versio: lämpötila-, paine- ja kosteusanturi.
  • 1x IRL2203N: n-kanavainen MOSFET-transistori.
  • 1x MCP1700-3302E 3.3V -versio: jännitesäädin.
  • 3x ladattava AA -paristo, esim. 2600 mAh.
  • 1x paristopidike 3 paristolle.
  • 1x leipälauta.
  • Vastukset: 1x 470K, 1x 100K, 4x 10K.
  • Kondensaattorit: 2x keraaminen 1uF.
  • 3x vaihtokytkin.
  • U-muotoiset leipälautalangat.
  • Hyppyjohdot.
  • Muovinen keittoastia 1l.
  • Säiliön kiinnitysrengas.

Laitoin koodin saataville GitHubissa.

Vaihe 1: Tutustu ultraäänietäisyysanturiin

Tutustu ultraäänietäisyysanturiin
Tutustu ultraäänietäisyysanturiin
Tutustu ultraäänietäisyysanturiin
Tutustu ultraäänietäisyysanturiin

Mittaamme etäisyyden vedenpintaan ultraäänianturilla, HC-SR04-P. Aivan kuten lepakko, tämä anturi käyttää kaikuluotainta: se lähettää äänipulssin, jonka taajuus on liian korkea ihmisen korvaan, siis ultraääni, ja odottaa sen osuvan esineeseen, heijastuvan ja palaavan. Etäisyys voidaan sitten laskea ajasta, joka kuluu kaiun vastaanottamiseen ja äänen nopeuteen.

Konkreettisesti, jos Trig -tappia vedetään korkealle vähintään 10 μs, anturi lähettää 8 pulssin purskeen 40 Hz: n taajuudella. Vastaus saadaan sitten Echo -nastasta pulssin muodossa, jonka kesto on sama kuin aika ultraäänipulssin lähettämisen ja vastaanottamisen välillä. Sitten meidän on jaettava 2: lla, koska ultraäänipulssi kulkee edestakaisin ja tarvitsemme yksisuuntaisen matka-ajan, ja kerrotaan äänen nopeudella, joka on noin 340 m/s.

Mutta odota hetki! Itse asiassa äänen nopeus riippuu lämpötilasta ja vähemmässä määrin kosteudesta. Huijaanko vai liittyykö tämä asiaan? Laskentatyökalun avulla havaitsemme, että talvella (-5 ° C: ssa) nopeus voi olla 328,5 m/s ja kesällä (25 ° C) 347,1 m/s. Oletetaan siis, että yksisuuntainen matka-aika on 3 ms. Talvella tämä tarkoittaisi 98,55 cm ja kesällä 104,13 cm. Siinä on melkoinen ero! Joten saadaksemme riittävän tarkkuuden kaikkina vuodenaikoina ja jopa päivin ja öin, meidän on lisättävä asetukseemme lämpömittari. Päätin sisällyttää BME280: n, joka mittaa lämpötilaa, kosteutta ja painetta. Koodissa, jota käytin funktiossa speedOfSound, kaava, joka laskee äänen nopeuden kaikkien kolmen parametrin suhteen, vaikka lämpötila on todella tärkein tekijä. Kosteudella on edelleen pienempi vaikutus, mutta paineen vaikutus on vähäinen. Voisimme käyttää yksinkertaisempaa kaavaa ottaen huomioon vain lämpötilan, jonka toteutin speedOfSoundSimple -ohjelmassa.

HC-SR04: ssä on vielä yksi tärkeä seikka. Saatavana on kaksi versiota: vakioversio toimii 5 V: n jännitteellä, kun taas HC-SR04-P voi toimia eri jännitteillä 3 V-5 V. Koska 3 ladattavaa AA-paristoa tarjoavat noin 3 x 1,25 V = 3,75 V, on tärkeää hankkia P-versio. Jotkut myyjät saattavat lähettää väärän. Joten katso kuvia, jos ostat sellaisen. Molemmat versiot näyttävät erilaisilta sekä takaa että edestä, kuten tällä sivulla selitetään. P-version takana kaikki kolme sirua ovat vaakasuorassa, kun taas vakiomallissa yksi on pystysuora. Edessä vakiomallissa on ylimääräinen hopeakomponentti.

Elektronisessa piirissä käytämme transistoria kytkimenä sammuttaaksesi ultraäänianturin virran, kun asetuksemme siirtyvät syvään lepotilaan akun säästämiseksi. Muuten se kuluttaa edelleen noin 2 mA. Toisaalta BME280 kuluttaa vain noin 5 μ, kun se on passiivinen, joten sitä ei tarvitse sammuttaa transistorin avulla.

Vaihe 2: ESP8266 -kortin valinta

ESP8266 -kortin valinta
ESP8266 -kortin valinta

Jotta voimme käyttää anturia mahdollisimman pitkään akulla, meidän on säästettävä virrankulutuksessa. Vaikka ESP8266: n Wifi tarjoaa erittäin kätevän tavan yhdistää anturimme pilveen, se on myös melko voimakas. Käytössä ESP8266 kuluttaa noin 80 mA. Joten 2600 mAh: n akkuilla pystyisimme käyttämään laitettamme vain enintään 32 tuntia ennen kuin ne ovat tyhjiä. Käytännössä se on pienempi, koska emme voi käyttää koko 2600 mAh: n kapasiteettia ennen kuin jännite putoaa liian matalalle tasolle.

Onneksi ESP8266: ssa on myös syvä lepotila, jossa lähes kaikki on pois päältä. Suunnitelmana on siis laittaa ESP8266 syvään uneen suurimman osan ajasta ja herättää se niin usein mittaamaan ja lähettämään tiedot Wifi -yhteyden kautta ThingSpeakille. Tämän sivun mukaan syvän unen enimmäisaika oli aiemmin noin 71 minuuttia, mutta ESP8266 Arduino -ydin 2.4.1: n jälkeen se on noussut noin 3,5 tuntiin. Koodissani asetin tunnin.

Kokeilin ensin kätevää NodeMCU-kehityskorttia, mutta valitettavasti syvässä unessa se kului silti noin 9 mA, mikä antaa meille korkeintaan 12 päivän puhdasta syvää unta ilman herätysvälejä. Tärkeä syyllinen on AMS1117 -jännitesäädin, joka käyttää virtaa, vaikka yrität ohittaa sen kytkemällä akun suoraan 3,3 V: n napaan. Tällä sivulla kerrotaan, kuinka jännitesäädin ja USB UART poistetaan. En kuitenkaan koskaan onnistunut tekemään sitä tuhoamatta taulua. Lisäksi USB UART -laitteen poistamisen jälkeen et voi enää muodostaa yhteyttä ESP8266 -laitteeseen selvittääksesi, mikä meni pieleen.

Useimmat ESP8266 -kehityskortit näyttävät käyttävän tuhlaavaa AMS1117 -jännitesäädintä. Yksi poikkeus on WEMOS D1 mini (kuva vasemmalla), joka on taloudellisemman ME6211: n mukana. Itse havaitsin, että WEMOS D1 mini käyttää noin 150 μA syvässä unessa, mikä on enemmän kuin se. Suurin osa siitä johtuu todennäköisesti USB UART -liitännästä. Tämän levyn avulla sinun on kuitenkin juotettava nastojen otsikot itse.

Voimme kuitenkin tehdä paljon paremmin käyttämällä paljaita luita, kuten ESP-12F (kuva oikealla), jossa ei ole USB UART -liitäntää tai jännitesäädintä. Syöttämällä 3,3 V: n nastaa löysin syvän unen kulutuksen vain 22 μA!

Mutta saadaksesi ESP-12F: n toimimaan valmistaudu juottamiseen ja hieman enemmän vaivaa sen ohjelmointiin! Lisäksi jos paristot eivät suoraan anna oikeaa jännitettä, joka on välillä 3V ja 3,6V, meidän on toimitettava oma jännitesäädin. Käytännössä osoittautuu vaikeaksi löytää akkujärjestelmä, joka tarjoaa jännitteen tällä alueella koko purkausjakson aikana. Muista, että meidän on myös saatava virtaa HC-SR04-P-anturille, joka teoriassa voi toimia jopa 3 V: n jännitteellä, mutta toimii tarkemmin, jos jännite on korkeampi. Lisäksi kaaviossa HC-SR04-P kytketään päälle transistorilla, mikä aiheuttaa pienen ylimääräisen jännitehäviön. Käytämme jännitteen säädintä MCP1700-3302E. Suurin tulojännite on 6 V, joten syötämme sitä jopa 4 AA -paristolla. Päätin käyttää 3 AA -paristoa.

Vaihe 3: Luo ThingSpeak -kanava

Käytämme tietojen tallentamiseen ThingSpeakia, IoT -pilvipalvelua. Siirry osoitteeseen https://thingspeak.com/ ja luo tili. Kun olet kirjautunut sisään, luo uusi kanava napsauttamalla painiketta Uusi kanava. Täytä kanava -asetuksissa haluamasi nimi ja kuvaus. Seuraavaksi nimeämme kanavakentät ja aktivoimme ne napsauttamalla oikealla olevia valintaruutuja. Jos käytät koodiani muuttumattomana, kentät ovat seuraavat:

  • Kenttä 1: vedenpinta (cm)
  • Kenttä 2: akun varaustaso (V)
  • Kenttä 3: lämpötila (° C)
  • Kenttä 4: kosteus (%)
  • Kenttä 5: paine (Pa)

Kirjoita muistiin kanavatunnus, Read API -avain ja Write API -avain, jotka löytyvät valikosta API -avaimet.

Voit lukea ThingSpeak -tiedot älypuhelimellasi sovelluksen avulla. Käytän Android -puhelimessani IoT ThingSpeak Monitor -widgettiä. Sinun on määritettävä se kanavatunnuksella ja Read API -avaimella.

Vaihe 4: ESP-12F: n ohjelmointi

ESP-12F: n ohjelmointi
ESP-12F: n ohjelmointi
ESP-12F: n ohjelmointi
ESP-12F: n ohjelmointi

Tarvitsemme paljain luulevyn akun säästämiseksi, mutta haittapuoli on se, että ohjelmointi on hieman vaikeampaa kuin kehityskortti, jossa on sisäänrakennettu USB UART.

Käytämme Arduino IDE: tä. On muitakin ohjeita, jotka selittävät sen käytön, joten kerron lyhyesti täällä. Vaiheet sen valmistamiseksi ESP8266: lle ovat:

  • Lataa Arduino IDE.
  • Asenna tuki ESP8266 -kortille. Lisää Tiedosto - Asetukset - Asetukset -valikkoon URL -osoite https://arduino.esp8266.com/stable/package_esp8266com_index.json Hallituksen ylimääräisiin URL -osoitteisiin. Seuraavaksi valikossa Työkalut - Hallitus - Boards Manager asentaa esp8266 by esp8266 Community.
  • Valitse piirilevyksi: Yleinen ESP8266 -moduuli.

ESP-12F: n käsittelyssä käytin sovitinlevyä, joka on yleisesti saatavilla verkkokaupoista. Juotin sirun levyyn ja sitten juotin otsikot levyyn. Vasta sitten huomasin, että sovitinlevy on liian leveä tavalliselle leipälevylle! Se ei jätä sivulle vapaita tappeja liitäntöjen tekemiseksi.

Ratkaisu, jota etsin, on käyttää U-muotoisia johtoja ja liittää ne oikealla olevan kuvan mukaisesti ennen ESP8266: n asettamista sovitinlevyn kanssa leipälevylle. Joten GND ja VCC on kytketty leipälautan kiskoihin ja loput nastat ovat saatavilla leipälaudan alapuolella. Haittana on, että leipälauta tulee olemaan melko täynnä johtoja, kun olet suorittanut koko piirin. Toinen ratkaisu on sovittaa kaksi leipälautaa yhteen tämän videon mukaisesti.

Seuraavaksi ESP-12F: n ohjelmoimiseksi tietokoneen USB-portin kautta tarvitsemme USB-sarjasovittimen. Käytin FT232RL FTDI ohjelmoijaa. Ohjelmoijalla on hyppyjohdin, jonka voi valita 3.3V tai 5V välillä. ESP8266: n jännite on asetettava 3,3 volttiin. Älä unohda sitä, koska 5 V voi paistaa sirusi! Ajurien asennuksen pitäisi olla automaattista, mutta jos ohjelmointi ei toimi, voit yrittää asentaa ne manuaalisesti tältä sivulta.

ESP8266: ssa on ohjelmointitila uusien laiteohjelmistojen lataamiseksi salamaan ja salamatila nykyisen laiteohjelmiston suorittamiseen flash -muistista. Näiden tilojen valitsemiseksi joidenkin nastojen on otettava tietty arvo käynnistyksen aikana:

  • Ohjelmointi: GPIO0: matala, CH-PD: korkea, GPIO2: korkea, GPIO15: matala
  • Salama: GPIO0: korkea, CH-PD: korkea, GPIO2: korkea, GPIO15: matala

Sovitinlevy huolehtii jo CH-PD: n vetämisestä ylös ja GPIO15: n vetämisestä alas 10K-vastuksilla.

Joten elektronisessa piirissämme on vielä nostettava GPIO2. Tarjoamme myös kytkimen ESP8266: n asettamiseksi ohjelmointiin tai salamatilaan ja kytkimen sen nollaamiseen, mikä tehdään kytkemällä RST maahan. Varmista lisäksi, että liität FT232RL: n TX-nastan ESP8266: n RXD-nastaan ja päinvastoin.

Ohjelmointijärjestys on seuraava:

  • Aseta GPIO2 matalaksi sulkemalla ohjelmointikytkin.
  • Nollaa ESP8266 sulkemalla ja avaamalla sitten nollauskytkin uudelleen. ESP8266 käynnistyy nyt ohjelmointitilassa.
  • Aseta GPIO2 takaisin korkealle avaamalla ohjelmointikytkin.
  • Lataa uusi laiteohjelmisto Arduino IDE: stä.
  • Nollaa ESP8266 uudelleen sulkemalla ja avaamalla nollauskytkin uudelleen. ESP8266 käynnistyy nyt salamatilassa ja käyttää uutta laiteohjelmistoa.

Nyt voit testata, toimiiko ohjelmointi lataamalla kuuluisa Blink -luonnos.

Jos kaikki tämä toimii, ainakin GND-, VCC-, GPIO2-, RST-, TXD- ja RXD -nastat on juotettu ja kytketty oikein. Mikä helpotus! Mutta ennen kuin jatkat, suosittelen testaamaan myös muut nastat yleismittarilla. Itselläni oli ongelma yhden neulan kanssa. Voit käyttää tätä luonnosta, joka asettaa kaikki nastat korkealle yksi kerrallaan 5 sekunniksi ja asettaa sen jälkeen ESP8266: n syvään uneen 20 sekunniksi. Jotta ESP8266 voi herätä syvän unen jälkeen, sinun on liitettävä RST GPIO16: een, joka antaa herätyssignaalin.

Vaihe 5: Luonnoksen lataaminen

Olen asettanut koodin saataville GitHubissa, se on vain yksi tiedosto: Level-Sensor-Deepsleep.ino. Lataa se ja avaa se Arduino IDE: ssä. Tai voit valita Tiedosto - Uusi ja kopioida/liittää koodin.

Sinun on täytettävä joitakin tietoja tiedoston alussa: käytettävän WLAN -verkon nimi ja salasana, staattiset IP -tiedot sekä ThingSpeak -kanavan kanavatunnus ja API -avain.

Tämän blogin vihjeen mukaan käytämme DHCP: n sijasta, jossa reititin määrittää dynaamisesti IP -osoitteen, käytämme staattista IP -osoitetta, jossa asetamme ESP8266: n IP -osoitteen itse. Tämä osoittautuu paljon nopeammaksi, joten säästämme aktiivista aikaa ja siten akun energiaa. Joten meidän on annettava käytettävissä oleva staattinen IP -osoite sekä reitittimen (yhdyskäytävän) IP -osoite, aliverkon peite ja DNS -palvelin. Jos olet epävarma täytettävästä kohdasta, lue staattisen IP -osoitteen määrittäminen reitittimen käyttöoppaasta. Käynnistä kuori (Windows-painike-r, cmd) Windows-tietokoneessa, joka on yhdistetty reitittimeen Wifi-yhteyden kautta, ja kirjoita ipconfig /all. Löydät suurimman osan tarvitsemistasi tiedoista Wi-Fi-osiosta.

Tutkimalla koodia näet, että toisin kuin muut Arduino -koodit, suurin osa toiminnoista tapahtuu asennustoiminnossa silmukkafunktion sijasta. Tämä johtuu siitä, että ESP8266 siirtyy syvään lepotilaan sen jälkeen, kun se on lopettanut asennustoiminnon (ellei aloitettu OTA -tilassa). Kun se herää, se on kuin uusi uudelleenkäynnistys ja se suorittaa asennuksen uudelleen.

Tässä on koodin tärkeimmät ominaisuudet:

  • Herätyksen jälkeen koodi asettaa switchPin (oletus GPIO15) korkealle. Tämä käynnistää transistorin, joka puolestaan kytkee päälle HC-SR04-P-anturin. Ennen nukkumaanmenoa se asettaa nastan takaisin matalalle, sammuttaa transistorin ja HC-SR04-P: n varmistaen, ettei se kuluta kalliimpaa akkuvirtaa.
  • Jos modePIN (oletus GPIO14) on alhainen, koodi menee OTA -tilaan mittaustilan sijaan. OTA: n (over-the-air update) avulla voimme päivittää laiteohjelmiston Wifi: n kautta sarjaportin sijaan. Meidän tapauksessamme tämä on varsin kätevää, koska meidän ei tarvitse enää kytkeä sarjaa USB -sovittimeen lisäpäivityksiä varten. Aseta vain GPIO14 matalaksi (kun OTA -kytkin on elektronisessa piirissä), nollaa ESP8266 (nollauskytkimellä) ja sen pitäisi olla saatavilla Arduino IDE: ssä ladattavaksi.
  • Analogisesta PIN -koodista (A0) mitataan akun jännite. Näin voimme sammuttaa laitteemme, eli pysyvän syvän lepotilan, jos jännite laskee liian matalaksi, alle minVoltage, suojataksemme akut ylipurkautumiselta. Analoginen mittaus ei ole kovin tarkka, teemme numMeasuresBattery (oletus 10) -mittauksia ja otamme keskiarvon tarkkuuden parantamiseksi.
  • HC-SR04-P-anturin etäisyysmittaus suoritetaan toiminnolla distanceMeasurement. Tarkkuuden parantamiseksi mittaus toistetaan numMeasuresDistance (oletus 3) kertaa.
  • On toiminto, jolla voidaan laskea speedOfSound BME280 -anturin lämpötilan, kosteuden ja paineen mittauksen perusteella. BME280: n oletus I2C -osoite on 0x76, mutta jos se ei toimi, sinun on ehkä vaihdettava se arvoon 0x77: bool bme280Started = bme280.begin (0x77);
  • Käytämme BME280: ta pakotetussa tilassa, mikä tarkoittaa, että se kestää yhden mittauksen ja menee takaisin nukkumaan virran säästämiseksi.
  • Jos asetat kapasiteetin (l), täyden etäisyyden (cm) ja alueen (m2), koodi laskee vesisäiliön jäljellä olevan tilavuuden etäisyyden mittauksesta: kaksinkertainen jäljellä oleva tilavuus = tilavuus+10,0*(täysi etäisyys)*-alue; ja lataa tämä ThingSpeakiin. Jos pidät oletusarvot, etäisyys vedenpintaan ladataan cm: nä.

Vaihe 6: Elektronisen piirin rakentaminen

Elektronisen piirin rakentaminen
Elektronisen piirin rakentaminen

Yllä on elektronisen piirin kaavio. Se on melko suuri yhdelle leipälevylle, varsinkin ylisuurella sovitinlevyllä ja temppelillä U-muotoisilla johtimilla. Jossain vaiheessa toivoin varmasti, että olisin käyttänyt vaihtoehtoa yhdistää kaksi leipälautaa, mutta lopulta onnistuin.

Tässä ovat piirin tärkeät ominaisuudet:

  • Siinä on kaksi jännitettä: akun tulojännite (noin 3,75 V) ja 3,3 V, joka syöttää ESP8266: ta ja BME280: ta. Laitoin 3.3V rikkoutumislaudan vasempaan kiskoon ja 3.75V oikeaan kiskoon. Jännitesäädin muuntaa 3,75 V 3,3 V: ksi. Tietolomakkeen ohjeiden mukaisesti lisäsin 1 μF kondensaattoreita jännitesäätimen tuloon ja lähtöön vakauden lisäämiseksi.
  • ESP8266: n GPIO15 on kytketty transistorin porttiin. Tämän ansiosta ESP8266 voi kytkeä päälle transistorin ja siten ultraäänianturin, kun se on aktiivinen, ja sammuttaa sen, kun se menee syvään uneen.
  • GPIO14 on kytketty kytkimeen, OTA -kytkimeen. Kytkimen sulkeminen antaa signaalin ESP8266: lle, jonka haluamme aloittaa OTA-tilassa seuraavaksi, ts. Sen jälkeen, kun painamme (suljemme ja avaamme) RESET-kytkintä ja lataamme uuden luonnoksen langattomasti.
  • RST- ja GPIO2 -nastat on kytketty kuten ohjelmointikaaviossa. RST -nasta on nyt myös liitetty GPIO16: een, jotta ESP8266 voi herätä syvästä unesta.
  • Ultraäänianturin nastat TRIG ja ECHO on kytketty GPIO12: een ja GPIO13: een, kun taas BME280: n nastat SCL ja SDA on liitetty GPIO5: een ja GPIO4: ään.
  • Lopuksi analoginen nasta ADC on tulojännitteeseen kytketyn jännitteenjakajan kautta. Tämä mahdollistaa tulojännitteen mittaamisen akkujen varauksen tarkistamiseksi. ADC -nasta voi mitata jännitteitä 0V ja 1V välillä. Jännitteenjakajaksi valitsimme vastukset 100K ja 470K. Tämä tarkoittaa, että jännite ADC -nastassa on annettu: V_ADC = 100K/(100K+470K) V_in. Kun V_ADC = 1V, tämä tarkoittaa, että voimme mitata tulojännitteitä jopa V_in = 570/100 V_ADC = 5,7V. Mitä tulee virrankulutukseen, myös jännitteenjakajan kautta vuotaa jonkin verran virtaa. Kun V_in = 3,75V paristoista, havaitsemme I_leak = 3,75V/570K = 6,6 μA.

Vaikka piiri toimii paristoista, USB on mahdollista kytkeä sarjasovittimeen. Muista vain irrottaa sovittimen VCC ja kytkeä GND, RX ja TX kuten ohjelmointikaaviossa. Tämä mahdollistaa sarjamittarin avaamisen Arduino IDE: ssä lukemaan virheenkorjausviestit ja varmistamaan, että kaikki toimii odotetulla tavalla.

Koko piirin osalta mitasin virrankulutuksen 50 μA syvässä unessa, kun käytin paristoja. Näitä ovat ESP8266, BME280, ultraääni -anturi (transistorin sammuttama) ja vuoto jännitteenjakajan läpi ja mahdollisesti muut vuodot. Ei siis kovin paha!

Huomasin, että aktiivinen kokonaisaika on noin 7 sekuntia, josta 4,25 sekuntia yhteyden muodostamiseen Wifi -verkkoon ja 1,25 sekuntia tietojen lähettämiseen ThingSpeakiin. Joten 80 mA: n aktiivisella virralla löysin 160 μAh tunnissa aktiivista aikaa varten. Lisäämällä 50 μAh tunnissa syvän unen tilaan meillä on yhteensä 210 μAh tunnissa. Tämä tarkoittaa, että 2600 mAh: n akut kestävät teoriassa 12400 tuntia = 515 päivää. Tämä on ehdoton maksimi, jos voisimme käyttää akkujen täyden kapasiteetin (mikä ei pidä paikkaansa), eikä ole vuotoja, joita en löytänyt nykyisillä mittauksillani. Joten en ole vielä nähnyt, meneekö tämä oikeasti esille.

Vaihe 7: Anturin viimeistely

Anturin viimeistely
Anturin viimeistely
Anturin viimeistely
Anturin viimeistely
Anturin viimeistely
Anturin viimeistely

Laitoin anturin 1 litran muoviseen astiaan, jossa oli keittoa. Tein alareunaan kaksi reikää, jotka sopivat HC-SR04-P-anturin "silmiin". Reikien lisäksi säiliön tulee olla vedenpitävä. Sitten se kiinnitetään vesisäiliön seinään pyöreällä renkaalla, jota tavallisesti käytetään sadeveden tyhjennysputkeen.

Pidä hauskaa projektin kanssa!

Suositeltava: