Sadržaj:

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

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

Video: Arduino radi s više datoteka (PROČITAJ/PISI): 4 koraka
Video: BTT Octopus - Heat bed configuration 2024, Juli
Anonim
Arduino radi s više datoteka (PROČITAJ/PISI)
Arduino radi s više datoteka (PROČITAJ/PISI)

Zdravo momci

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čunaru.

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

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

Još jednom, ako ste tek počeli s Arduinom, 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 sve dobijete o tome, dođite ovamo i zabavite se još. Počnimo.

Korak 1: Dijelovi

Delovi
Delovi
Delovi
Delovi
Delovi
Delovi

Kao i svaki put kad pišem ovakve projekte, počet ću sa svim dijelovima koje sam koristio s ovim projektom. Predložit ću i neke senzore koji se mogu koristiti i koji ovaj projekt mogu učiniti malo drugačijim.

Dijelovi:

  • Arduino uno rev3
  • Arduino štitnik logera podataka
  • SD memorijska kartica
  • LCD 1602 zeleni ekran sa I2C (možete koristiti bilo koji drugi ekran)
  • DHT22 (DHT11 također radi dobro, ali njegova preciznost nije ista kao dht22)
  • Nekoliko kratkospojnih kabela
  • Breadboard
  • 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 zapisnika podataka.

Korak 2: Povežite sve dijelove zajedno

Povezivanje svih delova zajedno
Povezivanje svih delova 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 tablicu podataka Loggera da vidite koje su pinove najbolje koristiti, jer koliko se sjećam neke pinove su već definirane i kad sam pokušao upotrijebiti svoj senzor na jednom od definiranih pinova nije uspio.

Na vrhu ovog koraka možete vidjeti shemu napravljenu sa friziranjem. 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 matičnoj 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 do reda koji slijedi -. Dht senzor je ovaj put spojen na pin 7. LCD je povezan na A4 i A5. Lako, zar ne?

LCD:

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

DHT22:

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

  • + do 5V
  • - u GND
  • izlaz 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.

Objasniću ovaj kod u nekoliko kratkih delova.

1. Prvo morate imati na umu da će za ovaj kod trebati nekoliko biblioteka instaliranih na vašem računaru. To su: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Vjerovatno možete koristiti neke druge biblioteke, ali ova biblioteka 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 sa DHT senzorom. Ako radite na projektu s ovom vrstom senzora, možete ga koristiti. Te metode su getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. U postavljanju postoji nekoliko stvari koje su potrebne da biste to učinili. 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 komentiran u kodu. Ako uklonite komentar //RTC.adjust(DateTime(_DATE_, _TIME_)); liniju možete postaviti vrijeme na svom projektu. Nakon što postavite odgovarajuće vrijeme, možete ponovo komentirati taj dio, a svoj arduino možete koristiti bez računara. Ovo je super jer svoj senzor temperature možete koristiti u nekoj drugoj prostoriji i pratiti temperaturu bez potrebe za računarom. Drugi dio koji trebate učiniti je korištenje SD kartice na kojoj će biti pohranjeni podaci. Shield će pokušati provjeriti postoji li kartica i pokrenuti je. Ako ne postoji, poruka o grešci će se prikazati na ekranu 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 put je 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 dio koji ovdje moramo objasniti. Ovaj projekat svake minute učini nešto. Jednu minutu pohranjuje podatke u datalog.txt. Ove podatke može pročitati neko ko ne zna ni programirati arduino. Na drugoj strani. Jednu minutu štedi 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 posljednjih 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đe 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 šta se prikazuje na LCD -u i kako projekat funkcionira. Takođe stavljam ovde slike evidencija podataka koje sam sačuvao. 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 napisani tako da 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 temperatura očitavanja je jedno vrijeme takva. 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 projekat. Nadam se da će vam pomoći. Hvala ti.

Sa svim pozdravom Sebastian

Preporučuje se: