Sadržaj:

Arduino radi s više datoteka (PROČITAJ/NAPIŠI): 4 koraka
Arduino radi s više datoteka (PROČITAJ/NAPIŠI): 4 koraka

Video: Arduino radi s više datoteka (PROČITAJ/NAPIŠI): 4 koraka

Video: Arduino radi s više datoteka (PROČITAJ/NAPIŠI): 4 koraka
Video: CS50 2015 - Week 8, continued 2024, Srpanj
Anonim
Arduino radi s više datoteka (PROČITAJ/ZAPIŠI)
Arduino radi s više datoteka (PROČITAJ/ZAPIŠI)

bok dečki

Danas vam predstavljam Arduino projekt koji radi sa RTC štitom koji može pohraniti podatke. Glavni zadatak ovog projekta je rad s više datoteka pohranjenih na sc kartici. Ovaj projekt sadrži kod koji radi s tri datoteke koje su pohranjene izravno na SD karticu s arduinom i RTC štitom. Budući da ovaj projekt radi sa DataLogger štitom, ti će se podaci pohraniti u isto vrijeme kao i na vašem računalu.

Ovaj projekt je nadograđena verzija mog zadnjeg projekta. Taj se projekt može pronaći na web mjestu s uputama pod imenom Arduino Data Logger Shield Small Project. Ako imate problema s razumijevanjem ovog projekta, predlažem da prvo pogledate lakše.

Glavna razlika između ta dva projekta je u tome što ovaj projekt koristi 3 tekstualne datoteke, također ovaj put čitamo podatke iz dvije od njih. Budući da možemo čitati podatke, možemo dobiti srednju vrijednost vlažnosti i temperature koja je pohranjena na sd kartici. To će se također prikazati na LCD -u spojenom na Arduino.

Još jednom, ako ste tek počeli koristiti Arduino, a ovo je vaš prvi projekt koji koristi DataLogger, predlažem da posjetite ovu vezu https://www.instructables.com/id/Arduino-Data-Logg… i kad dobijete sve na to, dođi ovamo i još se malo zabavi. Počnimo.

Korak 1: Dijelovi

Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi

Kao i svaki put kad pišem ovakve projekte, počet ću sa svim dijelovima koje sam koristio s ovim projektom. Također ću predložiti neke od senzora koji se mogu koristiti i koji ovaj projekt mogu učiniti malo drugačijim.

Dijelovi:

  • Arduino uno rev3
  • Arduino štitnik zapisnika podataka
  • SD memorijska kartica
  • LCD 1602 zeleni zaslon s I2C (možete koristiti bilo koji drugi zaslon)
  • DHT22 (DHT11 također dobro radi, ali njegova preciznost nije ista kao dht22)
  • Nekoliko kratkospojnih kabela
  • Oglasna ploča
  • Baterija 9v

Neke dijelove možete promijeniti. Dobra strana ovog projekta je što se može koristiti za pohranu podataka s bilo kojeg drugog senzora. Pokušao bih raditi sa senzorom dima ili infracrvenim senzorom. Radi sa bilo kojim drugim senzorom. Također možete promijeniti svoj Arduino, ali imajte na umu da je Arduino najbolji za prilagođavanje Data logera.

Korak 2: Povežite sve dijelove zajedno

Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno

Ovaj se lako povezuje. Čak je i shema ista kao i lakši projekt. Ali rekao bih da morate paziti koju ćete iglu koristiti. Svaki put provjerite podatkovni list Data loggera da vidite koje su pinove najbolje koristiti jer, koliko se sjećam, neke igle su već definirane, a kad sam pokušao upotrijebiti svoj senzor na jednom od definiranih pinova, to nije uspjelo.

Na vrhu ovog koraka možete vidjeti shemu napravljenu s fritulom. Jednostavno je to što morate povezati svoj zapisnik podataka na vrhu arduina. Spojite svoju SD karticu na zapisnik podataka, a posljednje što trebate učiniti je spojiti dht senzor i LCD. Koristimo 5V iz arduina za + dio na ploči, GND za - dio, a slijedeći te linije povezujete i + liniju senzora i lcd na + liniju ploče za kruh. Isto vrijedi i za - dijelove, samo idu na red koji slijedi -. Dht senzor je ovaj put spojen na pin 7. LCD je spojen na A4 i A5. Lako, zar ne?

LCD:

  • VCC do 5V (+ dio na ploči)
  • GND u gnd (-dio na ploči)
  • SDA na analogni pin A4
  • SCL na analogni pin A5

DHT22:

Koristio sam dht s pločom u kojoj se koriste tri igle:

  • + do 5V
  • - u GND
  • na digitalni pin 7

Korak 3: Kodiranje

Ovaj vremenski kod je složeniji. Dobar dio je komentiran tako da ga možete razumjeti s lakoćom.

Objasnit ću ovaj kôd u nekoliko kratkih dijelova.

1. Prvo morate imati na umu da će za ovaj kod trebati nekoliko knjižnica instaliranih na vašem računalu. To su: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Vjerojatno možete koristiti neke druge knjižnice, ali ova knjižnica je radila za mene.2. Nakon toga definiramo sve što je potrebno za ovaj projekt. DHT senzor je lako definirati, samo trebate reći pin na koji je senzor spojen i vrstu senzora. Nakon toga morate definirati neke pinove koji će se koristiti za SD karticu i RTC pin. Nakon toga možete vidjeti varijable korištene za ovaj projekt.

3. Projekt koristi nekoliko metoda i sve su za rad s DHT senzorom. Ako radite na projektu s ovom vrstom senzora, možete ga koristiti. Te su metode getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. U postavljanju postoji nekoliko stvari koje su potrebne za dovršetak. Prije svega morate definirati vrijeme. Budući da ovdje koristimo RTC, želimo imati odgovarajuće vrijeme kada naš Arduino sprema podatke sa senzora. Taj će dio biti kodiran u kodu. Ako uklonite komentar //RTC.adjust(DateTime(_DATE_, _TIME_)); liniji možete postaviti vrijeme na svom projektu. Nakon što postavite odgovarajuće vrijeme, možete ponovno komentirati taj dio, a svoj arduino možete koristiti bez računala. To je super jer svoj senzor temperature možete koristiti u nekoj drugoj prostoriji i pratiti temperaturu bez potrebe za računalom. Drugi dio koji trebate učiniti je korištenje SD kartice na kojoj će biti pohranjeni podaci. Shield će pokušati vidjeti postoji li kartica i inicijalizirati je. Ako nema, poruka o pogrešci bit će prikazana na zaslonu Serial na Arduino IDE.

Prvi korak u postavljanju je rad na pisanju datoteka na memorijsku karticu. Prvo što je zapisano na kartici je datoteka datalog.txt. Ovaj put zapisujemo samo vrijeme prijavljivanja našeg uređaja, a također stvaramo i mali red imena (varijable koje se koriste za spremanje, a također i vrijeme)

Zadnji dio postavljanja je inicijalizacija LCD -a i dht senzora.

5. Petlja je glavni dio projekta. Rad sa senzorom ovaj je put vrlo jednostavan jer koristi samo jednu metodu koja očitava vrijednosti koje senzor dobije. LCD dio je također vrlo jednostavan. Sljedeći dio je onaj koji ovdje moramo objasniti. Ovaj projekt svake minute učini nešto. Jednu minutu pohranjuje podatke u datalog.txt. Ove podatke može pročitati netko tko ne zna ni programirati arduino. Na drugoj strani. Jednu minutu sprema temperaturu na datalogB.txt, a jednu minutu vlažnost na datalogC.txt. Potrebni su nam datalogB.txt i dataLogC.txt kako bismo mogli čitati s naše memorijske kartice. Dakle, ako nastavimo čitati naš kôd, možete vidjeti i da ovaj kôd čita srednje vrijednosti temperature i vlažnosti i pohranjuje ih u jedan red. Htio sam napraviti uređaj koji u datoteci ima samo zadnjih deset znamenki. Dakle, ovaj projekt uvijek prolazi kroz vrijednosti s kartice i sprema posljednjih deset znamenki. Ove znamenke pohranjene u redovima koriste se tako da možemo dobiti prosječnu vrijednost temperature i prosječnu vrijednost vlažnosti. Koji su također prikazani na našem LCD -u nakon nekog vremena

Korak 4: Nakon toga koristite Arduino i SD karticu

Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu
Nakon toga koristite Arduino i SD karticu

Ovdje možete vidjeti što se prikazuje na LCD -u i kako projekt funkcionira. Također stavljam ovdje slike zapisa podataka koje sam spremio. Datalog.txt je onaj koji se može koristiti za provjeru kako uređaj pohranjuje svaku vrijednost. DatalogB i datalogC su tu pa možete vidjeti kako izgledaju. Oni su tako napisani pa možete koristiti metodu parse i čitati podatke bez problema.

Cijela poanta ovog projekta je manipulacija datotekama koje se nalaze na sd kartici. Ponekad su nam potrebni uređaji koji mogu pohraniti memoriju, a jednokratno je i temperatura čitanja. Dobra stvar je što štit koji se koristi na ovom uređaju ima i RTC modul, što je najbolje za vrijeme. Kad možemo čitati u stvarnom vremenu i pohranjivati podatke na naš uređaj, to znači da mogu biti prenosivi.

Hvala vam što čitate ovaj projekt. Nadam se da će vam pomoći. Hvala vam.

Sa svim pozdravom Sebastian

Preporučeni: