Turinys:

„Arduino“darbas su keliais failais (SKAITYTI/RAŠYTI): 4 žingsniai
„Arduino“darbas su keliais failais (SKAITYTI/RAŠYTI): 4 žingsniai

Video: „Arduino“darbas su keliais failais (SKAITYTI/RAŠYTI): 4 žingsniai

Video: „Arduino“darbas su keliais failais (SKAITYTI/RAŠYTI): 4 žingsniai
Video: Как управлять нагрузкой 4 переменного тока с помощью беспроводного дистанционного реле KR1204 2024, Liepa
Anonim
„Arduino“dirba su keliais failais (SKAITYTI/RAŠYTI)
„Arduino“dirba su keliais failais (SKAITYTI/RAŠYTI)

Sveiki bičiuliai

Šiandien pristatau jums „Arduino“projektą, kuris veikia su RTC skydu, galinčiu saugoti duomenis. Pagrindinė šio projekto užduotis yra dirbti su keliais failais, saugomais sc kortelėje. Šiame projekte yra kodas, kuris veikia su trimis failais, kurie yra saugomi tiesiai SD kortelėje su arduino ir RTC skydu. Kadangi šis projektas veikia su „DataLogger“skydu, šie duomenys taip pat bus saugomi tuo pačiu metu, kaip ir jūsų kompiuteryje.

Šis projektas yra atnaujinta mano paskutinio projekto versija. Tą projektą galima rasti instrukcijų svetainėje pavadinimu „Arduino Data Logger Shield Small Project“. Jei kyla sunkumų suprantant šį projektą, siūlau pirmiausia pamatyti paprastesnį.

Pagrindinis skirtumas tarp šių dviejų projektų yra tas, kad šiame projekte naudojami 3 teksto failai, taip pat šį kartą skaitome dviejų iš jų duomenis. Kadangi galime skaityti duomenis, galime gauti vidutinę drėgmės ir temperatūros vertę, saugomą SD kortelėje. Tai taip pat bus rodoma LCD, prijungtame prie „Arduino“.

Dar kartą, jei esate naujokas „Arduino“ir tai yra jūsų pirmasis projektas, kuriame naudojama „DataLogger“, siūlau nueiti ir patikrinti šią nuorodą https://www.instructables.com/id/Arduino-Data-Logg… ir kai gausite viską Ateik čia ir pasilinksmink. Pradėkime.

1 žingsnis: dalys

Dalys
Dalys
Dalys
Dalys
Dalys
Dalys

Kaip ir kiekvieną kartą, kai rašau tokius projektus, pradėsiu nuo visų dalių, kurias naudojau šiame projekte. Taip pat pasiūlysiu kai kuriuos jutiklius, kuriuos galima naudoti ir kurie gali šiek tiek pakeisti šį projektą.

Dalys:

  • Arduino uno rev3
  • „Arduino“duomenų registravimo skydas
  • SD atminties kortelė
  • Žalias LCD 1602 ekranas su I2C (galite naudoti bet kurį kitą ekraną)
  • DHT22 (DHT11 taip pat veikia gerai, tačiau jo tikslumas nėra toks pat kaip dht22)
  • Keletas jungiamųjų kabelių
  • Bandomoji Lenta
  • Baterija 9v

Galite pakeisti kai kurias dalis. Gera šio projekto pusė yra ta, kad jis gali būti naudojamas duomenims iš bet kurio kito jutiklio saugoti. Aš bandyčiau dirbti su dūmų jutikliu arba infraraudonųjų spindulių jutikliu. Jis veikia su bet kuriuo kitu jutikliu. Taip pat galite pakeisti „Arduino“, tačiau atminkite, kad „Arduino“geriausiai tinka duomenų kaupikliui.

2 žingsnis: visų dalių sujungimas

Visų dalių sujungimas
Visų dalių sujungimas

Tai lengva prijungti. Net schema yra tokia pati kaip lengvesnis projektas. Bet sakyčiau, kad reikia žiūrėti, kurį smeigtuką ketinate naudoti. Kiekvieną kartą patikrinkite duomenų kaupiklio duomenų lapą, kad pamatytumėte, kuriuos kaiščius geriausia naudoti, nes, kaip prisimenu, kai kurie kaiščiai jau yra apibrėžti ir kai bandžiau naudoti jutiklį viename iš nustatytų kaiščių, jis neveikė.

Šio veiksmo viršuje galite pamatyti schemą, pagamintą naudojant fritizaciją. Lengva yra tai, kad turite prijungti savo duomenų kaupiklį prie arduino viršaus. Prijunkite savo SD kortelę prie duomenų kaupiklio, o paskutinis dalykas, kurį jums reikia padaryti, yra prijungti dht jutiklį ir LCD. Mes naudojame 5V iš „arduino“+ daliai duonos lentos, GND - daliai, o sekdami šias linijas taip pat prijungiate + jutiklio liniją ir LCD prie duonos lentos. Tas pats pasakytina ir apie dalis, jos tiesiog eina į sekančią eilutę -. Dht jutiklis šį kartą prijungtas prie 7 kaiščio. LCD yra prijungtas prie A4 ir A5. Lengva, ar ne?

LCD:

  • VCC iki 5V (+ dalis ant duonos lentos)
  • GND į gnd (dalis ant duonos lentos)
  • SDA į analoginį kaištį A4
  • SCL į analoginį kaištį A5

DHT22:

Aš naudojau dht su lenta, kurioje yra trys kaiščiai:

  • + iki 5V
  • - į GND
  • iki skaitmeninio kaiščio 7

3 žingsnis: kodavimas

Šis laiko kodas yra sudėtingesnis. Didelė jo dalis yra komentuojama, kad galėtumėte lengvai tai suprasti.

Aš paaiškinsiu šį kodą keliomis trumpomis dalimis.

1. Pirmiausia reikia nepamiršti, kad šiam kodui reikės nedaug bibliotekų, įdiegtų jūsų kompiuteryje. Tai yra: laikas („TimeLib“), viela, „LiquidCrystal“, DHT, „OneWire“, SPI, SD, RTClib. Jūs tikriausiai galite naudoti kai kurias kitas bibliotekas, tačiau šios bibliotekos man dirbo. Po to mes apibrėžiame viską, ko reikia šiam projektui. DHT jutiklį lengva apibrėžti, tereikia pasakyti kaištį, prie kurio yra prijungtas jutiklis, ir jutiklio tipą. Po to turite apibrėžti kai kuriuos kaiščius, kurie bus naudojami SD kortelei ir RTC kaiščiui. Ir po to galite pamatyti šiam projektui naudojamus kintamuosius.

3. Projekte naudojami keli metodai ir visi jie skirti darbui su DHT jutikliu. Jei dirbate su projektu su šio tipo jutikliais, galite jį naudoti. Šie metodai yra getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. Sąrankoje yra keletas dalykų, kuriuos reikia atlikti. Pirmiausia reikia apibrėžti laiką. Kadangi čia naudojame RTC, norime turėti tinkamo laiko, kai mūsų „Arduino“išsaugo duomenis iš jutiklio. Ši dalis bus komentuojama kodu. Jei atšauksite komentarą //RTC.adjust(DateTime(_DATE_, _TIME_)); eilutėje galite nustatyti savo projekto laiką. Nustatę tinkamą laiką, galite dar kartą pakomentuoti tą dalį ir naudoti savo arduino be kompiuterio. Tai puiku, nes galite naudoti temperatūros jutiklį kitoje patalpoje ir sekti temperatūrą be kompiuterio. Antroji dalis, kurią reikia padaryti, yra SD kortelės, kurioje bus saugomi duomenys, naudojimas. „Shield“bandys pamatyti, ar yra kortelė, ir inicijuos ją. Jei nėra, klaidos pranešimas bus rodomas „Arduino IDE“serijos ekrane.

Sąranka yra pirmasis žingsnis, kai mes dirbame rašydami failus į atminties kortelę. Pirmas dalykas, kuris parašytas kortelėje, yra faile datalog.txt. Šį kartą rašome tik savo įrenginio registravimo laiką ir taip pat sukuriame nedidelę pavadinimų eilutę (kintamieji, naudojami išsaugojimui, taip pat laikas)

Paskutinė sąrankos dalis yra LCD ir dht jutiklio inicijavimas.

5. Ciklo dalis yra pagrindinė projekto dalis. Šį kartą dirbti su jutikliu yra labai paprasta, nes naudojamas tik vienas metodas, kuris nuskaito jutiklio gautas vertes. LCD dalis taip pat yra labai paprasta. Kita dalis yra ta, kurią turime čia paaiškinti. Šis projektas kiekvieną minutę kažką daro. Vieną minutę jis saugo duomenis į datalog.txt. Šiuos duomenis gali perskaityti tas, kuris net nežino, kaip programuoti arduinos. Kitoje pusėje. Vieną minutę jis taupo datalogB.txt temperatūrą, o vieną minutę taupo drėgmę datalogC.txt. Mums reikia datalogB.txt ir dataLogC.txt, kad galėtume skaityti iš atminties kortelės. Taigi, jei mes toliau skaitome savo kodą, taip pat galite pamatyti, kad šis kodas nuskaito vidutines temperatūros ir drėgmės vertes ir saugo jas vienoje eilutėje. Norėjau sukurti įrenginį, kuris faile užima tik paskutinius dešimt skaitmenų. Taigi šis projektas visada vykdo kortelės reikšmes ir išsaugo paskutinius dešimt skaitmenų. Šie eilutėse saugomi skaitmenys naudojami, kad galėtume gauti vidutinę temperatūros vertę ir vidutinę drėgmės vertę. Kurie po kurio laiko taip pat rodomi mūsų skystųjų kristalų ekrane

4 veiksmas: vėliau naudokite „Arduino“ir SD kortelę

Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę
Vėliau naudokite „Arduino“ir SD kortelę

Čia galite pamatyti, kas rodoma LCD ekrane ir kaip veikia projektas. Taip pat čia įdedu išsaugotų duomenų katalogų nuotraukas. Datalog.txt yra tas, kurį galima naudoti norint pamatyti, kaip įrenginys išsaugo kiekvieną vertę. DatalogB ir datalogC yra, kad galėtumėte pamatyti, kaip jie atrodo. Jie parašyti taip, kad galėtumėte naudoti analizavimo metodą ir be problemų skaityti duomenis.

Visa šio projekto esmė yra manipuliavimas failais, esančiais SD kortelėje. Kartais mums reikia įrenginių, galinčių išsaugoti atmintį, o skaitymo temperatūra taip pat yra viena. Gerai tai, kad šiame įrenginyje naudojamas skydas taip pat turi RTC modulį, kuris yra geriausias dalykas laikui bėgant. Kai galime skaityti realiu laiku ir saugoti duomenis savo prietaise, tai reiškia, kad jie gali būti nešiojami.

Ačiū vaikinai, kad skaitote šį projektą. Tikiuosi, kad tai jums padės. Ačiū.

Su visa pagarba Sebastianui

Rekomenduojamas: