Satura rādītājs:

Arduino darbs ar vairākiem failiem (LASĪT/RAKSTĪT): 4 soļi
Arduino darbs ar vairākiem failiem (LASĪT/RAKSTĪT): 4 soļi

Video: Arduino darbs ar vairākiem failiem (LASĪT/RAKSTĪT): 4 soļi

Video: Arduino darbs ar vairākiem failiem (LASĪT/RAKSTĪT): 4 soļi
Video: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, Jūlijs
Anonim
Arduino strādā ar vairākiem failiem (LASĪT/RAKSTĪT)
Arduino strādā ar vairākiem failiem (LASĪT/RAKSTĪT)

Sveiki puiši

Šodien es jums piedāvāju Arduino projektu, kas darbojas ar RTC vairogu, kas var saglabāt datus. Šī projekta galvenais uzdevums ir strādāt ar vairākiem failiem, kas tiek glabāti sc kartē. Šis projekts satur kodu, kas darbojas ar trim failiem, kas tiek glabāti tieši SD kartē ar arduino un RTC vairogu. Tā kā šis projekts darbojas ar DataLogger vairogu, šie dati tiks saglabāti tieši tajā pašā laikā, kad tie ir jūsu datorā.

Šis projekts ir mana pēdējā projekta uzlabotā versija. Šo projektu var atrast instrukciju vietnē ar nosaukumu Arduino Data Logger Shield Small Project. Ja jums ir problēmas ar šī projekta izpratni, es iesaku vispirms redzēt vienkāršāku.

Galvenā atšķirība starp šiem diviem projektiem ir tā, ka šajā projektā tiek izmantoti 3 teksta faili, arī šoreiz mēs nolasām datus no diviem. Tā kā mēs varam lasīt datus, mēs varam iegūt vidējo mitruma un temperatūras vērtību, kas tiek saglabāta SD kartē. Tas tiks parādīts arī LCD, kas savienots ar Arduino.

Vēlreiz, ja esat jauns Arduino lietotājs un šis ir jūsu pirmais projekts, kurā tiek izmantots DataLogger, es iesaku iet un pārbaudīt šo saiti https://www.instructables.com/id/Arduino-Data-Logg… un tad, kad viss būs pieejams par to, nāc šeit un izklaidējies. Sāksim.

1. darbība: detaļas

Daļas
Daļas
Daļas
Daļas
Daļas
Daļas

Kā katru reizi, rakstot šādus projektus, es sākšu ar visām daļām, kuras izmantoju šajā projektā. Es arī ieteikšu dažus sensorus, kurus var izmantot un kas var padarīt šo projektu nedaudz atšķirīgu.

Daļas:

  • Arduino uno rev3
  • Arduino datu reģistrēšanas vairogs
  • SD atmiņas karte
  • LCD 1602 zaļš displejs ar I2C (varat izmantot jebkuru citu displeju)
  • DHT22 (DHT11 darbojas arī labi, taču tā precizitāte nav tāda pati kā dht22)
  • Daži džemperu kabeļi
  • Maizes dēlis
  • Akumulators 9v

Jūs varat mainīt dažas daļas. Šī projekta labā puse ir tā, ka to var izmantot, lai saglabātu datus no jebkura cita sensora. Es mēģinātu strādāt ar dūmu sensoru vai infrasarkano sensoru. Tas darbojas ar jebkuru citu sensoru. Varat arī mainīt savu Arduino, taču paturiet prātā, ka Arduino ir labākais datu reģistrētāja pielāgošanai.

2. darbība: visu detaļu savienošana kopā

Visu detaļu savienošana kopā
Visu detaļu savienošana kopā

Šo ir viegli savienot. Pat shēma ir tāda pati kā vienkāršākajam projektam. Bet es teiktu, ka jums ir jāuzmanās, kuru tapu jūs izmantosit. Katru reizi pārbaudiet datu reģistrētāja datu lapu, lai redzētu, kuras tapas ir vislabāk lietojamas, jo, kā es atceros, dažas tapas jau ir definētas un, kad es mēģināju izmantot sensoru vienā no definētajām tapām, tas nedarbojās.

Šī soļa augšpusē varat redzēt shematisku shēmu, kas izgatavota ar fritēšanu. Viegli ir tas, ka jums ir jāpievieno datu reģistrētājs arduino augšpusē. Pievienojiet savu SD karti datu reģistrētājam, un pēdējā lieta, kas jums jādara, ir savienot dht sensoru un lcd. Mēs izmantojam 5V no arduino + daļai uz maizes dēļa, GND - daļai, un, sekojot šīm līnijām, jūs savienojat arī + sensora līniju un lcd ar + maizes dēļa līniju. Tas pats attiecas uz daļām, tās vienkārši nonāk rindā, kas seko -. Dht sensors šoreiz ir pievienots 7. tapai. LCD ir savienots ar A4 un A5. Vienkārši, vai ne?

LCD:

  • VCC līdz 5V (+ daļa uz maizes dēļa)
  • GND uz gnd (-daļa uz maizes dēļa)
  • SDA uz analogo tapu A4
  • SCL uz analogo tapu A5

DHT22:

Es izmantoju dht ar dēli, kurā jāizmanto trīs tapas:

  • + līdz 5V
  • - uz GND
  • līdz digitālajai tapai 7

3. solis: kodēšana

Šis laika kods ir sarežģītāks. Liela daļa no tā ir komentēta, lai jūs to varētu viegli saprast.

Es izskaidrošu šo kodu dažās īsās daļās.

1. Vispirms jāpatur prātā, ka šim kodam datorā būs jāinstalē dažas bibliotēkas. Tie ir: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Jūs, iespējams, varat izmantot dažas citas bibliotēkas, taču šīs bibliotēkas man darbojās. Pēc tam mēs definējam visu, kas nepieciešams šim projektam. DHT sensoru ir viegli definēt, jums vienkārši jāpasaka, ar kādu sensoru ir pievienota tapa, un sensora tips. Pēc tam jums ir jānosaka dažas tapas, kas tiks izmantotas SD kartei un RTC tapai. Un pēc tam jūs varat redzēt šim projektam izmantotos mainīgos.

3. Projektā tiek izmantotas dažas metodes, un visas tās ir paredzētas darbam ar DHT sensoru. Ja strādājat pie projekta ar šāda veida sensoriem, varat to izmantot. Šīs metodes ir getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().

4. Iestatīšanas laikā ir dažas lietas, kas nepieciešamas, lai paveiktu. Pirmkārt, jums ir jānosaka laiks. Tā kā mēs šeit izmantojam RTC, mēs vēlamies pienācīgu laiku, kad mūsu Arduino saglabā datus no sensora. Šī daļa tiks komentēta kodā. Ja jūs komentējat //RTC.adjust(DateTime(_DATE_, _TIME_)); rindā varat iestatīt sava projekta laiku. Kad esat iestatījis pareizo laiku, varat vēlreiz komentēt šo daļu un izmantot savu arduino bez datora. Tas ir forši, jo jūs varat izmantot savu temperatūras sensoru citā telpā un sekot temperatūrai bez datora. Otrā daļa, kas jādara, ir SD kartes izmantošana, kurā tiks saglabāti dati. Shield mēģinās noskaidrot, vai ir karte, un inicializēs to. Ja nav, kļūdas ziņojums tiks parādīts sērijas ekrānā Arduino IDE.

Iestatīšana ir pirmais solis, kurā mēs strādājam ar failu rakstīšanu atmiņas kartē. Pirmā lieta, kas rakstīta uz kartes, ir failā datalog.txt. Šoreiz mēs rakstām tikai ierīces reģistrēšanas laiku, kā arī izveidojam nelielu nosaukumu rindu (mainīgie, kas izmantoti saglabāšanai, kā arī laiks)

Pēdējā iestatīšanas daļa ir LCD un dht sensora inicializēšana.

5. Cilpas daļa ir projekta galvenā daļa. Šoreiz strādāt ar sensoru ir ļoti vienkārši, jo tiek izmantota tikai viena metode, kas nolasa sensora iegūtās vērtības. LCD daļa ir arī ļoti vienkārša. Nākamā daļa mums ir jāpaskaidro. Šis projekts katru minūti dara kaut ko. Vienu minūti tas saglabā datus datalog.txt. Šos datus var izlasīt kāds, kurš pat nezina, kā programmēt arduinos. Citā pusē. Vienu minūti tas saglabā temperatūru datalogB.txt un vienu minūti ietaupa mitrumu datalogC.txt. Mums ir nepieciešami datalogB.txt un dataLogC.txt, lai mēs varētu lasīt no mūsu atmiņas kartes. Tātad, ja mēs turpinām lasīt mūsu kodu, jūs varat arī redzēt, ka šis kods nolasa temperatūras un mitruma vidējās vērtības un saglabā tās vienā rindā. Es gribēju izveidot ierīci, kas failā aizņem tikai pēdējos desmit ciparus. Tātad šis projekts vienmēr darbojas, izmantojot kartes vērtības, un saglabā pēdējos desmit ciparus. Šie rindās saglabātie cipari tiek izmantoti, lai mēs varētu iegūt vidējo temperatūras vērtību un vidējo mitruma vērtību. Kas pēc kāda laika tiek parādīti arī mūsu LCD

4. darbība. Pēc tam izmantojiet Arduino un SD karti

Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti
Pēc tam izmantojot Arduino un SD karti

Šeit jūs varat redzēt, kas tiek parādīts LCD un kā projekts darbojas. Šeit es ievietoju arī saglabāto datu katalogu attēlus. Datalog.txt ir tas, kuru var izmantot, lai redzētu, kā ierīce saglabā visas vērtības. DatalogB un datalogC ir tur, lai jūs varētu redzēt, kā tie izskatās. Tie ir uzrakstīti šādi, lai bez problēmām varētu izmantot parsēšanas metodi un lasīt datus.

Visa šī projekta būtība ir manipulācija ar failiem, kas atrodas SD kartē. Dažreiz mums ir vajadzīgas ierīces, kas var uzglabāt atmiņu, un lasīšanas temperatūra ir arī viena šāda reize. Labi ir tas, ka šajā ierīcē izmantotajam vairogam ir arī RTC modulis, kas ir labākais laiks. Ja mēs varam lasīt reāllaikā un glabāt datus savā ierīcē, tas nozīmē, ka tos var pārnēsāt.

Paldies puišiem, ka izlasījāt šo projektu. Es ceru, ka tas jums palīdzēs. Paldies.

Visu cieņu Sebastianam

Ieteicams: