Përmbajtje:

Sensori i nivelit të kolektorit të ujit me bateri: 7 hapa (me fotografi)
Sensori i nivelit të kolektorit të ujit me bateri: 7 hapa (me fotografi)

Video: Sensori i nivelit të kolektorit të ujit me bateri: 7 hapa (me fotografi)

Video: Sensori i nivelit të kolektorit të ujit me bateri: 7 hapa (me fotografi)
Video: Përse po digjen makinat? Mekanikët tregojnë gabimet që bëjnë shoferët në Shqipëri 2024, Nëntor
Anonim
Sensor i nivelit të kolektorit të ujit me bateri
Sensor i nivelit të kolektorit të ujit me bateri
Sensor i nivelit të kolektorit të ujit me bateri
Sensor i nivelit të kolektorit të ujit me bateri

Shtëpia jonë ka një rezervuar uji të ushqyer nga shiu që bie mbi çati, dhe përdoret për tualetin, lavatriçen dhe lotimin e bimëve në kopsht. Për tre vitet e fundit vera ishte shumë e thatë, kështu që ne e vëzhguam nivelin e ujit në rezervuar. Deri më tani, ne përdorëm një shkop druri, të cilin e vendosëm në rezervuar dhe shënuam nivelin. Por me siguri duhet të jetë e mundur të përmirësohet në këtë!

Këtu vjen ky projekt. Ideja është që të lidhni një sensor tejzanor të distancës në krye të rezervuarit. Ky sensor funksionon si një sonar që lëshon valë zanore, të cilat më pas reflektohen nga sipërfaqja e ujit. Nga koha që duhet që valët të kthehen dhe shpejtësia e zërit, mund të llogaritni distancën në sipërfaqen e ujit dhe të përcaktoni se sa i mbushur është rezervuari.

Meqenëse nuk kam një lidhje kryesore me rezervuarin, është thelbësore që pajisja e plotë të funksionojë në bateri. Kjo do të thotë që unë duhej të isha i vetëdijshëm për konsumin e energjisë të të gjitha pjesëve. Për të dërguar përsëri të dhënat, vendosa të përdor Wi-Fi të integruar të një mikroçipi ESP8266. Ndërsa Wifi është mjaft i etur për energji, ai ka një avantazh ndaj një lloji tjetër të lidhjes radio: mund të lidheni drejtpërdrejt me ruterin pa tel të shtëpisë tuaj pa pasur nevojë të ndërtoni një pajisje tjetër që vepron si stafetë.

Për të kursyer energji unë do ta vendos ESP8266 në gjumë të thellë shumicën e kohës dhe do të bëj një matje çdo orë. Për qëllimin tim për të ndjekur nivelin e ujit, kjo më shumë se mjafton. Të dhënat do të dërgohen në ThingSpeak dhe më pas mund të lexohen në një smartphone përmes një aplikacioni.

Edhe një detaj! Shpejtësia e zërit, thelbësore për matjen e distancës, varet nga temperatura dhe në një masë më të vogël nga lagështia. Për një matje të saktë të jashtme gjatë stinëve, ne do të hedhim një sensor BME280, i cili mat temperaturën, lagështinë dhe presionin. Si një bonus kjo e bën nga sensori ynë i nivelit të ujit edhe një mini stacion moti.

Pjesët:

  • 1x ESP8266 ESP-12F.
  • Pllakë përshtatëse 1x ESP-12F.
  • 1x FT232RL FTDI: Përshtatës USB në Serial.
  • 1x HC-SR04-P: modul matjeje tejzanor i distancës. Vini re se P është e rëndësishme, pasi ky është versioni që ka një tension të ulët minimal të funksionimit prej 3V.
  • 1x version BME280 3.3V: sensori i temperaturës, presionit dhe lagështisë.
  • 1x IRL2203N: transistor MOSFET me kanale n.
  • 1x version MCP1700-3302E 3.3V: rregullator i tensionit.
  • 3x bateri AA e rimbushshme, p.sh. 2600mAh
  • 1x mbajtës baterie për 3 bateri.
  • 1x dërrasë buke.
  • Rezistentët: 1x 470K, 1x 100K, 4x 10K.
  • Kondensatorët: 2x qeramike 1uF.
  • Çelës kalimi 3x
  • Telat e bukës në formë U-je.
  • Telat e kërcyesit.
  • Enë plastike për supë 1l.
  • Unaza e bashkëngjitjes për enën.

E bëra kodin të disponueshëm në GitHub.

Hapi 1: Njohja me sensorin e distancës tejzanor

Njohja me sensorin e distancës tejzanor
Njohja me sensorin e distancës tejzanor
Njohja me sensorin e distancës tejzanor
Njohja me sensorin e distancës tejzanor

Ne do të matim distancën në sipërfaqen e ujit me një sensor tejzanor, HC-SR04-P. Ashtu si një lakuriq nate, ky sensor përdor sonarin: ai dërgon një impuls të shëndoshë me një frekuencë shumë të lartë për veshin e njeriut, pra tejzanor, dhe pret që ai të godasë një objekt, të reflektojë dhe të kthehet. Distanca pastaj mund të llogaritet nga koha që duhet për të marrë jehonën dhe shpejtësinë e zërit.

Konkretisht, nëse kunja Trig tërhiqet lart për të paktën 10 μs, sensori dërgon një shpërthim prej 8 pulse me një frekuencë prej 40 Hz. Përgjigja merret më pas në kunjin Echo në formën e një pulsi me kohëzgjatje të barabartë me kohën midis dërgimit dhe marrjes së pulsit tejzanor. Atëherë ne duhet të ndajmë me 2, meqë pulsi tejzanor po shkon mbrapa dhe me radhë dhe ne kemi nevojë për kohën e udhëtimit në një drejtim, dhe të shumëzojmë me shpejtësinë e zërit, e cila është rreth 340 m/s.

Por prit një minutë! Në fakt, shpejtësia e zërit varet nga temperatura dhe në një masë më të vogël nga lagështia. A po grumbulloj apo është e rëndësishme kjo? Duke përdorur një mjet llogaritjeje ne zbulojmë se në dimër (duke marrë -5 ° C) mund të kishim 328.5 m/s, dhe në verë (duke marrë 25 ° C) 347.1 m/s. Pra, supozoni se gjejmë një kohë udhëtimi me një drejtim prej 3 ms. Në dimër, kjo do të thotë 98.55 cm dhe në verë 104.13 cm. Ky është një ndryshim i madh! Pra, për të marrë saktësi të mjaftueshme gjatë stinëve, madje edhe ditën dhe natën, ne duhet të shtojmë një termometër në konfigurimin tonë. Vendosa të përfshija BME280, i cili mat temperaturën, lagështinë dhe presionin. Në kodin që kam përdorur në funksionin speedOfSound një formulë që llogarit shpejtësinë e zërit në lidhje me të tre parametrat, megjithëse temperatura është me të vërtetë faktori më i rëndësishëm. Lagështia ka ende një efekt më të vogël, por ndikimi i presionit është i papërfillshëm. Ne mund të përdorim një formulë më të thjeshtë duke marrë parasysh vetëm temperaturën që kam zbatuar në speedOfSoundSimple.

Ekziston një pikë tjetër e rëndësishme në HC-SR04. Ekzistojnë dy versione në dispozicion: versioni standard funksionon në 5V, ndërsa HC-SR04-P mund të funksionojë në një sërë tensionesh nga 3V në 5V. Meqenëse 3 bateri AA të rimbushshme sigurojnë rreth 3x1.25V = 3.75V është e rëndësishme të merrni versionin P. Disa shitës mund të dërgojnë një gabim. Pra, hidhini një sy fotove nëse blini një të tillë. Dy versionet duken të ndryshme si në pjesën e pasme ashtu edhe në pjesën e përparme siç shpjegohet në këtë faqe. Në pjesën e pasme në versionin P të tre çipat janë horizontalë ndërsa në versionin standard një është vertikal. Në pjesën e përparme versioni standard ka një përbërës shtesë argjendi.

Në qarkun elektronik ne do të përdorim një tranzistor si një çelës për të fikur fuqinë në sensorin tejzanor kur konfigurimi ynë të shkojë në gjumë të thellë për të kursyer jetën e baterisë. Përndryshe, ai ende do të konsumonte rreth 2mA. BME280 nga ana tjetër konsumon vetëm rreth 5 μ kur është joaktiv, kështu që nuk është e nevojshme ta fikni atë me transistorin.

Hapi 2: Zgjedhja e Bordit ESP8266

Zgjedhja e Bordit ESP8266
Zgjedhja e Bordit ESP8266

Për të përdorur sensorin sa më gjatë që të jetë e mundur në një bateri, duhet të ekonomizojmë konsumin e energjisë. Ndërsa Wifi i ESP8266 siguron një mënyrë shumë të përshtatshme për të lidhur sensorin tonë në re, është gjithashtu shumë i etur për energji. Në funksion ESP8266 konsumon rreth 80mA. Pra, me bateri prej 2600 mAh ne do të jemi në gjendje të punojmë pajisjen tonë jo më shumë se 32 orë para se të jenë bosh. Në praktikë, do të jetë më pak pasi nuk do të jemi në gjendje të përdorim kapacitetin e plotë 2600 mAh para se tensioni të bjerë në një nivel shumë të ulët.

Për fat të mirë, ESP8266 gjithashtu ka një mënyrë të gjumit të thellë, në të cilën pothuajse gjithçka është e fikur. Pra, plani është që të vendosni ESP8266 në gjumë të thellë shumicën e kohës dhe ta zgjoni atë aq shpesh për të bërë një matje dhe për të dërguar të dhënat mbi Wifi në ThingSpeak. Sipas kësaj faqe, koha maksimale e gjumit të thellë ishte 71 minuta, por që nga thelbi ESP8266 Arduino 2.4.1 është rritur në rreth 3.5 orë. Në kodin tim u vendosa për një orë.

Së pari provova bordin e përshtatshëm të zhvillimit të NodeMCU, por më keq, në gjumë të thellë ai akoma konsumoi rreth 9 mA, gjë që na jep të paktën 12 ditë gjumë të pastër të thellë pa marrë parasysh intervalet e zgjimit. Një fajtor i rëndësishëm është rregullatori i tensionit AMS1117, i cili përdor energjinë edhe nëse përpiqeni ta anashkaloni duke e lidhur baterinë drejtpërdrejt me kunjin 3.3V. Kjo faqe shpjegon se si të hiqni rregullatorin e tensionit dhe USB UART. Sidoqoftë, kurrë nuk kam arritur ta bëj atë pa shkatërruar bordin tim. Për më tepër, pas heqjes së USB UART nuk mund të lidheni më me ESP8266 për të kuptuar se çfarë shkoi keq.

Shumica e bordeve të zhvillimit ESP8266 duket se përdorin rregullatorin e tensionit të kotë AMS1117. Një përjashtim është mini WEMOS D1 (foto në të majtë) i cili vjen me ME6211 më ekonomik. Në të vërtetë, zbulova se WEMOS D1 mini përdor rreth 150 μA në gjumë të thellë, që është më shumë si ai. Shumica e tij ndoshta është për shkak të USB UART. Me këtë tabelë ju duhet të bashkoni titujt për kunjat vetë.

Sidoqoftë, ne mund të bëjmë shumë më mirë duke përdorur një dërrasë të zhveshur si ESP-12F (foto në të djathtë), e cila nuk ka një USB UART ose një rregullator të tensionit. Duke ushqyer pinin 3.3V gjeta një konsum në gjumë të thellë vetëm 22 μA!

Por, që ESP-12F të punojë të përgatitet për disa saldime dhe pak më shumë sherr duke e programuar atë! Për më tepër nëse bateritë nuk japin drejtpërdrejt tensionin e duhur, i cili është midis 3V dhe 3.6V, ne duhet të sigurojmë rregullatorin tonë të tensionit. Në praktikë, rezulton se është e vështirë të gjesh një sistem baterie që siguron një tension në këtë interval gjatë ciklit të tij të shkarkimit të plotë. Mos harroni se ne gjithashtu duhet të fuqizojmë sensorin HC-SR04-P, i cili teorikisht mund të funksionojë me një tension aq të ulët sa 3V, por funksionon më saktë nëse tensioni është më i lartë. Për më tepër në diagramin tim HC-SR04-P ndizet nga një tranzistor, i cili shkakton një rënie të vogël shtesë të tensionit. Ne do të përdorim rregullatorin e tensionit MCP1700-3302E. Tensioni maksimal i hyrjes është 6V kështu që e ushqejmë me deri në 4 bateri AA. Vendosa të përdor 3 bateri AA.

Hapi 3: Krijoni një kanal ThingSpeak

Ne do të përdorim ThingSpeak, një shërbim cloud IoT, për të ruajtur të dhënat tona. Shkoni te https://thingspeak.com/ dhe krijoni një llogari. Pasi të jeni regjistruar, klikoni butonin New Channel për të krijuar një kanal. Në Cilësimet e Kanalit plotësoni emrin dhe përshkrimin sipas dëshirës tuaj. Tjetra ne i emërtojmë fushat e kanalit dhe i aktivizojmë duke klikuar kutitë e zgjedhjes në të djathtë. Nëse përdorni kodin tim të pandryshuar, fushat janë si më poshtë:

  • Fusha 1: niveli i ujit (cm)
  • Fusha 2: niveli i baterisë (V)
  • Fusha 3: temperatura (° C)
  • Fusha 4: lagështia (%)
  • Fusha 5: presioni (Pa)

Për referencë në të ardhmen shënoni ID -në e Kanalit, Çelësin API të Lexuar dhe Çelësin Shkruaj API, të cilat mund të gjenden në çelësat e menysë API.

Ju mund të lexoni të dhënat ThingSpeak në smartphone tuaj duke përdorur një aplikacion. Në telefonin tim android unë përdor miniaplikacionin IoT ThingSpeak Monitor. Duhet ta konfiguroni me ID -në e Kanalit dhe Çelësin API të Lexuar.

Hapi 4: Si të programoni ESP-12F

Si të programoni ESP-12F
Si të programoni ESP-12F
Si të programoni ESP-12F
Si të programoni ESP-12F

Ne kemi nevojë për një dërrasë të zhveshur për të kursyer jetën e baterisë, por e keqja është se është pak më e vështirë të programosh sesa një tabelë zhvillimi me USB UART të integruar.

Ne do të përdorim Arduino IDE. Ka udhëzues të tjerë që shpjegojnë se si ta përdorin atë, kështu që unë do të jem i shkurtër këtu. Hapat për ta bërë gati për ESP8266 janë:

  • Shkarkoni ID -në Arduino.
  • Instaloni mbështetje për bordin ESP8266. Në menynë Skedari - Preferencat - Cilësimet shtoni URL -në https://arduino.esp8266.com/stable/package_esp8266com_index.json te URL -të shtesë të Menaxherit të Bordit. Tjetra në menynë Tools - Board - Boards Manager install esp8266 by esp8266 community.
  • Zgjidhni si Tabelë: Moduli Generic ESP8266.

Për të trajtuar ESP-12F kam përdorur një pllakë përshtatës, zakonisht të disponueshme në dyqanet online. Unë e bashkova çipin në pjatë dhe pastaj i bashkova titujt në pjatë. Vetëm atëherë zbulova se pllaka e përshtatësit është shumë e gjerë për një dërrasë standarde të bukës! Nuk lë kunja falas në anën për të bërë lidhjet tuaja.

Zgjidhja për të cilën shkova është përdorimi i telave në formë U dhe lidhja e tyre si në figurën në të djathtë para se të vendosni ESP8266 me pllakën e përshtatësit në tabelën e bukës. Pra, GND dhe VCC janë të lidhura me binarët e dërrasës së bukës dhe kunjat e mbetura vihen në dispozicion më poshtë në tryezën e bukës. Disavantazhi është se paneli juaj do të jetë mjaft i mbushur me tela sapo të përfundoni qarkun e plotë. Një zgjidhje tjetër është të vendosni dy tabela të bukës së bashku siç tregohet në këtë video.

Tjetra, për të programuar ESP-12F përmes portës USB të kompjuterit tuaj ne kemi nevojë për një përshtatës USB në seri. Kam përdorur programuesin FT232RL FTDI. Programuesi ka një bluzë për të zgjedhur midis 3.3V ose 5V. Duhet të vendoset në 3.3V për ESP8266. Mos e harroni pasi 5V mund të skuqet çipi juaj! Instalimi i drejtuesve duhet të jetë automatik, por nëse programimi nuk funksionon, mund të provoni t'i instaloni manualisht nga kjo faqe.

ESP8266 ka një mënyrë programimi për të ngarkuar firmware -in e ri në blic dhe një mënyrë flash për të ekzekutuar firmware -in aktual nga memoria flash. Për të zgjedhur midis këtyre mënyrave, disa kunja duhet të marrin një vlerë të caktuar në kohën e nisjes:

  • Programimi: GPIO0: i ulët, CH-PD: i lartë, GPIO2: i lartë, GPIO15: i ulët
  • Blic: GPIO0: i lartë, CH-PD: i lartë, GPIO2: i lartë, GPIO15: i ulët

Pllaka e përshtatësit tashmë kujdeset për tërheqjen e CH-PD dhe tërheqjen e GPIO15 me rezistencë 10K.

Pra, në qarkun tonë elektronik ne ende duhet të tërheqim GPIO2. Ne gjithashtu sigurojmë një ndërprerës për ta vendosur ESP8266 në programim ose në modalitetin e blicit dhe një ndërprerës për ta rivendosur atë, i cili bëhet duke lidhur RST me tokën. Më tej sigurohuni që të lidhni kunjin TX të FT232RL me kunjin RXD të ESP8266 dhe anasjelltas.

Sekuenca e programimit është si më poshtë:

  • Vendosni GPIO2 në të ulët duke mbyllur çelësin e programimit.
  • Rivendosni ESP8266 duke mbyllur dhe pastaj rihapur çelësin e rivendosjes. ESP8266 tani fillon në modalitetin e programimit.
  • Vendoseni GPIO2 përsëri në lartësi duke hapur çelësin e programimit.
  • Ngarko firmware -in e ri nga Arduino IDE.
  • Rivendosni përsëri ESP8266 duke mbyllur dhe rihapur çelësin e rivendosjes. ESP8266 tani fillon në modalitetin flash dhe funksionon firmware -in e ri.

Tani mund të provoni nëse programimi funksionon duke ngarkuar skicën e famshme Blink.

Nëse e gjithë kjo funksionon të paktën kunjat GND, VCC, GPIO2, RST, TXD dhe RXD janë ngjitur dhe lidhur saktë. Çfarë lehtësimi! Por para se të vazhdoni, unë do të rekomandoja që të testoni edhe kunjat e tjerë me multimetrin tuaj. Unë kisha një problem vetë me një nga kunjat. Ju mund ta përdorni këtë skicë, e cila i vendos të gjitha kunjat në lartësi një nga një për 5 sekonda, dhe më pas e vë ESP8266 në gjumë të thellë për 20 sekonda. Për të mundësuar që ESP8266 të zgjohet pas gjumit të thellë, duhet të lidhni RST me GPIO16, i cili jep sinjalin e zgjimit.

Hapi 5: Ngarkimi i Skicës

Unë e kam vënë kodin në dispozicion në GitHub, është vetëm një skedar: Level-Sensor-Deepsleep.ino. Thjesht shkarkoni dhe hapeni në Arduino IDE. Ose mund të zgjidhni File - New dhe thjesht kopjoni/ngjisni kodin.

Ekzistojnë disa informacione që duhet të plotësoni në fillim të skedarit: emri dhe fjalëkalimi i WLAN për t'u përdorur, detajet IP IP statike dhe ID e Kanalit dhe Shkruani Çelësin API të ThingSpeak Channel.

Duke ndjekur këshillat në këtë blog, në vend të DHCP ku ruteri cakton në mënyrë dinamike një IP, ne përdorim IP statike, ku vendosim vetë adresën IP të ESP8266. Kjo rezulton të jetë shumë më e shpejtë, kështu që ne kursejmë në kohën aktive dhe kështu në energjinë e baterisë. Pra, ne duhet të sigurojmë një adresë IP statike të disponueshme, si dhe IP të ruterit (gateway), maskën e nën -rrjetës dhe një server DNS. Nëse nuk jeni të sigurt për atë që duhet të plotësoni, lexoni për vendosjen e një IP statike në manualin e ruterit tuaj. Në një kompjuter Windows të lidhur përmes routerit Wifi me ju, filloni një shell (butoni Windows-r, cmd) dhe futni ipconfig /all. Do të gjeni shumicën e informacionit që ju nevojitet nën seksionin Wi-Fi.

Duke ekzaminuar kodin shihni se ndryshe nga kodi tjetër Arduino shumica e veprimit ndodh në funksionin e konfigurimit në vend të funksionit të lakut. Kjo ndodh sepse ESP8266 shkon në gjumë të thellë pasi të përfundojë funksionin e konfigurimit (nëse nuk e kemi filluar në modalitetin OTA). Pasi zgjohet, është si një rifillim i ri dhe funksionon përsëri.

Këtu janë tiparet e spikatura të kodit:

  • Pas zgjimit, kodi vendos switchPin (parazgjedhur GPIO15) në të lartë. Kjo ndez transistorin, i cili nga ana e tij ndez sensorin HC-SR04-P. Para se të shkoni në gjumë të thellë, ai e vendos kunjin në nivelin e ulët, duke fikur transistorin dhe HC-SR04-P, duke u siguruar që të mos konsumojë më shumë energji të çmuar të baterisë.
  • Nëse modaliteti PIN (parazgjedhja GPIO14) është i ulët, kodi shkon në modalitetin OTA në vend të mënyrës së matjes. Me OTA (përditësim mbi ajrin) ne mund të azhurnojmë firmware-in përmes Wifi në vend të portës serike. Në rastin tonë, kjo është mjaft e përshtatshme pasi nuk kemi pse ta lidhim serialin me përshtatësin USB për përditësime të mëtejshme. Thjesht vendosni GPIO14 në të ulët (me çelësin OTA në qarkun elektronik), rivendosni ESP8266 (me çelësin e rivendosjes) dhe duhet të bëhet i disponueshëm në Arduino IDE për ngarkim.
  • Në PIN -in analog (A0), ne matim tensionin e baterisë. Kjo na lejon të fikim pajisjen tonë, të njohur si gjumë i thellë i përhershëm, nëse tensioni bëhet shumë i ulët, nën minVoltage, për të mbrojtur bateritë nga shkarkimi i tepërt. Matja analoge nuk është shumë e saktë, ne bëjmë numMeasuresBattery (default 10) masa dhe marrim mesataren për të përmirësuar saktësinë.
  • Matja e distancës së sensorit HC-SR04-P bëhet në funksionin distancaMatja. Për të përmirësuar saktësinë, matja përsëritet numMeasuresDistance (parazgjedhje 3) herë.
  • Ekziston një funksion për të llogaritur shpejtësinë e zërit nga matja e temperaturës, lagështisë dhe presionit nga sensori BME280. Adresa e paracaktuar I2C e BME280 është 0x76, por nëse nuk funksionon, mund t'ju duhet ta ndryshoni në 0x77: bool bme280Started = bme280.begin (0x77);
  • Ne do të përdorim BME280 në mënyrë të detyruar, që do të thotë se merr një matje dhe kthehet në gjumë për të kursyer energji.
  • Nëse vendosni kapacitetin (l), distancën e plotë (cm) dhe zonën (m2), kodi llogarit vëllimin e mbetur të rezervuarit të ujit nga matja e distancës: dyfishi i mbeturVëllimi = kapaciteti+10.0*(distanca e plotë-distancë)*zonë; dhe ngarkojeni këtë në ThingSpeak. Nëse mbani vlerat e paracaktuara, ngarkon distancën në sipërfaqen e ujit në cm.

Hapi 6: Ndërtimi i qarkut elektronik

Ndërtimi i një qarku elektronik
Ndërtimi i një qarku elektronik

Më sipër është diagrami i qarkut elektronik. Quiteshtë mjaft e madhe për një dërrasë buke, veçanërisht me pllakën e përshtatësit të tepërt dhe mashtrimin me telat në formë U. Në një moment sigurisht që do të doja të kisha përdorur alternativën e lidhjes së dy paneleve, por në fund ia dola.

Këtu janë tiparet e rëndësishme të qarkut:

  • Ekzistojnë dy tensione që luajnë një rol: tensioni i hyrjes nga bateria (rreth 3.75V) dhe 3.3V që ushqen ESP8266 dhe BME280. Vendosa 3.3V në shinën e majtë të bordit të thyerjes dhe 3.75V në shinën e djathtë. Rregullatori i tensionit konverton 3.75V në 3.3V. Duke ndjekur udhëzimet në fletën e të dhënave, shtova 1 kF kondensatorë në hyrjen dhe daljen e rregullatorit të tensionit për të rritur qëndrueshmërinë.
  • GPIO15 i ESP8266 është i lidhur me portën e tranzistorit. Kjo lejon që ESP8266 të ndezë tranzistorin dhe kështu sensorin tejzanor kur është aktiv dhe ta fik atë kur shkon në gjumë të thellë.
  • GPIO14 është i lidhur me një ndërprerës, çelësin OTA. Mbyllja e çelësit jep sinjalin për ESP8266 që duam të fillojmë në modalitetin OTA tjetër, domethënë pasi të shtypim (mbyllim dhe hapim) çelësin RESET dhe të ngarkojmë një skicë të re në ajër.
  • Kunjat RST dhe GPIO2 janë të lidhur si në diagramin e programimit. Kunja RST tani është gjithashtu e lidhur me GPIO16 për të lejuar që ESP8266 të zgjohet nga gjumi i thellë.
  • Kunjat TRIG dhe ECHO të sensorit tejzanor janë të lidhur me GPIO12 dhe GPIO13, ndërsa kunjat SCL dhe SDA të BME280 janë të lidhura me GPIO5 dhe GPIO4.
  • Së fundi, kunja analoge ADC është përmes një ndarësi të tensionit të lidhur me tensionin hyrës. Kjo ju lejon të matni tensionin e hyrjes për të kontrolluar ngarkesën e baterive. Kunja ADC mund të masë tensionet midis 0V dhe 1V. Për ndarësin e tensionit ne zgjodhëm rezistorë 100K dhe 470K. Kjo do të thotë që tensioni në kunjin ADC jepet nga: V_ADC = 100K/(100K+470K) V_in. Duke marrë V_ADC = 1V kjo do të thotë që ne mund të masim tensionet hyrëse deri në V_in = 570/100 V_ADC = 5.7V. Sa i përket konsumit të energjisë, ka edhe rrjedhje të rrymës përmes ndarësit të tensionit. Me V_in = 3.75V nga bateritë gjejmë I_leak = 3.75V/570K = 6.6 μA.

Edhe kur qarku funksionon nga bateritë, është e mundur të lidhni USB me përshtatësin serik. Vetëm sigurohuni që të shkëputni VCC të përshtatësit dhe lidhni GND, RX dhe TX si në diagramin e programimit. Kjo bën të mundur hapjen e Monitorit Serial në Arduino IDE për të lexuar mesazhet e korrigjimit dhe për t'u siguruar që gjithçka po funksionon siç pritej.

Për qarkun e plotë kam matur një konsum aktual prej 50 μA në gjumë të thellë kur punoj nga bateritë. Këtu përfshihen ESP8266, BME280, sensori tejzanor (i fikur nga transistori) dhe rrjedhja përmes ndarësit të tensionit dhe ndoshta rrjedhjeve të tjera. Pra, kjo nuk është shumë e keqe!

Kam gjetur se koha totale aktive është rreth 7 sekonda, nga të cilat 4.25 sekonda për t'u lidhur me Wifi dhe 1.25 sekonda për të dërguar të dhënat në ThingSpeak. Pra, me një rrymë aktive prej 80mA kam gjetur 160 μAh në orë për kohën aktive. Duke shtuar 50 μAh në orë për gjendjen e gjumit të thellë kemi gjithsej 210 μAh në orë. Kjo do të thotë që bateritë 2600 mAh teorikisht zgjasin 12400 orë = 515 ditë. Ky është maksimumi absolut nëse mund të përdorim kapacitetin e plotë të baterive (gjë që nuk është kështu) dhe nuk ka rrjedhje që nuk i gjeta me matjet e mia aktuale. Kështu që unë ende nuk kam parë nëse kjo përfundon vërtet.

Hapi 7: Përfundimi i sensorit

Përfundimi i sensorit
Përfundimi i sensorit
Përfundimi i sensorit
Përfundimi i sensorit
Përfundimi i sensorit
Përfundimi i sensorit

E vendosa sensorin në një enë plastike prej 1 litri, e cila më parë përmbante supë. Në pjesën e poshtme kam bërë dy vrima për t'iu përshtatur "syve" të sensorit HC-SR04-P. Përveç vrimave, ena duhet të jetë e papërshkueshme nga uji. Pastaj është ngjitur në murin e rezervuarit të ujit me një unazë rrethore që zakonisht përdoret për një tub kullimi të ujërave të shiut.

Argëtohuni me projektin!

Recommended: