Arduino werk met veelvuldige lêers (LEES/SKRYF): 4 stappe
Arduino werk met veelvuldige lêers (LEES/SKRYF): 4 stappe
Anonim
Arduino werk met veelvuldige lêers (LEES/SKRYF)
Arduino werk met veelvuldige lêers (LEES/SKRYF)

hallo ouens

Vandag bied ek u 'n Arduino -projek aan wat werk met 'n RTC -skild wat data kan stoor. Die hooftaak van hierdie projek is om te werk met verskeie lêers wat op die sc -kaart gestoor word. Hierdie projek bevat kode wat werk met drie lêers wat direk op 'n SD -kaart gestoor word met arduino en RTC -skild. Omdat hierdie projek met DataLogger -skild werk, word die data ook presies op dieselfde tyd as op u rekenaar gestoor.

Hierdie projek is 'n opgegradeerde weergawe van my laaste projek. Die projek kan op die instruktiewe webwerf gevind word met die naam Arduino Data Logger Shield Small Project. As u probleme ondervind om hierdie projek te verstaan, stel ek voor dat u eers 'n makliker een sien.

Die belangrikste verskil tussen die twee projekte is dat hierdie projek 3 tekslêers gebruik, en hierdie keer lees ons data van twee daarvan. Omdat ons data kan lees, kan ons die gemiddelde waarde van humiditeit en temperatuur kry, wat op die SD -kaart gestoor word. Dit sal ook vertoon word op die LCD wat met Arduino gekoppel is.

Weereens, as u nuut is in Arduino en dit u eerste projek is wat DataLogger gebruik, stel ek voor dat u hierdie skakel gaan kyk https://www.instructables.com/id/Arduino-Data-Logg… en as u alles kry hieroor, kom hier en geniet nog meer. Kom ons begin.

Stap 1: Onderdele

Dele
Dele
Dele
Dele
Dele
Dele

Soos elke keer as ek sulke projekte skryf, begin ek met al die dele wat ek met hierdie projek gebruik het. Ek sal ook 'n paar van die sensors voorstel wat hierdie projek 'n bietjie anders kan maak.

Dele:

  • Arduino uno rev3
  • Arduino datalogger skild
  • SD geheue kaart
  • LCD 1602 groen skerm met I2C (u kan enige ander skerm gebruik)
  • DHT22 (DHT11 werk ook goed, maar die presisie daarvan is nie dieselfde as die dht22 nie)
  • Paar springkabels
  • Broodbord
  • Battery 9v

U kan sommige dele verander. Die goeie kant van hierdie projek is dat dit gebruik kan word om data van enige ander sensor te stoor. Ek sal probeer om met 'n rooksensor of 'n infrarooi sensor te werk. Dit werk met enige ander sensor. U kan ook u Arduino verander, maar hou in gedagte dat Arduino die beste is om data -logger aan te pas.

Stap 2: Koppel alle onderdele aan mekaar

Koppel alle dele aan mekaar
Koppel alle dele aan mekaar

Hierdie een is maklik om aan te sluit. Selfs die skematiese is dieselfde as die makliker projek. Maar ek sou sê dat u moet let op watter pen u gaan gebruik. Kyk elke keer na die gegewensblad van die data -logger om te sien watter penne die beste is om te gebruik, want soos ek onthou, is daar reeds 'n paar penne gedefinieer en toe ek probeer om my sensor op een van die gedefinieerde penne te gebruik, het dit nie gewerk nie.

Bo -aan hierdie stap kan u 'n skema sien wat gemaak is met fritzering. Die maklike ding is dat u u datalogger aan die bokant van u arduino moet koppel. Koppel u SD -kaart aan die datalogger, en die laaste ding wat u moet doen, is om 'n dht -sensor en lcd aan te sluit. Ons gebruik 5V van arduino vir + deel op die broodbord, GND vir - deel, en deur die lyn te volg, verbind u ook + sensorlyn en lcd tot + lyn van die broodbord. Dieselfde geld vir - dele, hulle gaan net na die reël wat volg -. Die Dht -sensor is hierdie keer aan pen 7 gekoppel. LCD is gekoppel aan A4 en A5. Maklik, nie waar nie?

LCD:

  • VCC tot 5V (+ deel op broodbord)
  • GND tot gnd (-deel op broodbord)
  • SDA na analoog pen A4
  • SCL na analoog pen A5

DHT22:

Ek het dht met bord gebruik waarin drie penne gebruik moet word:

  • + tot 5V
  • - aan GND
  • uit na digitale pen 7

Stap 3: Kodering

Hierdie tydkode is meer kompleks. Daar word kommentaar gelewer op 'n goeie deel daarvan, sodat u dit met gemak kan verstaan.

Ek sal hierdie kode in 'n paar kort dele verduidelik.

1. Eerstens moet u in gedagte hou dat hierdie kode min biblioteke op u rekenaar geïnstalleer het. Dit is: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. U kan waarskynlik ander biblioteke gebruik, maar hierdie biblioteke het vir my gewerk. Daarna definieer ons alles wat nodig is vir hierdie projek. Die DHT -sensor is maklik om te definieer; u hoef net te sê die pen waarmee die sensor gekoppel is en die tipe sensor. Daarna moet u 'n paar penne definieer wat gebruik sal word vir SD -kaart en RTC -pen. En daarna kan u veranderlikes sien wat vir hierdie projek gebruik word.

3. Die projek gebruik min metodes en almal is bedoel om met die DHT -sensor te werk. As u met hierdie tipe sensor aan 'n projek werk, kan u dit gebruik. Die metodes is getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. In die opstelling is daar min dinge wat nodig is om gedoen te word. Eerstens moet u tyd definieer. Omdat ons RTC hier gebruik, wil ons die regte tyd hê wanneer ons Arduino data van die sensor stoor. Op die gedeelte word kommentaar gelewer in kode. As u //RTC.adjust(DateTime(_DATE_, _TIME_)) nie opmerk nie); lyn, kan u die tyd vir u projek bepaal. Nadat u die regte tyd ingestel het, kan u die gedeelte weer kommentaar lewer en u kan u arduino sonder rekenaar gebruik. Dit is cool, want u kan u temperatuursensor in 'n ander kamer gebruik en die temperatuur dophou sonder om u rekenaar nodig te hê. Die tweede deel wat u moet doen, is die gebruik van u SD -kaart waarop data gestoor sal word. Shield sal probeer kyk of daar 'n kaart is en dit inisialiseer. As dit nie die geval is nie, sal die foutboodskap in die seriële skerm op Arduino IDE verskyn.

In die opstel is die eerste stap waar ons werk met die skryf van lêers op 'n geheue kaart. Die eerste ding wat op die kaart geskryf is, is die lêer datalog.txt. Hierdie keer skryf ons net die tyd waarop ons ons toestel aanmeld, en ons skep ook 'n klein ry name (veranderlikes wat gebruik word om te stoor, en ook tyd)

Die laaste deel van die opstelling is die initialisering van LCD en dht -sensor.

5. Lusgedeelte is die belangrikste deel van die projek. Hierdie keer is dit baie maklik om met sensor te werk, want dit gebruik slegs een metode wat die waardes wat die sensor kry, lees. Die LCD -deel is ook baie maklik. Die volgende deel is een wat ons hier moet verduidelik. Hierdie projek doen elke minuut iets. Een minuut stoor dit data op datalog.txt. Hierdie data kan gelees word deur iemand wat nie eens weet hoe om arduino's te programmeer nie. Aan die ander kant. Een minuut bespaar dit temperatuur op datalogB.txt en een minuut bespaar dit humiditeit op datalogC.txt. Ons benodig datalogB.txt en dataLogC.txt sodat ons vanaf ons geheue kaart kan lees. As ons dus voortgaan om ons kode te lees, kan u ook sien dat hierdie kode die middelwaardes van temperatuur en humiditeit lees en dit in een ry stoor. Ek wou 'n toestel maak wat slegs die laaste tien syfers in die lêer bevat. Hierdie projek loop dus altyd deur die waardes van die kaart en stoor die laaste tien syfers. Hierdie syfers wat in rye gestoor word, word gebruik sodat ons die gemiddelde waarde van die temperatuur en die gemiddelde humiditeitswaarde kan kry. Dit word ook na 'n geruime tyd op ons LCD vertoon

Stap 4: Gebruik daarna Arduino en SD -kaart

Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart
Gebruik daarna Arduino en SD -kaart

Hier kan u sien wat op die LCD vertoon word en hoe die projek werk. Ek plaas ook foto's van die datalogs wat ek gestoor het. Datalog.txt is die een wat gebruik kan word om te sien hoe die toestel elke waarde stoor. DatalogB en datalogC is daar, sodat u kan sien hoe dit lyk. Dit word so geskryf, sodat u ontledingsmetode kan gebruik en data sonder probleme kan lees.

Die hele punt van hierdie projek is die manipulasie van die lêers op die SD -kaart. Soms benodig ons toestelle wat geheue kan stoor, en die leestemperatuur is ook een keer so. Die goeie ding is dat die skild wat op hierdie toestel gebruik word, ook 'n RTC -module het, wat die beste tyd is. As ons intyds kan lees en data met ons toestel kan stoor, beteken dit dat dit draagbaar kan wees.

Dankie julle dat julle hierdie projek gelees het. Ek hoop dit sal u help. Dankie.

Met alle groete Sebastian

Aanbeveel: