Orodha ya maudhui:
- Hatua ya 1: Operesheni ya Kituo cha Hali ya Hewa
- Hatua ya 2: Matoleo ya kwanza
- Hatua ya 3: Kuunda Kituo cha hali ya hewa cha Mafanikio
- Hatua ya 4: Orodha ya vifaa
- Hatua ya 5: Mkutano
- Hatua ya 6: Ubunifu wa Kesi
- Hatua ya 7: Programu
- Hatua ya 8: Toleo la 2 (Kulingana na ESP32)
Video: Kituo cha Hali ya Hewa cha NaTaLia: Kituo cha Hali ya Hewa ya Arduino Inayotumiwa Imefanywa kwa Njia Sahihi: Hatua 8 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:49
Baada ya mwaka 1 wa operesheni iliyofanikiwa kwenye maeneo 2 tofauti ninashiriki mipango yangu ya mradi wa kituo cha hali ya hewa na kuelezea jinsi ilibadilika kuwa mfumo ambao unaweza kuishi kwa muda mrefu kutoka kwa nguvu ya jua. Ukifuata maagizo yangu na kutumia vifaa sawa sawa na vilivyoorodheshwa, unaweza kujenga kituo cha hali ya hewa kinachotumia jua ambacho kitatumika kwa miaka mingi. Kwa kweli, sababu pekee inayopunguza utatumika kwa muda gani ni muda wa matumizi ya betri unachotumia.
Hatua ya 1: Operesheni ya Kituo cha Hali ya Hewa
1, Transmitter: Sanduku lililowekwa nje na paneli ya jua ambayo hutuma telemetry ya hali ya hewa (Joto, Unyevu, Kiashiria cha Joto, Nguvu ya jua) mara kwa mara kwa kitengo cha mpokeaji wa ndani.
2, Mpokeaji: Kitengo cha ndani kilichotengenezwa kutoka Raspberry PI 2 + Arduino Mega kuwa na Mpokeaji wa RF ya 433 Mhz iliyounganishwa kwa upokeaji wa data. Katika usanidi wangu kitengo hiki hakina utendaji wowote wa kuonyesha LCD. Inaendesha bila kujali. Programu kuu ya C inachukua huduma ya kupokea data inayoingia kutoka kwa Arduino kupitia safu, kisha kuiweka data kwenye faili ya maandishi na kufanya data ya mwisho iliyopatikana ipatikane kwa simu kwa vifaa vingine kuiuliza.
Kituo kinadhibiti taa nyumbani kwangu kwa kusoma photoresistor (ambayo huamua ikiwa ni mchana au usiku nje). Mpokeaji hana kichwa katika kesi yangu lakini unaweza kurekebisha mradi kwa urahisi ili kuongeza onyesho la LCD. Moja ya kifaa kinachotumia, kuchambua na kuonyesha data ya hali ya hewa kutoka kituo ni mradi wangu mwingine: Ironforge Kitumbua cha NetBSD.
Hatua ya 2: Matoleo ya kwanza
Kuna miradi mingi ya jua kwenye wavu lakini nyingi zinafanya makosa ya kawaida kwamba mfumo unachukua nishati zaidi kutoka kwa betri kwa muda ambao jopo la jua linaweza kujaza, haswa wakati wa miezi ya baridi na ya mawingu.
Unapobuni mfumo wa umeme wa jua jambo la pekee ni UTUMIAJI WA NGUVU, kwenye vifaa vyote: mcu, transmita ya redio, mdhibiti wa voltage nk.
Kutumia kompyuta kubwa kama kifaa cha rasipiberi au kifaa cha wifi chenye njaa kama ESP tu kukusanya na kusafirisha data kadhaa za hali ya hewa itakuwa jambo la ziada lakini kama nitakavyoonyesha katika mafunzo haya hata bodi ndogo ya Arduino iko.
Bora zaidi ni kupima sasa wakati wa mchakato wako wa ujengaji na mita au upeo (muhimu wakati unapojaribu kupima spikes ndogo katika matumizi wakati wa operesheni kwa saa fupi sana (milliseconds)).
Kwenye picha ya kwanza unaweza kuona kituo changu cha kwanza (Arduino Nano Based) na bodi ya pili ya Arduino Barebone Atmega 328P.
Toleo la kwanza, ingawa lilifanya kazi kikamilifu (mazingira ya ufuatiliaji na kutuma data kupitia redio) ilikuwa na matumizi makubwa sana ya nguvu ~ 46mA na ikatoa betri katika wiki chache.
Matoleo yote yalikuwa yakitumia betri ifuatayo:
18650 6000mAh Li-ion Inayoweza Kulipishwa Bodi ya Ulinzi iliyojengwa
Sasisha kwenye betri hizi za ScamFire. Ingawa hii ni ya zamani inayoweza kufundishwa bado nilihisi kulazimika kuirekebisha kwa sababu ya betri hii bandia. Usinunue betri iliyotajwa, fanya utafiti wako mwenyewe kuhusu betri zingine za LION / LIPO, betri zote 3.7V zitafanya kazi na mradi huu.
Mwishowe nilikuwa na wakati wa kuondoa batri ya ScamFire kuona ni nini uwezo halisi ni. Kwa hivyo tutafanya mahesabu 2 kando na uwezo halisi na "uliotangazwa".
Kwanza kabisa, hiyo ni jambo moja kuwa betri hii ni bandia na hakuna chochote wanachodai juu yake ni kweli, matoleo mapya ni mabaya zaidi walinakili bandia na kuacha mzunguko wa ulinzi wa senti 2 kwa hivyo hakuna kitu kitakachowazuia kutoa hadi sifuri.
Nakala ndogo juu ya betri za SIMBA / LIPO: https://learn.adafruit.com/li-ion-and-lipoly-batte …….
TLDR:
Maana yake ni kwamba kiwango cha juu cha seli ni 4.2v na kwamba "nominella" (wastani) voltage ni 3.7V.
Kwa mfano, hapa kuna wasifu wa voltage ya betri ya 'classic' 3.7V / 4.2V. Voltage huanza kwa kiwango cha juu cha 4.2 na huanguka haraka hadi karibu 3.7V kwa maisha mengi ya betri. Mara baada ya kugonga 3.4V betri imekufa na saa 3.0V mzunguko wa cutoff hukata betri.
Vipimo vyangu kutumia mzigo wa dummy:
Betri imeshtakiwa: 4.1V
Cutoff imewekwa kuwa: 3.4V
Uigaji wa mzigo: 0.15A (kifaa changu kilikuwa na shida kidogo na kwenda chini kuliko hii.)
Uwezo uliopimwa: 0.77Ah ipe bure 0.8 Ah ambayo ni 800mAh badala ya 6000mAh iliyotangazwa!
Kwa kuwa betri hii haikuwa na mzunguko wa ulinzi ningeweza kushuka kwa uhuru lakini saa 3.4V baada ya dakika 10 tayari imeanguka hadi 3.0V.
Kwa hivyo kwa mahesabu rahisi betri inatoa:
Kinadharia
Voltage ya betri = 3.7V
Nguvu = 3.7x6000 = 22000 mWh
Halisi
Voltage ya betri = 3.7V Nguvu = 3.7x800 = 2960 mWh
Toleo: 0.1 ARDUINO NANO BASED
Hata na maktaba ya LowPower nano ya Arduino hutumia ~ 16 mA (katika hali ya kulala) -> FAIL.
Kinadharia
Banda = VxIavg = 5Vx16mA = 80 mW
Maisha ya betri = 22000/80 = masaa 275 = siku 11 takriban
RealPavg = VxIavg = 5Vx16mA = 80 mW
Maisha ya betri = 800/80 = masaa 10
Toleo: 0.2 Atmega 328P Barebone
Nguvu inayotumiwa na ATmega328 inategemea sana kile unachofanya nayo. Kukaa tu katika hali chaguomsingi, inaweza kutumia 16mA @ 5V wakati inaendesha 16MHz.
Wakati ATmega328P iko katika Njia inayotumika, itaendelea kutekeleza maagizo milioni kadhaa kwa sekunde. Kwa kuongezea, Analog ya pembezoni ya Bodi Analog to Digital Converter (ADC), Interface Sheripheral Interface (SPI), Timer 0, 1, 2, Two Interface (I2C), USART, Watchdog Timer (WDT), na Utambuzi wa Kahawia-nje (BOD) hutumia nguvu.
Ili kuokoa nguvu, ATmega328P MCU inasaidia njia kadhaa za kulala na vifaa vya pembeni visivyotumiwa vinaweza kuzimwa. Njia za kulala zinatofautiana katika sehemu gani zinabaki kazi, kwa muda wa kulala na wakati unaohitajika kuamka (kipindi cha kuamka). Njia ya kulala na vifaa vya pembeni vinaweza kudhibitiwa na maktaba ya kulala na ya nguvu ya AVR au, kwa ufupi, na maktaba bora ya Nguvu za Chini.
Maktaba ya Power Low ni rahisi kutumia lakini ina nguvu sana. Taarifa LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF); inaweka MCU katika SLEEP_MODE_PWR_DOWN kwa 16 ms hadi 8 s, kulingana na hoja ya kwanza. Inalemaza ADC na BOD. Kulala chini kwa nguvu kunamaanisha kuwa kazi zote za chip zimelemazwa hadi usumbufu unaofuata. Kwa kuongezea, oscillator ya nje imesimamishwa. Usumbufu wa kiwango tu kwenye INT1 na INT2, usumbufu wa mabadiliko ya pini, mechi ya anwani ya TWI / I2C, au WDT, ikiwa imewezeshwa, inaweza kuamsha MCU. Kwa hivyo na taarifa moja, utapunguza matumizi ya nishati. Kwa 3.3 V Pro Mini bila nguvu ya LED na bila mdhibiti (angalia hapa chini) ambayo inaendesha taarifa hiyo, matumizi ya nishati ni 4.5 μA. Hiyo ni karibu sana na kile kinachotajwa kwenye lahajedwali la ATmega328P la kulala kwa nguvu-chini na WDT imewezeshwa na 4.2 μA (hifadhidata iliyounganishwa kwenye vyanzo). Kwa hivyo, nina ujasiri kabisa, kwamba kazi ya PowerDown inafunga kila kitu kinachowezekana. Na taarifa ya LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);, WDT italemazwa na hautaamka hadi usumbufu utakapoanzishwa.
Kwa hivyo na usanidi wa barebone tunaweza kuweka chip kwenye hali ya kulala kwa dakika 5, wakati inachukua nishati kidogo sana (0.04 mA bila vifaa vya pembeni). Walakini hii ni chip tu ya Atmega 328P na oscillator ya kioo na hakuna kitu kingine chochote, nyongeza ya voltage inayotumika katika usanidi huu kuongeza voltage ya betri kutoka 3.7V -> 5.0 V pia hutumia 0.01 mA.
Mtiririko mmoja wa voltage ya mara kwa mara ilikuwa kiboreshaji cha picha kilichoongeza matumizi kwenye hali ya kulala hadi 1 mA ya jumla (hii ni pamoja na vifaa vyote).
Fomula ya kuhesabu matumizi sahihi ya kifaa katika hali ya kulala na kuamka ni:
Iavg = (Ton * Ion + Kulala * Kulala) / (Ton + Tsleep)
Ion = 13mA
Hii inakuja sana kutoka kwa transmitter ya RF433 Mhz:
Mpitishaji:
Voltage ya kufanya kazi: 3V - 12V fo max. matumizi ya nguvu 12VKufanya kazi kwa sasa: max Chini ya 40mA max, na min 9mAR mode ya kujionea: (SAW) Njia ya Moduli: ASKMfumo wa kufanya kazi: Hawa 315MHz Au 433MHz Nguvu ya usambazaji: 25mW (315MHz saa 12V) Kosa la mara kwa mara: + 150kHz (max) Kasi: chini ya 10Kbps
Kulala = 1mA
Ingekuwa chini sana bila mpinga picha.
Wakati wa Trunon Ton = 250 mS = 0.25s
Wakati wa kulala Kulala = 5 min = 300s
Iavg = (Ton * Ion + Kulala * Kulala) / (Ton + Tsleep)
Iavg = (0.25s * 13mA + 300s * 1mA) / (0.25s + 300s)
Iavg = 1.26mA
Banda = VxIavg = 5Vx1.26mA = 6 mW
Kinadharia
Maisha ya betri = 22000mWh / 6mW = masaa 3666 = siku 152 takriban
Halisi
Maisha ya betri = 800mWh / 6mW = masaa 133 = siku 5.5 takriban
Ingawa hizi bado zilikuwa safu bora ya UltraFire kile nilichotumia mwanzoni unaweza kuona kuwa bila jopo la jua au matumizi ya chini ya 1mA mradi huu hauwezi kuishi kwa muda mrefu.
Jisikie huru kujenga kituo na andika matokeo na mahesabu yako kwa maoni na nitasasisha nakala hiyo. Napenda pia kufahamu matokeo na MCU tofauti na kuongeza waongofu.
Hatua ya 3: Kuunda Kituo cha hali ya hewa cha Mafanikio
Ingawa ni toleo la kwanza lenye mafanikio, lina kasoro kidogo kwenye picha na siwezi kuzirudisha kwa sababu vituo tayari vimepelekwa. Viongezaji viwili vya voltage vilivyoonyeshwa kwenye picha vinapatikana wakati wa uandishi wa modeli ya aero na matumizi mengine. Wakati nilibadilisha kituo changu nilikuwa nikifikiria kupata bodi ndogo ya kusonga na yenye ufanisi zaidi, hata hivyo ukubwa mdogo haimaanishi kuwa ni bora zaidi.
Moduli mpya mpya kwenye picha ambayo haina hata kiashiria imeongozwa kwa kweli imeondoa 3mA (* FAIL *) yenyewe, kwa hivyo nilikaa na bodi yangu ya zamani:
Udhibiti wa PFM DC-DC USB 0.9V-5V hadi 5V dc Kuongeza Module ya Usambazaji wa Nguvu
Wakati wa kuandika moduli hii bado inapatikana kwenye Ebay kwa asilimia 99 lakini ukiamua kutumia nyongeza nyingine, angalia utumiaji wa nguvu kila wakati. Pamoja na nyongeza ya ubora mzuri haipaswi kuwa zaidi ya yangu (0.01 mA), ingawa taa ndogo kwenye bodi ilipaswa kuuzwa.
Hatua ya 4: Orodha ya vifaa
- 18650 6000mAh Li-ion Inayoweza Kulipishwa Bodi ya Ulinzi iliyojengwa
- Atmega 328P16M 5V na bootloader
- Adafruit DC Boarduino (Arduino sambamba) Kit (w / ATmega328) <huu utakuwa uwekezaji mzuri ikiwa unafanya miradi ya siku za usoni
- Picha Mwangaza Nyeti Resistor Picharesistor Optoresistor 5mm GL5539
- 1A 1000V Diode 1N4007 IN4007 DO-41 Diode za kurekebisha
- Udhibiti wa PFM DC-DC USB 0.9V-5V hadi 5V dc Kuongeza Module ya Usambazaji wa Nguvu
- 1.6W 5.5V 266mA Mini Mini Solar Panel Module System Epoxy Cell Charger DIY
- TP405 5V Mini USB 1A Lithium Battery Chaja Moduli
- Kifurushi cha 433Mhz RF na kipokeaji cha kiungo cha Arduino / ARM / MC kijijini
- Sanduku la Mlango wa Mlinzi wa IP65 wa Mlango wa Nje wa Maji 150x110x70mm
- Joto mpya ya Joto la DHT22 na Moduli ya Sura ya Unyevu ya Arduino
- 1x220 Ohm, 2x10KOhm, 1xLED, 1xMini Badilisha, 1x1N4007diode
- Adafruit 16 MHz Resonator / Oscillator ya kauri [ADA1873]
- Arduino UNO / Mega nk kwa kituo cha mpokeaji + Raspberry PI 1/2/3
- Futa Sanduku la Plastiki la Akriliki (hiari)
Unaweza kupata hizi zote kwenye Ebay, sitaki kukuza wauzaji wowote kwa kuunganisha na kurasa zao na viungo vitakuwa vimekufa katika siku zijazo hata hivyo.
Vidokezo vya orodha ya vifaa:
Ikiwa utatengeneza Atmega kwa njia fulani na programu kununua zaidi yao, hiyo hiyo huenda kwa nyongeza ya voltage na mtawala wa malipo ya jua.
Chaja ya jua ina LED 2 za rangi ndogo ambazo zinawashwa tu ikiwa zinaweza kuchaji jua na zinaonyesha (nyekundu-> kuchaji, bluu-> majimbo kamili). Hizi zinaweza kuuzwa pia. Badala yake inatoa juisi kidogo zaidi kwa betri wakati wa kuchaji.
Kama unavyoona hakuna wamiliki wa betri kwenye orodha yangu. Kwa nini? Kwa sababu hawaaminiki. Nilikuwa na nyakati nyingi wakati betri iliondoka kutoka kwa kishikiliaji na kupoteza muunganisho. Hasa ikiwa usanidi wako umewekwa juu ya nguzo ya juu kama yangu, fungua kwa hali yoyote mbaya ya hali ya hewa. Niliweka betri ndani ya mmiliki na zipu 2 na bado imeweza kutoka. Usifanye hivyo, ondoa mipako ya nje kutoka kwa betri na uunganishe waya moja kwa moja chini ya betri, iliyo na mzunguko wa ulinzi wa kuzidi (usipite ulinzi). Mmiliki wa betri anaweza kutumika kwa kushikilia tu betri mahali kwenye kifaa.
Bodi ya kuchaji betri ya TP405 5V Mini USB 1A Lithium: kwa bahati mbaya bodi hii haijumuishi ulinzi wa sasa wa kurudisha kwa jopo la jua, kwa hii utahitaji diode 1 zaidi kuwekwa kati ya mguu mmoja wa jopo la jua na mzunguko wa kuchaji ili kujaribu kujaribu sasa kutiririka tena kwenye jopo la jua wakati wa usiku.
Hatua ya 5: Mkutano
Bodi hii ina vifaa vichache na alama kwenye ubao ni rahisi.
Hakikisha kuwa HAUINGI Atmega328P kwa njia isiyofaa (ambayo inaweza kuchoma moto na kutengeneza matofali, inaweza kuharibu nyongeza ya voltage pia).
Katika usanidi huu chip inaangalia chini (PIN1 ndogo ya kuashiria shimo). Vipengele vingine vyote vinapaswa kuwa dhahiri.
Tumia kebo yenye ngao (kwa mfano: Kebo ya Sauti kutoka kwa CDrom itafanya vizuri) kwa LDR. Katika hali zingine (zaidi ya wiki nyingi za jaribio) ilibainika kuwa inaingilia usambazaji wa ishara ya redio. Hii ilikuwa moja ya mende hizo ngumu kusuluhisha kwa hivyo ikiwa hutaki shida tumia kebo iliyokingwa, mwisho wa hadithi.
LED: LED iliyo chini ya sanduku hapo awali iliongezewa kupepesa wakati kuna usafirishaji wa redio inayotoka lakini baadaye nimeiona kama upotezaji wa nguvu na inaangaza tu mara 3 kwenye mchakato wa bootup.
TP: ni hatua ya kujaribu kupima sasa kwa mzunguko mzima.
DHT22: Usinunue DHT11 ya bei rahisi, tumia senti 50 zaidi kupata DHT22 nyeupe ambayo inaweza kupima joto hasi pia.
Hatua ya 6: Ubunifu wa Kesi
Ingawa ni ujazo kidogo, mchemraba uliochapishwa wa 3D (weather_cube) ulifanywa kushikilia sensorer ya joto ya DHT22 mahali. Mchemraba umewekwa chini ya sanduku la IP, ikiwa na shimo 1 tu kwa hewa kufikia sensor. Nimeongeza wavu kwenye shimo dhidi ya nyuki, nyigu na nzi wengine wadogo.
Sanduku la nje linaweza kutumiwa kwa hiari kukifanya kituo kisizidi maji ikiwa utakiweka kwenye mti wa sahani wazi.
Wazo la kipengee 1 muhimu: kuongeza bamba kubwa la chuma 1-2cms juu ya sanduku inayotoa kivuli kutoka jua wakati wa majira ya joto, ingawa hii inaweza pia kuchukua mwangaza wetu wa jua kutoka kwa jopo. Unaweza kuja na muundo ambao hutenganisha jopo na sanduku (ikiacha jopo kwenye jua, sanduku kwenye kivuli).
Kwenye picha: moja ya vituo vilivyoondolewa kutoka kwa mazingira ya kufanya kazi baada ya mwaka 1, voltage ya betri iko kwenye hali ya kushangaza ya 3.9V bado, hakuna uharibifu wa maji kwa sehemu yoyote ya sanduku ingawa wavu nilioweka chini ya mchemraba ulipasuka. Sababu ya kituo kuhitaji kuhudumiwa ni kosa la unganisho kwenye kontakt ya LDR, ingawa kebo ya kuruka ilionekana bado iko mahali hapo, unganisho ulivunjika kwa hivyo pini wakati mwingine ilikuwa ikielea ikitoa usomaji mbaya wa Analog ya LDR. Pendekezo: ikiwa unatumia vifaa vya kawaida vya kuruka kwa PC, weka gundi zote baada ya kituo kufanya kazi kikamilifu ili kuepuka hili.
Hatua ya 7: Programu
Nambari ya programu itahitaji maktaba 3 ya nje (LowPower, DHT, VirtualWire). Nilikuwa na shida kupata baadhi yao kwa urahisi mkondoni hivi karibuni kwa hivyo niliwaunganisha katika faili tofauti ya ZIP. Bila kujali unatumia OS gani Linux / Windows, pata tu folda yako ya maktaba ya Arduino IDE na uiondoe hapo.
Ujumbe tu, bila kujali kwamba mimi tayari nashauri dhidi ya kununua DHT11, ikiwa utatumia aina isiyo sahihi ya sensorer ya DHT mpango huo utaning'inia milele mwanzoni mwa sehemu ya uanzishaji (hautaona hata kuanza kuongozwa blink mara 3).
Nambari kuu ya kitanzi ni rahisi sana, kwanza inasoma maadili ya mazingira (joto, fahirisi ya joto, unyevu, jua), hupeleka kupitia redio kisha hutumia maktaba ya nguvu ya chini kuweka Arduino kwa usingizi kwa dakika 5.
Nimegundua kuwa kupunguza baudrate itaongeza utulivu wa usambazaji wa redio. Kituo kinatuma data ndogo sana, 300 bps ni zaidi ya kutosha. Pia usisahau kwamba mtoaji anafanya kazi tu kutoka kwa takriban. 4.8V, katika toleo la baadaye la 3.3V hii inaweza kusababisha ubora mbaya zaidi wa usafirishaji (kutuma data kupitia kuta na vizuizi vingine). Ninapata shida kwa kutumia Arduino Mega iliyounganishwa na Raspberry PI 2 inayoweka Mega kutoka PI, ambayo sikupokea maambukizi yoyote. Suluhisho lilikuwa kuiwezesha Mega kutoka kwa usambazaji tofauti wa 12V wa nje.
Hatua ya 8: Toleo la 2 (Kulingana na ESP32)
Kila kitu ambacho kinaweza kuvunjika kitavunja kunukuu Murphy mzuri wa zamani na mwishowe baada ya miaka vituo vilishindwa kwa njia za kushangaza. Mmoja alianza kutuma data ya jua ya gibberish ambayo ilikwenda hadi makumi ya maelfu, ambayo haiwezekani kwa sababu: Bodi ya Arduino ina kituo 6 (vituo 8 kwenye Mini na Nano, 16 kwenye Mega), Analog 10-bit kwa kibadilishaji cha dijiti. Hii inamaanisha kuwa itaweka ramani ya pembejeo kati ya 0 na 5 volts kuwa nambari kamili kati ya 0 na 1023. Kwa hivyo baada ya kubadilisha redio, LDR na kupanga tena Atmega 328P mara kadhaa niliacha na kuamua ni wakati wa ubunifu. Wacha tuende ESP32.
Bodi nilichotumia ilikuwa: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi & Kadi ya Bluetooth Rev1 MicroPython 4MB FLASH
wiki.wemos.cc/products:lolin32:lolin32_lit…
Mdhibiti Mdogo wa ESP-32
Uendeshaji wa Voltage 3.3V Pini za I / O za Dijiti 19 Pini za Kuingiza Analog 6 Kasi ya Saa (Max) 240Mhz Flash 4M byte Urefu 5mm Upana 2.54mm Uzito 4g
Ambayo tofauti na ile ya picha haina nembo ya LOLIN (bandia kutoka China). Mshangao wangu wa kwanza mzuri ni kwamba pini iliyochapishwa kwenye ubao ilikuwa sawa na pinout ya Arduino! Baada ya kushughulika na bodi nyingi ambazo hazina jina ambapo ilibidi nitafute pinouts siku nzima nimekufa nimechoka kufanya makosa mwishowe bodi ambayo pinout iko moja kwa moja mbele WoW!
Walakini hapa kuna upande wa giza wa hadithi:
Hapo awali nimeunganisha LDR na A15 ambayo ni pini 12 kwa sababu ilikuwa rahisi kuchoma pini pamoja. Halafu nimepata usomaji 4095 (ambayo ni kiwango cha juu unachoweza kupata na AnlogRead kwenye ESP32) ambayo ilinipeleka karanga kwa sababu sababu yote kwa nini niliunda kituo hicho ilikuwa kusoma kwa LDR kutoka kwa ile ya zamani (DHT ilikuwa bado inafanya kazi vizuri). Kwa hivyo inageuka kuwa:
Esp 32 inajumuisha rejista mbili za AC-12-bit. ADC1 whit 8 chaneli zilizoambatishwa na GPIOs 32-39 na ADC2 weupe chaneli 10 kwenye pini nyingine. Jambo ni kwamba ESP32 inatumia ADC2 kusimamia kazi za wifi, kwa hivyo ukitumia Wifi, huwezi kutumia rejista hiyo. ADC ya dereva API inasaidia ADC1 (njia 8, zilizounganishwa na GPIOs 32 - 39), na ADC2 (vituo 10, vilivyounganishwa na GPIOs 0, 2, 4, 12 - 15 na 25 - 27). Walakini, matumizi ya ADC2 ina vizuizi kadhaa kwa matumizi:
ADC2 hutumiwa na dereva wa Wi-Fi. Kwa hivyo programu inaweza kutumia ADC2 tu wakati dereva wa Wi-Fi hajaanza. Pini zingine za ADC2 hutumiwa kama pini za kufunga (GPIO 0, 2, 15) kwa hivyo haziwezi kutumiwa kwa uhuru. Ndivyo ilivyo katika vifaa vifuatavyo vya Maendeleo:
Kwa hivyo kuunganisha LDR kutoka kwa pini 12 hadi A0 ambayo ni VP ilitatua kila kitu lakini siipati kwa nini wanaorodhesha pini za ADC2 kama zinazopatikana kwa watengenezaji. Je! Ni wangapi wengine wa hobby walipoteza muda wa tani hadi kuijua hii? Angalau weka alama pini zisizoweza kutumiwa na nyekundu au kitu au usizungumze kwenye mwongozo hata hivyo watengenezaji wengine wanaweza tu kujua juu yao ikiwa wanahitaji kweli. Kusudi lote la ESP32 ni kuitumia na WIFI, kila mtu hutumia na WIFI.
Anza vizuri jinsi ya kuanzisha IDE ya Arduino kwa bodi hii:
Ingawa niliiweka kwenye nambari hapa inaenda tena:
Nambari hii haiwezi kukusanyika kwa aina zingine za ESP32 kuliko Weemos LOLIN 32!
Jenga mipangilio: -Tumia upakiaji / serial: 115200 -Tumia CPU / ram: 240Mhz (Wifi | BT) -Tumia flash freq: 80 Mhz
Kuna tani za vituo vya hali ya hewa vya ESP32 kwenye wavu, ni kawaida zaidi kuliko toleo langu 1 lilikuwa na chip ya barebone kwa sababu ni rahisi kusanidi, hauitaji programu ya programu-jalizi tu kifaa kwenye usb na uipange na hali ya kulala sana ni bora kwa muda mrefu kukimbia kutoka kwa betri. Mara tu kutoka kwa popo hili ndilo jambo la kwanza kabisa nilijaribu hata kabla ya kuuza kwenye pini za kuzuka kwa sababu kama nilivyoona sehemu nyingi katika mradi huu jambo muhimu zaidi ni matumizi ya nguvu na kwa betri ya sasa (bandia) na paneli ndogo ya jua kusubiri umeme hauwezi kupita zaidi ya 1-2mKama vinginevyo mradi hautaweza kujiendeleza kwa muda mrefu.
Ilikuwa mshangao mzuri tena kwamba hali ya usingizi mzito inafanya kazi kama ilivyotangazwa. Wakati wa usingizi mzito sasa ilikuwa chini sana hivi kwamba mita yangu rahisi nyingi haikuweza kuipima (inanifanyia kazi).
Wakati wa kutuma data sasa ilikuwa karibu 80mA (ambayo ni karibu mara 5 kuliko wakati Atmega 328P ilikuwa ikiamka na kusambaza), hata hivyo usisahau kuwa na V1 kulikuwa na bomba la umeme la wastani la 1mA kwenye LDR katika hali ya kulala (ambayo pia ilitegemea viwango vya nuru na kutoka 0.5mA - 1mA) ambayo sasa imekwenda.
Sasa kwa kuwa betri ya UltraFire imeondolewa ikiwa unatumia betri sawa hapa ndio unaweza kutarajia:
Iavg = (Ton * Ion + Kulala * Kulala) / (Ton + Tsleep)
Iavg = (2s * 80mA + 300s * 0.01mA) / (2s + 300s) Iavg = 0.5mA
Banda = VxIavg = 5Vx0.5mA = 2.5 mW
Kinadharia
Maisha ya betri = 22000mWh / 2.5mW = masaa 8800 = siku 366 takriban
Halisi
Maisha ya betri = 800mWh / 2.5mW = masaa 320 = siku 13 takriban
Sikuwa na upeo wa kupima kwa usahihi zamu ya wakati, lakini kwa tepe zangu hujifunga karibu sekunde 2.
Sikutaka kutumia alasiri kwa kuweka alama kila kitu kwa kila kitu kwa hivyo nilitafuta vituo vingine vya hali ya hewa kwenye Maagizo kulingana na ESP32 ili kuona kile wanachofanya kwa kuhifadhi data. Kwa kusikitisha niligundua kuwa wanatumia tovuti ambazo hazibadiliki na zenye mipaka kama hali ya hewa. Kwa kuwa mimi sio shabiki wa "wingu" na nambari yao imevunjika kwa muda mrefu kwa sababu tovuti imebadilisha ni API tangu wakati huo, nimechukua dakika yangu 10 kutengeneza suluhisho la kawaida kwa sababu sio ngumu kama vile mtu anaweza kudhani. Tuanze!
Kwanza kabisa hakuna picha ya bodi ya mzunguko kando kwa mradi huu, kwa sababu hutumia vifaa sawa sawa (samahani kwa ile iliyouzwa kwenye picha mbaya ya mkate) kama V1 na tofauti kwamba kila kitu kinaendesha 3.3V. DHT ilishikamana na pullup kwa VCC, LDR ilishuka chini na 10k. Shida ambayo mtu anaweza kuona na betri za 18650 kama bandia yangu ya Kichina (6500 mAh jua kali ya moto lol: D) ni kwamba wanaanza kupunguzwa kutoka kwa umri mpya wa 4.1V na kwenda hadi mzunguko wao wa cutoff utakapoanza kumaliza uharibifu wa seli (wale ambao wamebahatika kuwa nayo). Hii hakuna mahali pazuri kwetu kama pembejeo ya 3.3V. Ingawa bodi hii ya LOLIN ina kiunganishi cha betri ya lithiamu na mzunguko wa kuchaji katika mradi huu nilitaka kukarabati zaidi kile ninachoweza kutoka kituo cha zamani kwa hivyo na 18650 ya zamani HUWEZI kutumia hii iliyojengwa kwenye chaja. Suluhisho lilikuwa rahisi sana: nilikata kebo ndogo ya USB iliyouzwa kwenye 5V kutoka kwa nyongeza ya zamani ya voltage na shida ya voila iliyotatuliwa, kwani bodi kwenye microUSB ina mdhibiti.
Kwa hivyo tofauti kati ya toleo la zamani na jipya ambalo katika betri ya zamani hutoa 3.7V -> imeongezwa hadi 5V -> ardu inaendesha kwa 5V -> vifaa vyote vinaendeshwa kwa 5V.
Katika mpya: betri hutoa 3.7V -> imeongezwa hadi 5V -> imewekwa kupitia regboard kwenye ESP32 -> vifaa vyote vinaendeshwa kwa 3.3V.
Programu yenye busara tutahitaji maktaba nyingine ya DHT pia, DHT ya Arduino haiendani na ESP. Tunachohitaji inaitwa DHT ESP.
Nilianza kuweka nambari yangu karibu na mfano wa DHT nambari hii iliyotolewa. Kufanya kazi kwa nambari ni:
1, Pata data ya mazingira kutoka kwa data ya DHT + Solar kutoka kwa photocell
2, Unganisha kwa wifi na IP tuli
3, POST data kwa hati ya php
4, Nenda kulala kwa dakika 10
Kama utakavyogundua niliweka nambari hiyo kwa ufanisi ili kupunguza kabisa muda wa kuamka kwani inachukua nguvu mara 5 kuliko mradi wa zamani ulipowashwa. Je! Nilifanyaje hii? Kwanza kabisa ikiwa kuna aina yoyote ya makosa kazi ya GetTemperature () itarudi na uwongo (ambayo inamaanisha kulala kwa dakika 10 tena). Hii inaweza kuwa kama sensorer ya DHT haiwezi kuzinduliwa au unganisho la wifi halipatikani. Unapoona kitanzi cha kawaida wakati () cha kuendelea kujaribu ushirika wa wifi milele kiliondolewa pia lakini ucheleweshaji wa sekunde 1 ulihitajika kuachwa hapo vinginevyo haitaunganisha kila wakati na pia inategemea aina ya AP, mzigo n.k jinsi ilivyo haraka itatokea, na 0.5s nilipata tabia isiyo sawa (wakati mwingine haikuweza kuungana). Ikiwa mtu yeyote anajua njia bora ya kufanya hivyo tafadhali acha kwenye maoni. Ni wakati tu data ya DHT itakaposomwa NA unganisho la wifi liko juu ndipo litajaribu kutuma data hiyo kwenye hati kwenye seva ya wavuti. Aina zote za kazi za kupoteza muda kama Serial.println () zimezimwa katika hali ya kawaida ya utendaji pia. Kama seva mimi pia ninatumia IP kuzuia utaftaji wa DNS usiofaa, katika nambari yangu lango lote la msingi na seva ya dns iliyowekwa hadi 0.0.0.0.
Sielewi kwanini ni ngumu sana kuunda API yako mwenyewe wakati yote inahitajika ni:
sprintf (majibu, "temp =% d & hum =% d & hi =% d & sol =% d", temp, hum, hi, sol);
int httpResponseCode = http. POST (majibu);
Unaweka nambari hii ndogo ya php kwa pi yoyote ya raspberry na unaweza kufanya kazi za mfumo () mara moja kulingana na telemetry kama kuwasha mashabiki au kuwasha taa ikiwa kuna giza la kutosha.
Vidokezo kadhaa juu ya nambari:
WiFi.config (staticIP, lango, subnet, dns); // LAZIMA iwe baada ya Wifi kuanza jinsi bubu…
Njia ya WiFi (WIFI_STA); // LAZIMA vinginevyo pia itaunda AP isiyohitajika
Ndio vizuri sasa unajua. Pia mpangilio wa usanidi wa IP unaweza kubadilika kupitia majukwaa, nilijaribu mifano mingine kwanza ambapo maadili ya lango na subnet yalibadilishwa. Kwa nini kuweka IP tuli? Kweli ni dhahiri kabisa, ikiwa una sanduku la kujitolea kwenye mtandao wako kama seva ya linux inayoendesha isc dhcpd, hutaki maingizo milioni moja ya kumbukumbu kutoka wakati ESP inapoamka na kupata IP kutoka kwa DHCP. Routers kawaida haziingilii vyama hivyo ambazo hazitaonekana. Hii ndio bei ya nguvu ya kuokoa.
V2 haijawahi kujiendeleza kutokana na betri yenye ubora mbaya na nimeiweka tu kwenye adapta kwa hivyo ikiwa unataka kujenga V1 au V2 USINUNUE betri iliyotajwa, fanya utafiti wako mwenyewe juu ya betri (yoyote 18650 zaidi ya uwezo wa 2000mAh uliotangazwa kwenye Ebay ni utapeli na uwezekano mkubwa).
Ilipendekeza:
Kikapu cha Kunyongwa cha Kituo cha hali ya hewa cha juu: Hatua 11 (na Picha)
Kikapu cha kunyongwa cha Kituo cha hali ya hewa ya juu: Halo kila mtu! Katika chapisho hili la blogi ya T3chFlicks, tutakuonyesha jinsi tulivyotengeneza kikapu kizuri cha kunyongwa. Mimea ni nyongeza safi na nzuri kwa nyumba yoyote, lakini inaweza kuchosha haraka - haswa ikiwa unakumbuka tu kuyamwagilia wakati wako
Kituo cha hali ya hewa cha DIY na Kituo cha Sensorer cha WiFi: Hatua 7 (na Picha)
Kituo cha hali ya hewa cha DIY na Kituo cha Sensor cha WiFi: Katika mradi huu nitakuonyesha jinsi ya kuunda kituo cha hali ya hewa pamoja na kituo cha sensorer cha WiFi. Kituo cha sensorer hupima data ya joto na unyevu wa ndani na kuipeleka, kupitia WiFi, kwa kituo cha hali ya hewa. Kituo cha hali ya hewa kisha kinaonyesha t
1.8 Kituo cha hali ya hewa cha hali ya juu cha TFT LCD: Hatua 5
1.8 Kituo cha hali ya hewa cha hali ya juu cha TFT LCD: Kidogo kidogo, lakini kubwa
IoT Imefanywa Rahisi: Kukamata Takwimu za hali ya hewa ya mbali: Joto la UV na Hewa na Unyevu: Hatua 7
IoT Imefanywa Rahisi: Kukamata Takwimu za hali ya hewa ya mbali: Joto la UV na Hewa na Unyevu: Kwenye mafunzo haya, tutachukua data za mbali kama UV (Mionzi ya Ultra-Violet), joto la hewa na unyevu. Takwimu hizo zitakuwa muhimu sana na zitatumika katika Kituo kamili cha hali ya hewa kamili. Mchoro wa block unaonyesha kile tutapata mwisho
Acurite 5 katika Kituo cha hali ya hewa 1 Kutumia Raspberry Pi na Weewx (Vituo vingine vya hali ya hewa vinaendana): Hatua 5 (na Picha)
Acurite 5 katika Kituo cha hali ya hewa 1 Kutumia Raspberry Pi na Weewx (Vituo vingine vya hali ya hewa vinaendana): Wakati nilikuwa nimenunua Acurite 5 katika kituo cha hali ya hewa cha 1 nilitaka kuweza kuangalia hali ya hewa nyumbani kwangu nilipokuwa mbali. Nilipofika nyumbani na kuitengeneza niligundua kuwa lazima ningepaswa kuwa na onyesho lililounganishwa na kompyuta au kununua kitovu chao cha busara,