22. CSV—Comma Separated Values
<- eelmine peatükk
järgmine peatükk ->
22. CSV—Comma Separated Values
22.0. Seosed eelnenud peatükkidega
Oleme uurinud erinevate anduritega töötamist.
Oleme ka uurinud teekide kasutamist—et oleks lihtne ja kiire võimekus programmi „spikerdada“.
Oskame seejuures ka programmi lugeda ja muudatusi teha: kui näiteks peame mõne viigu ümber tõstma, siis peame muutma ka programmi.
Eelmistes peatükkides oleme uurinud, kuidas kasutada Serial monitori. Meenutame, et Serial monitor võimaldas küll andurilt korjatavat infot jälgida, näha väärtusi, neid korrastada—ent Serial monitor ei anna meile võimalust reaal-ajas saadud infot hilisemaks analüüsiks salvestada.
22.1. CSV-peatüki eesmärk ja selgitused
Eesmärk on mitte niivõrd enam suuta skeemi iseisesvalt kokku panna—taotleme juba esimeste vilumuste teket. Kasuks tuleb seega eelnevaid peatükke läbides arenenud oskus internetist infot leida; järjest enam hakkab abi olema ka eelnenu kohta tehtud ülestähendustest. Eesmärk on ka arendada dokumenteerimise oskust, seejuures aidata tekkida ka vastaval sisemisel vajadusel—ikka töö kergendamise huvides.
Kasutame selles peatükis näitena õhuniiskuse ja temperatuuriandurit DHT21—selle Arduinoga ühendamise skeemi leiate internetist. Vajadusel saate ise kiirelt visandada skeemi. Kas leiate internetist ka vastava info viikude ühendamise kohta?
Programmi aga anname siiski sedakorda ette, saate selle kiiruse huvides kopeerida antud peatüki materjalist.
Seejärel tuleb netist uurida, milliseid programme on leida info mugavamaks talletamiseks.
- Tunnis kasutame Tera Term nimelist programmi—ent eeldame, et netiotsingu tulemusena olete võimelised leidma veel vähemalt ühe sarnaselt kasutatava programmi.
Selle tunni järel õpilane tunneb end kindlamalt:
Julgustame õpilasi omavahel koostööd tegema.
22.2. Töövahendid:
22.3. Teise osa esimese tunni tegevused
Harjutus A
Paneme kokku skeemi DHT22 tarvis. Materjali leiame netist. Võite otsisõnadena kasutada nii anduri markeeringut kui ka märksõnu nagu „tutorial“, „datasheet“. Eelnenud kogemuste põhjal peaks see olema lihtne ülesanne. Probleemide korral küsige õpetajalt abi.
22.3.1 Programmi tekst:
//Teek: #include <DHT.h>; //Konstandid: #define DHTPIN 7 // näiteks valisin mina Arduino pealt seistmenda viiki #define DHTTYPE DHT22 // määrame tüübiks meie anduri tüübi: DHT 22 (AM2302) DHT dht(DHTPIN, DHTTYPE); //// vajalik DHT22 Arduino-skeemis käivitamiseks (to initialise) //Muutujad: float niiskus = dht.readHumidity(); //teeme õhuniiskuse-muutuja ujukoma-arvuks float temperatuur = dht.readTemperature(); //teeme temperatuuri-muutuja ujukoma-arvuks void setup() { Serial.begin(9600); // baudide määramine Serial.println("AEG,NIISKUS,TEMPERATUUR"); //logifaili ülemine rida dht.begin(); //Kui ei initsialiseeri, siis ei tule ka väärtusi serial monitoris } void loop() { //Siin tsükli-osas loeme andurilt niiskuse ja temperatuuri näitusid, võime mõelda, et kui suure sagedusega me seda teha tahame. niiskus = dht.readHumidity(); //talletame konkreetse niiskuse-mõõtmise kohta info muutujasse temperatuur = dht.readTemperature(); //talletame konkreetse temperatuuri-mõõtmise kohta info muutujasse // Nüüd aga paneme mõõdetud väärtused kirja SCV formaadis. Serial.print(","); /*antud Tera Term programmiga saame lisada ajatempli CSV jaoks sobival kujul alles logimisel, seega siin peame alustama komast--et ka ajatempel oleks hiljem komaga eraldatud */ Serial.print(niiskus); Serial.print(","); Serial.print(temperatuur); Serial.println (); delay(5000); //ja kuna soovime mõõta vaid mingi mõistliku vahemiku järel, siis palun määrake ise mõistlik vahemik. }
Kas käivitus? Kui käivitus, siis pange tööle Serial Monitor ja vaadelge saadud tulemust. Mis on selles puudu? Vastus: ikka see, mille me meelega välja jätsime. Minu Serial Monitor näeb välja selline:
Küsimus: kui tahate vaadata ka mõõtmise aega—kas märkate Serial Monitoril selle sisse-välja lülitamise võimalust?
Ent Serial monitori näitusid ei ole võimalik pikaks kasutamiseks säilitada, peame sellise võimaluse ise juurde nuputama.
22.3.2 Tera Term abil andurilt saadud info logimine:
Antud teema paremaks illustreerimiseks oleme valinud lihtsa näite programmi Tera Term abil.
Palun leidke internetist tasuta Tera Term tarkvara alla-laadimise võimalus ja laadige see tasuta programm endale arvutisse. Tegemist on ühe lihtsama võimalusega teemat näitlikustada—ent häid sarnaseid programme on veel.
Kui Tera Term alla laetud, siis Teie laual praegu töötava Arduino andmete Tera Term keskkonnas talletamiseks peate kõigepealt veenduma, et olete välja lülitanud Serial monitori.
NB!
Kahte logijat korraga sees olla ei saa. Veenduge, et Serial monitor ei ole sisse lülitatud.
Palun kindlasti veenduge, et lülitasite välja Serial monitori ja seejärel avage Tera Term, klikkides menüüs või desktop-il 1 vastaval ikoonil. Saate ekraanile akna, milles kindlasti vaja märkida õiged andmed vajalikesse lahtritesse—palun kontrollige, et port on ka õige!
Mina sain ette sellise akna:
Mis on mul puudu?
Vajutades File > Log , saan ette järgmise tabeli, mida pean täiendama Timestamp osas:
Vaadake ka aktiivseks tehtud sinisega kohta eeltoodud pildil (st valikus „File name:“)—faili nimi on mul pandud teraterm.log… asendage ka see nii, et *.log asemel oleks *csv.
Miks peame nii toimima?
Kusjuures sõnadega „Save in“ tähistatud realt saate ka kohe panna faili sobivasse kataloogi. Minu kataloogi nimi on teraterm.
Klikkides File> View Log saan avada Notepadis jooksva infofaili… näeme, et selles on olemas nüüd ka aeg. Kandilised sulud aga peame enne andmete töötlemist eraldi eemaldama.
1 töölaual
Harjutus A
Palun vaadake menüüst järgi, kas saate ka ise midagi Log-faili kirjutada! Kommenteerimine ridade vahele võib teinekord kasulikuks osutuda.
Enne teemat käsitlenud tunni lõppu peatage Arduino töö…
Vaadake, kas andmed on endiselt alles!
Kui ikkagi salvestasite pigem *.log formaati, siis asendage *.log nüüd *.csv-ga. Saate faili avada ka Exceli formaadis, mis on mugav keskkond andmetega edasi toimetamiseks.
Kodune töö:
Võite iseseisvalt kodus uurida ka täiendavate võimaluste kohta. Kas leidsite mingi parema programmi? Midagi lihtsamat ent paremini töötavat? Kommenteerige oma katsetust.
Võite antud tunni anduri ja programmi asemel uurida mingi muu anduriga vastavalt oma vajadustele üles ehitatud logimise/salvestamise võimalust.
Kodutöö
Tehke internetis otsing otsisõnadega „CSV“ „machine learning“
Kirjeldage, mille jaoks CSV formaat kasulik on. Selleks tehke ise täiendavate otsisõnadega internetiotsinguid.