Turinys:
- 3 žingsnis: JAWS: programinė įranga
- 4 žingsnis: daugiau programinės įrangos …
- 5 veiksmas: kai kurios ekrano nuotraukos…
- 6 žingsnis: baigta?
Video: JAWS: Tiesiog kita orų stotis: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Padaryti tokį žandikaulį yra gana paprasta.
Jūs gaunate savo jutiklius, sudedate juos ant lentų ir pradedate naudotis bibliotekomis, pateiktomis kartu su jutikliais.
Pradėkime nuo programos sąrankos.
Kadangi aš kalbu olandiškai (gimtoji), visi duomenys ir didžioji dalis mano naudojamų kintamųjų yra olandų kalba. Taigi dabar jūs turite galimybę išmokti kitą kalbą …
Ko mes norime iš JAWS?
Lengva: norime žiūrėti ekraną, kuriame rodomas tikrasis laikas, data, efemeridai (saulė pakilo, saulė nusileido, dienos ilgumas ir astronominis vidurdienis).
Be to, būtų malonu pamatyti vidaus ir išorės temperatūrą, santykinę drėgmę ir rasos tašką bei oro slėgį.
Kad būtų lengviau, aš naudoju temperatūros laipsnius, o slėgiui - hPa (= mBar). Taigi niekas neturi skaičiuoti atgal nuo Farenheito ar svarų už kvadratą …
Šiuo metu yra tik šie duomenys …
Ateityje pridėsiu oro greitį, vėjo kryptį ir kritulius.
Idėja yra ta, kad turėsiu lauko orų namelį ir visi duomenys bus siunčiami į 2,4 GHz dažnį į vidinį įrenginį.
3 žingsnis: JAWS: programinė įranga
Norėdami patekti į mūsų programinę įrangą, daugumą jų galima rasti esamose bibliotekose.
JAWS naudoju šiuos:
- SPI.h: originali „Arduino“biblioteka, skirta 4 laidų protokolui. Jis naudojamas TFT skydui
- „Adafruit_GFX.h“ir „MCUfriend_kbv.h“: abu naudojami grafikai ir ekranui. Tai leidžia labai lengvai rašyti tekstą, nubrėžti linijas ir langelius TFT ekrane.
- dht.h: mūsų DHT: ši biblioteka gali būti naudojama DHT11 (mėlyna) ir DHT22.
- Wire.h: „Arduino“biblioteka, skirta palengvinti nuoseklųjį ryšį. Jis naudojamas laikrodžiui ir SD kortelei.
- SD.h: vėl „Arduino“originalas, skirtas rašyti ir skaityti iš SD kortelės.
- TimeLord.h: šį aš naudoju laikydamas laiką, skaičiuodamas saulėlydį ar saulėtekį iš bet kurios geografinės padėties. Taip pat nustatomas DST (vasaros ar žiemos) laikrodis.
Pradėkime nuo laikrodžio.
Skaitant laikrodį, jums reikia kintamųjų, kuriuos gaunate iš skirtingų registrų laikrodžio modulyje. Kai sudarome daugiau nei tik skaičius, galime naudoti šias eilutes:
const int DS1307 = 0x68; const char* days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11" "," 12 "};
n
Su „TimeLord“mes gauname tai kaip duomenis apie mano vietą: (Lokerenas, Belgija)
TimeLord Lokeren; nustatant „Lokeren. Position“(51.096, 3.99); ilgumos ir platumos
„Lokeren. TimeZone“(+1*60); GMT +1 = +1 x 60 minučių
Lokeren. DstRules (3, 4, 10, 4, 60); DST nuo 3 mėnesio, 4 savaitės iki 10 mėnesio, 4 savaitė, +60 minučių
int jaar = metai +2000;
baitas sunRise = {0, 0, 12, mėnuo, mėnuo, metai}; pradėkite skaičiuoti kiekvieną dieną nuo 00 val
baitas sunSet = {0, 0, 12, mėnuo, mėnuo, metai}; tas pats kaip aukščiau
baitas maan = {0, 0, 12, mėnesis, mėnuo, metai}; tas pats kaip aukščiau
plūdės fazė;
Iš čia atliekami skaičiavimai.
fazė = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sunRise);
Lokeren. SunSet (saulėlydis);
Lokeren. DST (saulėtekis);
Lokeren. DST (saulėlydis);
int ZonOpUur = sunRise [tl_hour];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = sunSet [tl_hour];
int ZonOnMin = sunSet [tl_minute];
Tai pavyzdys, kaip viskas apskaičiuojama „TimeLord“. Naudodami šią biblioteką gausite (gana) tikslų saulėlydžio ir saulėtekio laiką.
Pabaigoje aš įdėsiu visą programą su šia instrukcija. Tai gana tiesiai.
4 žingsnis: daugiau programinės įrangos …
Daugiau apie programinę įrangą…
Programinėje įrangoje turime tris dideles dalis.
1) Mes gauname neapdorotus duomenis iš įvairių jutiklių: iš savo laikrodžio, DHT ir BMP180. Tai mūsų indėlis.
2) Turime išversti duomenis į (1 ir 0) į kažką prasmingo. Tam naudojame savo bibliotekas ir kintamuosius.
3) Mes norime skaityti ir saugoti savo duomenis. Tai yra mūsų produkcija. Jei norite nedelsdami naudoti, mes turime LCD-TFT, kad vėliau naudotume, išsaugotus duomenis SD kortelėje.
Mūsų cikle () gauname daug „GOTO“: pereiname prie skirtingų bibliotekų. Mes gauname duomenis iš vieno iš jutiklių, gauname duomenis ir saugome juos (dažniausiai) plaukiojančiame duomenų kintamajame. Mes protingai pasirenkame savo kintamųjų pavadinimus ne su x ar y, o su tokiais pavadinimais kaip „tempOutside“arba „pressure“ar panašiai. Kad jie būtų lengviau skaitomi. Gerai, tai šiek tiek apsunkina kintamųjų naudojimą ir atima daugiau atminties.
Čia ir yra triukas: kai kintamieji matomi ekrane, jie tiesiog pateikiami tinkamoje vietoje.
Dvi čia naudojamos bibliotekos - „Adafruit_GFX.h“ir „MCUfriend_kbv.h“- turi gražų darbą, kuriame naudojamos spalvos, šriftai ir galimybė nubrėžti linijas. Pirmiausia naudoju 12864 ekraną su šiomis bibliotekomis, vėliau pakeičiau jį tft ekrane. Viskas, ką turėjau padaryti, tai sudėti dėžutes, stačiakampius ir linijas ir įsitikinti, kad duomenys buvo pateikti tinkamoje vietoje. Norėdami tai padaryti, galite naudoti setCursor ir tft. Write kaip komandą. Lengva tai daro. Spalvas taip pat galima nustatyti kaip kintamuosius, tose bibliotekose yra daug pavyzdžių, kaip jas pasirinkti.
Norėdami rašyti SD kortelėje, mums taip pat reikia paprastų gudrybių.
Pavyzdžiui, mes skaitome savo duomenis iš laikrodžio kaip atskiras valandas, minutes ir sekundes. Temperatūra yra DHT.temperatūra ir DHTT.temperatūra, kad būtų galima atskirti patalpų ar lauko temperatūrą.
Kai norime juos įdėti į SD kortelę, naudojame eilutę: kiekvieną ciklą pradedame kaip tuščią eilutę:
variablestring = ""; Tada galime užpildyti visus savo duomenis:
variablestring = variablestring + hours + ":" + minutes + ":" + sekundės. Tai suteikia eilutę kaip 12:00:00.
Kadangi rašome jį kaip TXT failą (žr. SD.h „Arduino.cc“), kitiems kintamiesiems pridedame skirtuką, todėl jį lengviau importuoti „Excel“.
Taigi prieiname prie: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Ir taip toliau.
5 veiksmas: kai kurios ekrano nuotraukos…
Kad būtume tikri, kad „neperkrauname“savo duomenų rinkinių, duomenis rašiau tik kartą per 10 minučių. Pateikiame 144 įrašus per dieną. Manau, kad nėra blogai.
Ir, žinoma, galite toliau tvarkyti šiuos duomenis: galite sudaryti vidurkius, ieškoti maksimumų ir minimumų, palyginti su praėjusiais metais …
Meto biurai paprastai apskaičiuoja dienos ir nakties temperatūros vidurkius: dieną prasideda 8 val. Ir tęsiasi iki 20 val.
Vėjo, slėgio ir kritulių vidurkiai imami nuo vidurnakčio iki vidurnakčio.
6 žingsnis: baigta?
Tikrai ne … Kaip sakiau, norėčiau pagaliau, kad vėjo greičio ir vėjo krypties jutiklis veiktų su likusiais JAWS.
Mano pagaminta nedidelė konstrukcija stovi apie 4 m aukščio. Meteorologas vėjo greitį pasiekia nuo 10 metrų aukščio. Man truputį per aukšta…
Tikiuosi, kad jums patiko tai skaityti!
„Adafruit-GFX“paaiškinta čia:
MCUFRIEND_kbv.h rasite čia:
Daugiau apie BMP 120 (tas pats kaip BMP085):
Apie DHT22:
Rekomenduojamas:
Profesionali orų stotis naudojant „ESP8266“ir „ESP32 pasidaryk pats“: 9 žingsniai (su nuotraukomis)
Profesionali orų stotis, naudojant „pasidaryk pats“ESP8266 ir ESP32: „LineaMeteoStazione“yra visiška orų stotis, kurią galima sujungti su profesionaliais „Sensirion“jutikliais ir kai kuriais „Davis“prietaiso komponentais (lietaus matuoklis, anemometras)
Rankinė orų stotis: 4 žingsniai
Rankinė orų stotis: Šioje instrukcijoje mes naudosime „Arduino“, „OLED“ekraną ir „SparkFun“aplinkos jutiklių derinį su CCS811 ir BME280 jutikliais, kad sukurtume rankinį prietaisą, kuris matuoja temperatūrą, drėgmę, TVOC lygį, barometrinį slėgį
„Fanair“: jūsų kambario orų stotis: 6 žingsniai (su nuotraukomis)
„Fanair“: orų stotis jūsų kambariui: Yra daugybė būdų sužinoti dabartinį orą, bet tada jūs žinote tik orą lauke. Ką daryti, jei norite sužinoti orą savo namuose, konkrečioje patalpoje? Tai aš bandau išspręsti šiuo projektu. „Fanair“naudoja daug
„NaTaLia“orų stotis: „Arduino“saulės energija varoma oro stotis padaryta teisingai: 8 žingsniai (su nuotraukomis)
„NaTaLia“orų stotis: „Arduino Solar Powered Weather Station“padaryta teisingai: Po vienerių metų sėkmingo veikimo 2 skirtingose vietose dalinuosi saulės kolektorių projektų planais ir paaiškinu, kaip ji išsivystė į sistemą, kuri tikrai gali išgyventi ilgą laiką laikotarpius nuo saulės energijos. Jei sekate
Kita IoT orų stotis: 8 žingsniai
Kita „IoT“orų stotis: Toliau nurodyta mano tėčio gimtadienio dovana; įkvėptas kito „Instructable“, kurį aš mačiau ir iš pradžių ketinau jam įrodyti kaip savarankišką komplektą. Tačiau pradėjęs su juo dirbti su šiuo projektu, labai greitai supratau, kad pradinis t