Ilmajaam

Tõenäoliselt on tegemist ühe lihtsaima Arduino-projektiga üldse inimesele, kes igapäevalselt teemaga kokku puutub. Minu jaoks on alljärgnev endiselt pigem elevust tekitav, sest olen enda vastu aus – minu teadmised tarkvaraarendamisest on piisavalt napid selleks, et ise toimiv kood valmis kirjutada ning see kõige esimene baseerub väga suures osas kellegi teise tööl ning näidetel. See ei vähenda aga asjaajamise väärtust ning mis kõige tähtsam – see kohmakas hunnik juhtmeid täiesti toimib.

Ma rõhutan õpilastele iganädalaselt seda, kui õnnelikul ajal nad saavad koolis käia – tehnoloogiaõpetuse tund pakub neile võimalusi ehitada ja töötada projektide kallal, millest mina võisin ainult väga hea kujutlusvõime korral und näha. Olemas on kõik alates juhenditest Google-is kuni veebikaubamajadeni Hiinas, mis ainult kutsuvad ehitama asju, mis võivad ja kindlasti on ühel hetkel õpilastele aluseks millelegi suurele ja tähtsale. Mina õpetajana püüan olla parim suunaja, kellele võib tulevikus saata mälestuseks vaid tüki Kuu pinnalt kaasa toodud kivist.

Siinkohal kirjeldatud ilmajaama juhend ja koodinäited on inglise keelsena leitav kenasti Instructables.com lehelt, kus kasutaja SomnathB4 on kenasti kogu protsessi lahti kirjutanud. Pisikesi mugandusi siiski oli vaja sisse viia.

Ilmajaama tööpõhimõte on lihtne – sensor registreerib õhutemperatuuri ja õhuniiskuse ning vastavaid väärtusi kuvatakse LCD ekraanil. Vea korral kuvatakse teade, mis ütleb, et andmeid ei õnnestunud kuvada.

Vajaminevad osad

  1. Arduino UNO (kasutusel Hiina kloon) – $2.91
  2. DHT22 temperatuuri ja niiskuse sensor – $4.94
  3. 20×4 LCD ekraan ja l2c shield (PCF 8585) – $7.09
  4. 10K takisti – $3.13
  5. Mõned isane-isane, emane-emane kaablid  – $2.37
  6. Jootevaba arendusplaat – $2.38
  7. Toide (valikuline) – $2.30

Takistid, kaablid on hulgihinnaga ja tükihind on tegelikult olematu.

Ühendused

  1. lc2 shield ühendamine ekraaniga. Ainus koht, kus vaja läheb veidi jootmist (tõe huvides aitas siin sõber Alo). Paigutamine on lihtne, tuleb vaid nõelad aukudega kohakuti sättida
  2. l2c shield -> Arduino
  • SCL A5
  • SDA A4
  • GND GND
  • VCC +5V
  1. DHT 22 sensori ühendamine

DHT pinnide lugemine algab eest vasakult

  • Pin 1: VCC -> +5V
  • Pin 2: Data -> Pin 2 Arduinol. Lisaks ühenda 10K oomine takisti Pin 1 ja Pin 2 vahele
  • Pin 3: ühenduseta
  • Pin 4: GND -> GND

Kood

Arduino IDE algses juhendis oli versiooniga 1.6.7, minu puhul oli selleks 1.8.2 ja jooksutamas Mac OS X Sierra, mis tõi esile esimese probleemi. Nimelt ei suutnud arvuti tuvastada, et kuskil on üks Arduino, mis on ühendatud USB-porti (õigemini on viga pigem kiibis, mida kasutavad odavad Arduino kloonid).

Probleemi lahendas draiverid ch340g-ch34g-ch34x-mac-os-x-driver (GitHubi link). Seejuures jätsin ära juhendis märgitud osa, mis puudutas vanade draiverite eemaldamist. Peale paigaldamist ja arvuti taaskäivitamist oli ka USB-porti ühendatud Arduino kendasti nähtav.

Edasi library, mille abil ekraan ellu äratada – NewLiquidCrystal (Bitbucket link, versioon 1.3.4 koostamise hetkel).

Järgmine samm on l2c shieldi aadressi leidmine, kasutades selleks l2c skännerit (GitHub link) ja Serial Monitori Arduino IDE pealt. Mõistlik on aadress (number kujul 0x27 näiteks) üles märkida hilisemaks.

Sensori toimimiseks on vaja lisada veel üks library – DHT library (GitHub link).

Lisaks paigaldasin järgmised library-d, mis aitasid mul üle saada reast veateadetest:

Peale vajalike library-te paigaldamist ja kõik riistvaralised ühendused on olemas, on suurem osa tööst tehtud. Mõned variatsioonid siiski

  1. Kui kasutusel on sensor DHT 11, siis koodis muuta ära ka #define DHTTYPE DHT11
  2. Kui I2C aadress on muutunud, muuda #define I2C_ADDR (uus aadress)
  3. Kui kasutusel on väiksem (16×2 ekraan), muuda lcd.begin (16,2) ja muuda kursori positsiooniks lcd.setCursor (0,0)

Tagaside ja kokkuvõte

Erinevatel põhjustel, mis tulenesid minu olematutest teadmistest antud valdkonnas (Arduino) võttis toimiva lahenduse tööle saamine ajaliselt ca 3 tundi pusimist. Jooksev kood on iseenesest arusaadav ning väga kergesti on võimalik ekraanil kuvatavat teksti kohendada endale sobivamaks (eesti keelseks, eemaldada Fahrenheiti skaala, tervitustekst jms). Kahjuks ei ole ma leidnud veel head viisi ekraaniheleduse korrigeerimiseks, mis hetkel jätab mulle valiku kas taustavalgustuseta ekraanist (loetamatu tekst) või taustavalgustusega ekraan (loetav teatud nurga alt vaadates).

Itaalia

Ei ole väga palju maid, kuhu ma oma raha eest ei reisi ning oh pattu tunnistada, Itaalia oli mul samuti peaaegu selles nimekirjas. Hoolimata tõigast, et käinud ma seal ei olnud – piisas vaid mõnest lohakast Googeldamisest ning pea oligi täis hirme, mis kõik mind seal ees ootab. Ise olen pärit riigist, kus on Lasnamäe.

Öine saabumine Rooma oli sujuv. Tülikad taksojuhid, kes oma soodsaid transfeere määrisid, jäid kuivale. Jooksime pigem kiirelt rongile, mis meid kenasti kesklinna sõidutas, et oma hotell paari minutiga üles leida.

Õhtupimeduses ja lennust väsinuna ei hakanud me trügima kaugele, krabasime hotelli ees äri tegevalt vanamehelt joogi ja söögi ning tagasi toas me olimegi. Lihtne peatuspaik, ei mingit luksust.

Hommikul olime juba varakult arvestanud tõsiasjaga, et söök jääb meil hotellis vahele, raudteejaamas on selleks rohkem aega. Ja õigesti tegime, sest ühes võib kindel olla – nälga Itaalias ei jää. Vaieldamatuks lemmikuks osutus sest hommikust alates panini prosciutto ja mozzarellaga, kõrvale sõrmkübar kohvi ja ants. Imemaitsev isegi.

Meie reisi üllam eesmärk oli siiski kaasa lüüa uue projekti kick-off-il ning seetõttu me tiba rohkem kui tunniga Napolis olimegi. Kiirrong oli mugav ja vaikne. Kallim kui 2h sõitev variant kuid kellapeale minekul väga abiks.