Innholdsfortegnelse:

Arduino arbeider med flere filer (LES/SKRIV): 4 trinn
Arduino arbeider med flere filer (LES/SKRIV): 4 trinn

Video: Arduino arbeider med flere filer (LES/SKRIV): 4 trinn

Video: Arduino arbeider med flere filer (LES/SKRIV): 4 trinn
Video: Возведение перегородок санузла из блоков. Все этапы. #4 2024, Desember
Anonim
Arduino arbeider med flere filer (LES/SKRIV)
Arduino arbeider med flere filer (LES/SKRIV)

Hei folkens

I dag presenterer jeg deg Arduino -prosjektet som fungerer med RTC -skjold som kan lagre data. Hovedoppgaven til dette prosjektet er å jobbe med flere filer som er lagret på sc -kortet. Dette prosjektet inneholder kode som fungerer med tre filer som er lagret direkte på SD -kort med arduino og RTC -skjold. Fordi dette prosjektet fungerer med DataLogger -skjold, blir dataene også lagret nøyaktig samtidig som det er på din PC.

Dette prosjektet er en oppgradert versjon av mitt siste prosjekt. Det prosjektet kan bli funnet på instruksjonsstedet under navnet Arduino Data Logger Shield Small Project. Hvis du har problemer med å forstå dette prosjektet, foreslår jeg at du ser det enklere først.

Hovedforskjellen mellom de to prosjektene er at dette prosjektet bruker 3 tekstfiler, også denne gangen leser vi data fra to av dem. Fordi vi kan lese data, kan vi få mellomverdien av fuktighet og temperatur, som er lagret på SD -kort. Dette vil også bli vist på LCD -en som er koblet til Arduino.

Igjen, hvis du er ny på Arduino og dette er ditt første prosjekt som bruker DataLogger, foreslår jeg at du går og sjekker denne lenken https://www.instructables.com/id/Arduino-Data-Logg… og når du får alt på det, kom hit og ha mer moro. La oss begynne.

Trinn 1: Deler

Deler
Deler
Deler
Deler
Deler
Deler

Som hver gang jeg skriver prosjekter som dette, vil jeg starte med alle delene jeg brukte med dette prosjektet. Jeg vil også foreslå noen av sensorene som kan brukes og kan gjøre dette prosjektet litt annerledes.

Deler:

  • Arduino uno rev3
  • Arduino datalogger skjold
  • SD -minnekort
  • LCD 1602 grønn skjerm med I2C (du kan bruke hvilken som helst annen skjerm)
  • DHT22 (DHT11 fungerer også bra, men presisjonen til den er ikke den samme som dht22)
  • Få hoppekabler
  • Brødbrett
  • Batteri 9v

Du kan endre noen deler. God side med dette prosjektet er at det kan brukes til å lagre data fra en hvilken som helst annen sensor. Jeg ville prøve å jobbe med røyksensor eller infrarød sensor. Den fungerer med alle andre sensorer. Du kan også endre Arduino, men husk at Arduino er den beste for å passe til datalogger.

Trinn 2: Koble alle deler sammen

Koble alle deler sammen
Koble alle deler sammen

Denne er lett å koble til. Selv det skjematiske er det samme som det enklere prosjektet. Men jeg vil si at du må passe på hvilken pinne du skal bruke. Hver gang må du sjekke databladet til dataloggeren for å se hvilke pins som er best å bruke, for når jeg husker er noen pins allerede definert, og da jeg prøvde å bruke sensoren min på en av de definerte pinnene, fungerte det ikke.

På toppen av dette trinnet kan du se skjematisk laget med fritzing. Enkel ting er at du må koble dataloggeren din på toppen av arduinoen din. Koble SD -kortet til dataloggeren, og det siste du må gjøre er å koble til dht -sensor og lcd. Vi bruker 5V fra arduino for + del på brødbrettet, GND for - del, og ved å følge denne linjen kobler du også til + sensorlinje og lcd til + linje på brødbrettet. Det samme gjelder - deler, de går bare til linjen som følger -. Dht -sensor er koblet til pin 7 denne gangen. LCD er koblet til A4 og A5. Lett, ikke sant?

LCD:

  • VCC til 5V (+ del på brødbrett)
  • GND til gnd (-del på brødbrett)
  • SDA til analog pin A4
  • SCL til analog pin A5

DHT22:

Jeg brukte dht med brett der det er tre pinner som skal brukes:

  • + til 5V
  • - til GND
  • ut til digital pin 7

Trinn 3: Koding

Denne tidskoden er mer kompleks. En god del av det er kommentert, slik at du enkelt kan forstå det.

Jeg skal forklare denne koden i noen korte deler.

1. Forst å huske på at denne koden trenger få biblioteker installert på PCen. De er: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Du kan sannsynligvis bruke noen andre biblioteker, men disse bibliotekene fungerte for meg. Etter det definerer vi alt som trengs for dette prosjektet. DHT -sensor er lett å definere, du trenger bare å si pinnen som sensoren er koblet til og sensortype. Etter det må du definere noen pins som skal brukes til SD -kort og RTC -pin. Og etter det kan du se variabler som brukes for dette prosjektet.

3. Prosjektet bruker få metoder, og alle er for arbeid med DHT -sensor. Hvis du jobber med prosjekt med denne typen sensorer, kan du bruke den. Disse metodene er getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. I oppsettet er det få ting som trengs for å få det gjort. Først av alt må du definere tid. Fordi vi bruker RTC her, vil vi ha god tid når Arduino lagrer data fra sensoren. Denne delen vil bli kommentert i kode. Hvis du ikke kommenterer //RTC.adjust(DateTime(_DATE_, _TIME_)); linje kan du sette tid på prosjektet ditt. Etter at du har angitt riktig tid, kan du kommentere den delen igjen, og du kan bruke arduinoen din uten datamaskin. Dette er kult fordi du kan bruke temperatursensoren i et annet rom og holde oversikt over temperaturen uten å trenge datamaskinen. Den andre delen som skal gjøres er å bruke SD -kortet ditt som det vil lagre data på. Shield vil prøve å se om det er kort og initialisere det. Hvis det ikke er det, vil feilmeldingen bli vist i serieskjermen på Arduino IDE.

I oppsett er første trinn hvor vi jobber med å skrive filer på minnekort. Det første som er skrevet på kortet er på filen datalog.txt. Denne gangen skriver vi bare tidspunktet for å logge enheten, og vi lager også en liten rad med navn (variabler som brukes til å lagre, og også tid)

Den siste delen av oppsettet er å initialisere LCD og dht -sensor.

5. Sløyfedel er hoveddelen av prosjektet. Denne gangen er det veldig enkelt å jobbe med sensor fordi den bruker bare en metode som leses av verdiene sensoren får. LCD -delen er også veldig enkel. Den neste delen er en som vi må forklare her. Dette prosjektet gjør noe hvert minutt. Ett minutt lagrer den data til datalog.txt. Disse dataene kan leses av noen som ikke engang vet hvordan de skal programmere arduinos. På den andre siden. Ett minutt sparer det temperatur på datalogB.txt og ett minutt sparer det fuktighet på datalogC.txt. Vi trenger datalogB.txt og dataLogC.txt slik at vi kan lese fra minnekortet. Så hvis vi fortsetter å lese koden vår, kan du også se at denne koden leser mellomverdier av temperatur og fuktighet og lagrer dem i en rad. Jeg ønsket å lage en enhet som bare tar de siste ti sifrene i filen. Så dette prosjektet går alltid gjennom verdiene fra kortet og lagrer de ti siste sifrene. Disse sifrene som er lagret i rader brukes slik at vi kan få gjennomsnittlig verdi av temperatur og gjennomsnittlig verdi av fuktighet. Som også vises på LCD -skjermen vår etter en stund

Trinn 4: Bruke Arduino og SD -kort etterpå

Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå
Bruke Arduino og SD -kort etterpå

Her kan du se hva som vises på LCD og hvordan prosjektet fungerer. Jeg legger også her bilder av dataloggene jeg lagret. Datalog.txt er den som kan brukes til å se hvordan enheten lagrer hver verdi. DatalogB og datalogC er der, slik at du kan se hvordan de ser ut. De er skrevet slik at du kan bruke analysemetoden og lese data uten problemer.

Hele poenget med dette prosjektet er manipulering av filene som er på SD -kort. Noen ganger trenger vi enheter som kan lagre minne og lesetemperatur er også en slik gang. Godt er at skjoldet som brukes på denne enheten også har en RTC -modul, som er det beste for tiden. Når vi kan lese sanntid og lagre data med enheten vår, betyr det at den kan være bærbar.

Takk for at dere leser dette prosjektet. Jeg håper det vil hjelpe deg. Takk skal du ha.

Med hilsen Sebastian

Anbefalt: