Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Kwanini Kituo kingine cha Hali ya Hewa?
- Hatua ya 2: Unahitaji Nini?
- Hatua ya 3: Mradi huu umenifanya nifikirie na kujifunza mengi…
- Hatua ya 4: Kutumia Maonyesho ya E-karatasi
- Hatua ya 5: Kuifanya
- Hatua ya 6: Nambari na Faili
Video: Kituo kingine cha hali ya hewa mahiri, Lakini : Hatua 6 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Sawa, najua kuna vituo vingi vya hali ya hewa vinavyopatikana kila mahali, lakini chukua dakika chache kuona tofauti…
- Nguvu ya chini
- Maonyesho 2 ya e-karatasi…
- lakini skrini 10 tofauti!
- ESP32 msingi
- accelerometer na sensorer ya joto / unyevu
- Sasisho la Wifi
- Kesi iliyochapishwa ya 3D
na mbinu zingine nyingi muhimu…
Wazo kuu ni kuonyesha habari anuwai kwenye maonyesho yote mawili kulingana na mwelekeo wa sanduku. Kesi hiyo iko katika sura ya sanduku la dawa ya parallele, jiwe la kutengeneza, na aina ya ukanda ambao hutumika kama mguu.
Vifaa
Kama unavyoona, mfumo una skrini 2 za karatasi na sanduku la 3D iliyochapishwa. Lakini kuna mambo mengi ndani yake:
- ESP32
- Accelerometer moja ya MPU6050
- Sensorer ya DHT22
- Betri ya LiPo
- PCB ya kuunganisha kitu kizima
- Nyuzi za duPont za nyumbani
na muunganisho wa Wi-Fi. Kwa kweli mitandao 3 imetangazwa, mfumo unawajaribu kila mmoja hadi ifanikiwe kuunganisha.
Hatua ya 1: Kwanini Kituo kingine cha Hali ya Hewa?
Wazo ni kuonyesha habari anuwai kwenye skrini zote mbili kulingana na mwelekeo wa sanduku. Kesi hiyo iko katika sura ya sanduku la dawa ya parallele, jiwe la kutengeneza, na aina ya ukanda ambao hutumika kama msaada kuifanya isimame.
Accelerometer hugundua harakati na mwelekeo na husababisha maonyesho.
Ili kuokoa nishati, nilichagua skrini za barua-pepe (angalia marejeo hapa chini) ambayo huweka onyesho hata ikiwa halina nguvu tena. Vivyo hivyo kwa ESP32, nilichagua moduli ya Lolin32 (mashuhuri kwa uchangamfu wake) na ilibidi nijifunze jinsi ya kudhibiti usingizi mzito, na kuamka kwa usumbufu unaozalishwa na kiharusi.
Skrini zimeunganishwa kupitia SPI, nilitafuta kidogo kabla ya kupata pini zinazofaa kuziunganisha kwa ESP32, nikijua kuwa ninahitaji pia I2C kwa kasi, pini kusoma DHT22 na zingine 2 kwa kipimo cha voltage ya betri. ESP32 ni karibu kushtakiwa kabisa! Kujua kuwa pini zingine zinasomeka tu (nilitumia zile za sensorer ya DHT), zingine haziwezi kutumiwa pamoja na Wifi, ilikuwa ngumu kupata usanidi sahihi.
Sanduku linaweza kuelekezwa kwa mwelekeo 4, pamoja na gorofa. Yote ambayo inafanya 4 * 2 + 2 = 10 aina ya habari inayowezekana kuonyesha na skrini 2 tu. Kwa hivyo hukuruhusu kuonyesha vitu vingi:
- Tarehe, na mtakatifu wa siku
- Wakati wa sasa
- Utabiri wa hali ya hewa ya leo
- Utabiri wa hali ya hewa kwa saa zijazo
- Utabiri wa hali ya hewa kwa siku zijazo
- Kiwango cha malipo ya betri
- Na kama nilikuwa bado na chumba, nukuu ya nasibu kutoka kwa tovuti maalum.
Hatua ya 2: Unahitaji Nini?
- ESP32: Moduli ya Lolin32 (nguvu ndogo sana, iliyo na kiunganishi cha betri, inaweza kuchaji betri kupitia USB pamoja)
- Maonyesho 2 ya chapisho: inchi 4.2 na inchi 2.9. Nilichagua mifano kutoka kwa Duka La Kuonyesha Nzuri.
- Sensorer ya DHT22
- Accemometer ya MCU6050 - sensa ya gyrometer I2C
- Betri ya LiPo
- Kwa kipimo cha voltage ya betri: vipingaji 2k 10k, kontena 1 100k, 1 100nF capacitor, 1 transistor ya MOSFET
- Solder na chuma cha soldering, bodi ya mzunguko iliyochapishwa
- Ufikiaji wa printa ya 3D kwa kesi hiyo
Picha iliyoambatanishwa inaonyesha msimamo wa vifaa vyote kwenye PCB: Ilinibidi kuokoa nafasi kutoshea kwenye kesi hiyo, ambayo haipaswi kuwa kubwa sana.
Ili kupata data ya hali ya hewa, unahitaji pia kujiandikisha kwenye API za hali ya hewa na uweke funguo zako katika sehemu sahihi kwenye faili ya 'Variables.h' (tazama hapa chini).
Tovuti za hali ya hewa:
- apixu
- accuweather
Hatua ya 3: Mradi huu umenifanya nifikirie na kujifunza mengi…
Mfumo huu ulipaswa kuwa na nguvu ndogo, kwa hivyo hauitaji kuchaji betri kila usiku … Ili kuokoa nishati, nilichagua skrini za e-karatasi ambazo zinaweka onyesho hata ikiwa hazina nguvu tena. Vivyo hivyo kwa ESP32, nilichagua moduli ya Lolin32 (mashuhuri kwa uchangamfu wake) na ilibidi nijifunze jinsi ya kudhibiti usingizi mzito, na wito wa kuamsha usumbufu unaotokana na kasi ya kasi.
Sanduku linaweza kuelekezwa kwa mwelekeo 4, gorofa zaidi. Yote katika yote ambayo hufanya 4 * 2 + 2 = aina 10 za habari zinazowezekana kuonyesha. Kwa hivyo hukuruhusu kufanya vitu vingi: tarehe, na mtakatifu wa siku, wakati, utabiri wa hali ya hewa ya leo, utabiri wa hali ya hewa kwa masaa au siku zijazo, kiwango cha malipo ya betri na nukuu ya nasibu kutoka kwa tovuti maalum.
Ni mengi kutafuta kwenye mtandao, na kama unavyojua: WiFi ni adui wa kuokoa nishati…
Kwa hivyo tunalazimika kudhibiti unganisho, ili kuonyesha habari ya kisasa lakini bila kutumia muda mwingi kuunganisha. Shida nyingine ngumu zaidi: kuweka wakati sahihi. Sihitaji RTC kwani naweza kupata wakati kwenye wavuti, lakini saa ya ndani ya ESP32 hutembea kidogo, haswa wakati wa kulala. Ilinibidi kutafuta njia ya kukaa sahihi vya kutosha, wakati nikisubiri kuweka upya saa kwa mtandao. Ninaiunganisha tena kwenye mtandao kila saa.
Kwa hivyo kuna biashara kati ya uhuru (mzunguko wa unganisho la mtandao) na usahihi wa habari iliyoonyeshwa.
Shida nyingine inayotatuliwa ni kumbukumbu. Wakati ESP32 iko kwenye usingizi mzito, kumbukumbu hupotea, isipokuwa ile inayoitwa RTC RAM. Kumbukumbu hii ina upana wa 4MB, ambayo 2 tu inaweza kutumika kwa programu hiyo. Katika kumbukumbu hii, lazima nihifadhi anuwai ya programu ambazo zinapaswa kuwekwa kutoka kwa utekelezaji hadi mwingine, baada ya awamu ya kulala: utabiri wa hali ya hewa, wakati na tarehe, majina ya faili za ikoni, nukuu, n.k ilibidi nijifunze kukabiliana nayo.
Kuzungumza juu ya ikoni, zinahifadhiwa kwenye SPIFFS, mfumo wa faili wa ESP32. Kufuatia kufungwa kwa API ya hali ya hewa ya Wunderground ya bure, ilibidi nitafute watoaji wengine wa data ya hali ya hewa ya bure. Nilichagua mbili: moja kwa hali ya hewa ya siku ya sasa, na utabiri wa masaa 12, na nyingine kwa utabiri wa siku nyingi. Aikoni hazifanani, kwa hivyo imenisababishia shida mbili mpya:
- Chagua seti ya aikoni
- Linganisha alama hizi na nambari za utabiri za tovuti mbili
Barua hii pia imehifadhiwa kwenye RAM ya RTC ili isiwe lazima kupakiwa kila wakati.
Shida ya mwisho na aikoni. Haiwezekani kuzihifadhi zote kwenye SPIFFS. Nafasi ni ndogo sana kwa faili zangu zote. Ilikuwa ni lazima kufanya ukandamizaji wa picha. Niliandika hati katika Python inayosoma faili zangu za ikoni na kuziibana kuwa RLE, na kisha kuhifadhi faili zilizobanwa katika SPIFFS. Kuna uliofanyika.
Lakini maktaba ya kuonyesha ya e-karatasi huchukua faili za aina ya BMP tu, sio picha zilizobanwa. Kwa hivyo ilibidi niandike kazi ya ziada kuweza kuonyesha ikoni zangu kutoka kwa faili hizi zilizobanwa.
Takwimu zilizosomwa kwenye wavuti mara nyingi huwa katika muundo wa json: data ya hali ya hewa, Mtakatifu wa siku. Ninatumia maktaba (kubwa) ya arduinoJson kwa hili. Lakini nukuu sio kama hizo. Ninazichukua kutoka kwa wavuti iliyojitolea, kwa hivyo lazima nizisome kwa kuangalia moja kwa moja kwenye yaliyomo kwenye ukurasa wa wavuti. Ilinibidi kuandika nambari maalum kwa hiyo. Kila siku, karibu usiku wa manane, programu hiyo huenda kwenye wavuti hii na kusoma juu ya nukuu kumi za nasibu, na kuzihifadhi kwenye RTC RAM. Moja huonyeshwa bila mpangilio kati yao wakati nyumba inaelekezwa kwa skrini kubwa kwenda juu.
Ninakupitisha shida ya kuonyesha wahusika wenye lafudhi (samahani, lakini nukuu ziko kwa Kifaransa)….
Wakati skrini ndogo imeinuka, voltage ya betri huonyeshwa, na kuchora ili kuona vizuri kiwango kilichobaki. Ilikuwa ni lazima kufanya mkutano wa elektroniki kusoma voltage ya betri. Kwa kuwa kipimo hakipaswi kutoa betri, nilitumia mchoro uliopatikana kwenye wavuti, ambayo hutumia transistor ya MOSFET kama swichi ili kutumia sasa tu wakati kipimo kinafanywa.
Ili kuweza kutengeneza mzunguko huu na kutoshea kila kitu ndani ya sanduku, kwamba nilitaka ndogo iwezekanavyo, ilibidi nifanye PCB kuunganisha vifaa vyote vya mfumo. Hii ni PCB yangu ya kwanza. Nilikuwa na bahati kwa sababu kila kitu kilifanya kazi vizuri mara ya kwanza upande huu…
Tazama ramani ya kupandikiza: "eneo lililokatazwa" ni eneo lililotengwa kwa kuunganisha kebo ya USB. Moduli ya Lolin32 hukuruhusu kuchaji tena betri kupitia USB: betri inachajiwa ikiwa kebo ya USB imeunganishwa, na moduli inafanya kazi kwa wakati mmoja.
Jambo la mwisho: fonti. Ya saizi tofauti, kwa ujasiri au la, ilibidi iundwe na kuhifadhiwa. Maktaba ya Adafruit GFX inachukua huduma hiyo vizuri, mara tu ikiwa umeweka faili za fonti kwenye saraka sahihi. Ili kuunda faili, nilitumia wavuti ya Kubadilisha herufi, rahisi sana!
Hakikisha unachagua:
- Onyesha hakikisho: TFT 2.4"
- Toleo la Maktaba: Adafruit GFX Font
Kwa hivyo muhtasari: mradi mkubwa, ambao uliniruhusu kujifunza mambo mengi
Hatua ya 4: Kutumia Maonyesho ya E-karatasi
Ubaya kuu wa skrini hizi unaonekana wazi kwenye video: sasisho la onyesho huchukua sekunde moja au mbili na hufanywa kwa kuangaza (onyesho mbadala la matoleo ya kawaida na yaliyogeuzwa ya skrini mbili). Hii inakubalika kwa habari ya hali ya hewa kwa sababu siisasisha mara nyingi (kila saa isipokuwa mabadiliko ya mwelekeo wa sanduku). Lakini sio kwa wakati huo. Ndio sababu (na kupunguza matumizi) bado ninatumia onyesho la HH: MM (sio sekunde).
Kwa hivyo ilibidi nitafute njia nyingine ya kusasisha onyesho. Skrini hizi (zingine) zinasaidia sasisho la sehemu (linalotumika kwa eneo la skrini, au kwa skrini nzima…) lakini haikuwa nzuri kwangu kwa sababu skrini yangu kubwa (ambayo inaonyesha wakati) huweka vizuka vya saizi ambayo hubadilishwa. Kwa mfano, wakati wa kupita kutoka 10:12 hadi 10:13, '2' inaonekana kidogo ndani ya '3', na itaonekana zaidi baada ya '4', '5', nk. kuonyesha kuwa hii ndio kesi kwa skrini yangu: Nilijadili na mwandishi wa maktaba ya kuonyesha e-karatasi GxEPD2 ambaye aliniambia kuwa hakuangalia jambo hili na skrini zake mwenyewe. Tulijaribu kubadilisha vigezo bila kufanikiwa katika uwindaji wa vizuka.
Kwa hivyo ilibidi tutafute suluhisho lingine: Nilipendekeza kufanya kiburudisho mara mbili, ambacho kilitatua shida (angalau inaniridhisha). Masaa hupita bila skrini kuwaka na hakuna vizuka. Walakini, mabadiliko sio ya haraka: inachukua zaidi ya sekunde moja kubadilisha wakati.
Hatua ya 5: Kuifanya
Ili kuhakikisha kuwa hakuna kitu kinachoingia ndani wakati mwelekeo unabadilika, vifaa tofauti (maonyesho, moduli za elektroniki, PCB, betri) zimefungwa na bunduki ya gundi. Ili kupeleka waya chini ya PCB, niliiweka kwenye miguu iliyotengenezwa na spacers, vivyo hivyo kwa betri.
Hivi karibuni nitafunga kiunganishi cha kipaza sauti cha nje cha USB kwa hivyo sitalazimika kufungua kesi ili kuchaji betri.
Labda pia nitavutiwa kusasisha na OTA ili kuikamilisha yote….
Hatua ya 6: Nambari na Faili
Faili tatu za kumbukumbu zinatolewa:
- Kituo cha hali ya hewa.zip: nambari ya Arduino, kupakia kwa kutumia IDE ya Arduino
- Boite ecran.zip: faili za printa za CAD na 3D kwa kesi hiyo
- data.zip: faili zinazopakiwa kwenye SPIFFS za ESP32.
Ikiwa haujui jinsi ya kupakia faili kwenye SPIFFS ya ESP32, soma tu mafunzo haya, ambayo inatoa programu-jalizi muhimu sana na jinsi ya kuitumia katika Arduino IDE.
Programu ya usingizi mzito ni tofauti kabisa na programu ya kawaida ya Arduino. Kwa ESP32, inamaanisha kuwa ESP32 inaamka na kutekeleza usanidi, kisha inalala. Kwa hivyo, kazi ya kitanzi haina kitu, na haitekelezwi kamwe.
Awamu fulani ya uanzishaji lazima iendeshwe mara moja tu wakati wa utekelezaji wa kwanza (kama vile kupata wakati, data ya hali ya hewa, nukuu, nk), kwa hivyo ESP32 inahitaji kujua ikiwa kuamka kwa sasa ni ya kwanza au la: kwa hiyo, suluhisho ni kuhifadhi tofauti katika RTC RAM (ambayo inabaki hai hata wakati wa usingizi mzito) ambayo huongezeka kila uchao. Ikiwa ni sawa na 1 basi ni utekelezaji wa kwanza na ESP32 inaendesha awamu ya uanzishaji, vinginevyo awamu hii imerukwa.
Kuamsha ESP32 juu, kuna uwezekano kadhaa:
- Kuamka kwa saa: nambari huhesabu muda wa usingizi mzito kabla ya kulala. Hii hutumiwa kusasisha wakati (kila 1, 2, 3, au dakika 5) au data ya hali ya hewa (kila masaa 3 au 4) ya nukuu na mtakatifu wa siku (kila masaa 24)
- Kukatisha kuamka: accelerometer hutuma ishara ambayo hutumiwa kuamsha ESP32 juu. Hii hutumiwa kugundua mabadiliko ya mwelekeo na kusasisha maonyesho
- Kuamsha sensor ya kugusa: ESP32 imewekwa na pini kadhaa zinazofanya sensorer za kugusa, lakini haziwezi kutumiwa na kuamka kwa saa, kwa hivyo sikutumia hii.
Kuna ujanja mwingine wa programu mahali pengine kwenye nambari, kuweka wakati sahihi wakati wa kuokoa nishati (yaani usiunganishe seva ya NTP kila dakika), kuondoa lafudhi ambazo hazitegemezwi na maktaba ya Adafruit GFX, ili kuepuka kusasisha onyesho ikiwa sio lazima, kuweka vigezo vya accelerometer haswa kwa kukatiza kuamka, hesabu kwa usahihi wakati wa kulala ikiwa kunaweza kuamka kwa wakati, epuka kutumia kiweko cha Serial ikiwa haijaunganishwa na IDE (kuokoa nishati tena), kata wifi wakati haihitajiki, nk… na nambari imejaa maoni ambayo husaidia kuelewa kazi.
Asante kwa kusoma hii inayoweza kufundishwa (yangu ya kwanza kabisa). Natumai utaipenda na kufurahiya kutengeneza kituo hiki cha hali ya hewa
Mkimbiaji Juu katika Shindano la Sensorer
Ilipendekeza:
Kituo cha Hali ya Hewa cha NaTaLia: Kituo cha Hali ya Hewa ya Arduino Inayotumiwa Imefanywa kwa Njia Sahihi: Hatua 8 (na Picha)
Kituo cha Hali ya Hewa cha NaTaLia: Kituo cha Hali ya Hewa ya Arduino Inayotumiwa Imefanywa kwa Njia Sawa: Baada ya mwaka 1 wa kufanikiwa katika 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 vipindi kutoka kwa nguvu ya jua. Ukifuata
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
Kituo kingine cha hali ya hewa cha IoT: Hatua 8
Kituo kingine cha hali ya hewa cha IoT: Ifuatayo ilikuwa zawadi ya kuzaliwa kwa Baba yangu; aliongozwa na Agizo jingine ambalo niliona na mwanzoni nilikusudia kudhibitishwa kwake kama kitanda cha kujijenga. Walakini wakati wa kuanza kufanya kazi pamoja naye kwenye mradi huu niligundua haraka sana kwamba mwanzoni
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,
Kituo kingine cha hali ya hewa (Y.A.W.S.): Hatua 18 (na Picha)
Kituo kingine cha Hali ya Hewa (Y.A.W.S.): Mradi huu ni chaguo langu kwenye Kituo cha hali ya hewa maarufu. Mgodi unategemea ESP8266, a.96 ” O onyesho na safu ya sensorer ya mazingira ya BME280. Vituo vya hali ya hewa vinaonekana kuwa mradi maarufu sana. Mgodi unajitofautisha na ot