23. dan: Projekt Cheerlights .................................................................................................. 26
24. dan: Detektor požara za božično drevesce .................................................................... 27
Pomembne informacije ......................................................................................................... 30
Garancijski list ....................................................................................................................... 31
Pred sestavljanjem
Spodaj najdete nekaj pomembnih naznanil in napotkov za uspešno delo s koledarjem brez
stresa.
Uporaba teh navodil za uporabo je samo ena izmed dveh možnih pristopov h koledarju.
Druga možnost je, da obiščete spletno stran
www.conrad.de/iot-adventskalender
kot vir informacij. Obe navodili imata skoraj identično besedilo, vendar splet kot medij
omogoča še večjo ponudbo informacij, ki vam lahko olajšajo pot do uspeha.
En primer za večjo količino informacij je dejstvo, da je možno na spletni strani vključiti nekaj
dodatnih slik. Spletna stran ni vezana na omejitve kot so stroški tiskanja ali omejitev glede
števila strani ter omogoča večplastno in pisano oblikovanje. Eden ali dva dodatna izdelka sta
lahko prav tako koristna za razvoj in oblikovanje lastnih projektov.
Nadaljnja pomoč je funkcija komentarjev. Internet stvari je kompleksna, zanimiva in
večplastna tema. Na poti do uspešnega projekta je veliko kamnov spotike. V tem primeru je
seveda v pomoč, če lahko svojo težavo predstavite večji skupnosti. Iz tega razloga je pod
vsakim izdelkom aktivirana funkcija komentiranja, kjer lahko postavljate vprašanja,
predlagate izboljšave ali pa drugim udeležencem v projektu pomagate pri njihovih težavah.
2
Page 3
Upam, da bom s tem zmanjšal frustracijo posameznikov na minimum in poskrbel za veliko
veselja pri projektu čez daljše časovno obdobje, tudi če se kdaj kje kaj zatakne.
Tretja prednost spletne strani je lahko faktor presenečenja. Čar adventnega koledarja je v
tem, da ne veste, kaj se nahaja za naslednjimi vratci. Pri navodilih za uporabo pogosto že
vidite preizkus na naslednji strani, s čimer si pokvarite presenečenje. Na spletni strani pa se
vsak dan pojavi samo poglavje za posamezni dan. Iz tega razloga vam svetujem: Ko
preberete to poglavje, položite navodila za uporabo na stran in jih zaenkrat še ne prebirajte.
Namesto tega obiščite spletno stran www.conrad.de/iot-adventskalender in si naredite
zaznamek na svojem računalniku, pametnem telefonu ali tabličnem računalniku. Tako lahko
vsak dan, ne glede na to, kje se trenutno nahajate, npr. na vlaku na poti v službo, preberete
poglavje trenutnega dne, kasneje, ko se vrnete domov, pa se lotite eksperimentiranja s
praktičnim delom dnevnega projekta.
Če pa sodite med tiste, ki imajo vseeno raje klasična navodila za uporabo, seveda obdržite
navodila v roki. Seveda je lahko nadvse udobno, da vam ni treba držati v rokah digitalne
naprave, ko si ustvarjate prvi pregled nad trenutnim preizkusom. Vendar pa se obisku
spletne strani ne morete izogniti, saj si morate še prenesti trenutni program. Najdete ga pod
opisom posameznega izdelka pod točko ''Program''.
Za katerikoli način dela se že odločite pri sestavljanju koledarja, pri tem vam želim veliko
veselja ter vesel in zanimiv predbožični čas.
Vaš Fabian Kainka
1. dan: Prvi koraki
Danes je prvi dan v decembru in s tem čas, da odprete prva vratca. Za vratci se nahaja
najpomembnejša komponenta tega koledarja, in sicer matična plošča NanoESP z vgrajenim
WLAN-modulom, ki je združljiva s programsko opremo Arduino™ in ki je tudi tema tega
koledarja.
Kot lahko dobro vidite na tiskanem vezju, je matična plošča sestavljena iz dveh komponent.
Pri levi polovici gre za mikrokrmilniški sistem, ki je združljiv s programsko opremo Arduino™
in ga je možno primerjati z Arduino™ Nano. Desni del je WLAN-modul z oznako ESP8266.
Ti dve komponenti komunicirata med seboj prek serijskega vmesnika, ki ga generira
programska oprema. Pri tem ima stran Arduino™ bolj funkcijo šefa, ki posreduje ukaze na
WLAN-modul. Nekatere izmed teh ukazov boste preizkusili že danes ob prvem dnevu.
Matična plošča NanoESP
3
Page 4
Program
Program posameznega dne si lahko prenesete, tako da obiščete spletno stran
www.conrad.de/iot-adventskalender
izberete svoj jezik in prikličete izdelek za današnji projekt. Pod naslovom ''Program'' najdete
možnost za prenos s spleta (Download). Kot razvojno okolje se bo uporabljala programska
oprema Arduino™. Trenutno različico najdete na spletni strani
arduino.cc
Pri pripravi preizkusov sem delal z različicama Arduino™ 1.6.4 – 1.6.5. Starejše različice
lahko povzročajo težave. Vendar pa je za nekatere različice operacijskega sistema Linux
trenutno na voljo samo zelo stara različica. Napotke, kako lahko rešite to težavo in druge
težave, najdete na spletni strani. V programski opremi Arduino™morate kot matično ploščo
izbrati Arduino™ Nano in serijska vrata. Nato lahko naložite program.
Pri današnjem prenosu s spleta gre za zelo enostaven program, ki ne počne nič drugega, kot
da vse podatke, ki se sprejemajo prek serijskega strojnega vmesnika mikrokrmilnika,
posreduje na ESP-krmilnik prek lastno definiranega programskega vmesnika. Vse skupaj
deluje tudi v obratni smeri. Kot je razvidno iz izvorne kode, gre pri obeh priključkih
programskega vmesnika za pin 11 in 12. Teh priključkov v lastnih projektih ne smete
uporabljati kot GPIO-pine. Poleg tega potrebujete programsko opremo SoftwareSerialLibrary. Programska oprema Library je pri večini različic Arduino™ že nameščena, če pa
temu ni tako, potem si jo prenesite s spleta prek upravitelja.
Potem ko naložite program, lahko zaženete serijski monitor vmesnika Arduino™. Preden se
lahko lotite dela, je treba izvesti še dve pomembni nastavitvi na serijskem monitorju (Serial
Monitor); V spodnjem desnem kotu je treba nastaviti baudno hitrost na „19200“, v okvirčku
levo zraven pa je treba izvesti nastavitev „CR in NL“.
Ko opravite nastavitve, se že pojavi sporočilo, in sicer napis AT, nekaj vrstic spodaj pa napis
OK. Ukaz AT je na ESP-modul poslal mikrokrmilnik, modul pa je odgovoril z OK. Po tem
lahko vidite, da modul deluje in je pripravljen na uporabo.
To lahko ponovno testirate, tako da sami pošljete ukaz
AT
prek serijskega monitorja. Naložen program ponovno posreduje ukaz na ESP-modul, ki
ponovno odgovori z OK. Naslednji ukaz, ki ga lahko testirate, se glasi:
AT+GMR
S tem ukazom prikličete trenutno različico strojno-programske opreme in številko različice. Z
ukazom
AT+RST
lahko modul ponastavite. Nato v terminalu najprej vidite nekaj neberljivih znakov, na koncu
pa se pojavi napis ready, ki signalizira, da je modul pripravljen na uporabo. Z ukazom
AT+CWMODE
4
Page 5
lahko določite WLAN-način. Na voljo imate tri možnosti: Način 1 je način postaje. To pomeni,
da se lahko z modulom povežete z obstoječim WLAN-omrežjem. Način 2 je način dostopne
točke. To pomeni, da se lahko z napravo, ki je združljiva z WLAN-om, povežete z WLANomrežjem, ki ga da na razpolago modul. Način 3 je dvojni način. Lahko se torej z modulom
povežete v obstoječe WLAN-omrežje ali vzpostavite neposredno povezavo z dodatno
napravo. Testirajte način dostopne točke, tako da določite način 2 z ukazom
AT+CWMODE = 2
in nato z ukazom
AT+CWSAP=”MyNanoESP”,”MyPassword”,5,3
nastavite parametre, ki so primerni za dostopno točko. Nato lahko npr. z računalnikom, ki je
združljiv z WLAN-om, poiščete omrežje MyNanoESP in se povežete z geslom MyPasswort.
Ko je povezava uspešno vzpostavljena, lahko z ukazom
AT+CWLIF
prikličete prikaz povezane naprave z IP- in MAC-naslovom.
AT-ukazi v serijskem monitorju
Nato lahko testirate tudi način postaje, tako da najprej z ukazom
AT+CWMODE=1
spremenite način. Prikličete lahko seznam vseh razpoložljivih WLAN-omrežij na dosegu z
ukazom
AT+CWLAP
5
Page 6
Nato z ukazom
AT+CWJAP=“MySSID“,“MyPassword“
vzpostavite povezavo s svojim omrežjem, pri čemer MySSID in MyPassword nadomestite s
svojim imenom omrežja in geslom. Vzpostavljanje povezave lahko kar nekaj časa traja,
vendar se na koncu pojavi napis OK kot potrditev. Prvo vzpostavljanje povezave je s tem
torej uspelo.
2. dan: Pinganje Googlovega strežnika
Z današnjim projektom bomo testirali, če lahko dosežete Googlov strežnik. To služi kot test,
če je na voljo načelna povezava z internetom ali če na primer požarni zid blokira matično
ploščo NanoESP.
Za današnjimi vratci najdete preizkusno ploščico. Preizkusna ploščica bo kasneje služila kot
eksperimentalna platforma, na katero boste lahko priključili senzorje in druge elemente.
Najbolje je, če krmilnik nataknete na preizkusno ploščico tako kot prikazuje spodnja slika.
Tako imate na voljo največ prostora za preizkuse, medtem ko WLAN-modul zadaj štrli čez
preizkusno ploščico. Kabel Micro USB v tem primeru visi med stranmi kontaktov in moti
samo minimalno.
Matična plošča NanoESP na preizkusni ploščici
Program
V vzorčnem programu s spletne strani so postopki, ki ste jih v prvem primeru tipkali ročno, v
večji meri avtomatizirani. Krmilnik zaporedoma pošilja ukaze na ESP-modul in tako med
drugim vzpostavi povezavo z WLAN-omrežjem. Različno dolgi časi premora modulu dajo
dovolj časa za odgovor.
Preden pa lahko program pravilno deluje, morate za obema #defines SSID in PASSWORT
že takoj na začetku izvorne kode programa vnesti svoje WLAN-podatke. Modul namreč
potrebuje internetni dostop, da lahko izvede svoj zadnji ukaz. Z ukazom
AT+PING
6
Page 7
lahko pingate druge naprave v omrežju. Pinganje pomeni, da povprašate, če je kak naslov
načeloma dosegljiv. V tem primeru pingate Googlov strežnik z ukazom
AT+PING=“www.google.de“. Ko dobite nazaj odgovor, se na serijskem monitorju pojavi
sporočilo o uspešnosti ukaza, hkrati pa se aktivira LED z napisom D3, ki je priključena na pin
D13 matične plošče. Prva komunikacija z internetom je tako uspešno opravljena.
3. dan: Pošiljanje UDP-ja
V današnjem projektu se bodo prvič izmenjevali podatki med matično ploščo in računalnikom
s pomočjo WLAN-povezave. Pogoj za to je, da ima vaš računalnik WLAN-adapter. Uporablja
se tako imenovani nepovezovalni protokol UDP (User Datagram Protocol). Dodaten program
na računalniški strani skrbi za uspešno sprejemanje sporočil.
Za tretjimi vratci koledarja najdete izoliran kabel, ki je nepogrešljiv za sestavljanje tiskanih
vezij. Kot pripravo za kasnejše preizkuse lahko napajalna kabla za maso in VCC položite na
zunanje sledi.
Napajalna kabla na zunanjih sledeh
Program
Ko na krmilnik naložite program, se krmilnik konfigurira kot dostopna točka; V tem primeru bi
morali videti odprto omrežje z imenom NanoESP. Preden pa se povežete z omrežjem,
morate najprej s spleta prenesti še ustrezen program. Pri svojih preizkusih sem uporabljal
program Packet Sender ponudnika Dan Nagle, ki si ga lahko prenesete z naslednje
povezave:
https://packetsender.com/
Ko naložite in namestite program, lahko svoj računalnik povežete z odprtim omrežjem
matične plošče NanoESP. Poskrbite za to, da požarni zid zazna omrežje kot domače
omrežje, tako da ne blokira podatkov. Vaš računalnik mora nato dobiti IP-naslov 192.168.4.2.
To lahko preverite, tako da pošljete AT-ukaz
AT+CWLIF
prek serijskega monitorja na modul. Ta ukaz prikliče prikaz vseh računalnikov, ki so povezani
z dostopno točko, skupaj z IP- in MAC-naslovi.
7
Page 8
Zaženite program Packet Sender, pod Settings (Nastavitve) -> Network (Omrežje) nastavite
UDP-Server-Port (Vrata UDP-strežnika) na 90 in označite potrditveno polje „Enable UDP
Server“ (Omogoči UDP-strežnik). Praviloma se mora nato spodaj levo prikazati UDP:90. Če
se to ne zgodi, morate programsko opremo ponovno zagnati.
Program na računalniku nato služi kot UDP-strežnik, medtem ko je krmilnik nastavljen kot
UDP-odjemalec. V UDP-protokolu razlikovanje med odjemnikom in strežnikom ni jasno,
vendar v tem primeru pomeni, da s krmilnikom pošiljate podatke na svoj računalnik.
Za pošiljanje podatkov uporabite ukaz
AT+CIPSEND=7
Številka 7 predstavlja število znakov, ki jih je treba poslati. Pojavi se znak > kot povratna
vrednost. To pomeni, da lahko sedaj posredujete svoje sporočilo. Vtipkajte Hello in potrdite
vnos s pritiskom tipke Enter. Kot povratno vrednost modul pošlje SEND OK, in to čeprav ste
vnesli samo pet znakov. Vzrok za to je, da se po vašem vnosu pošljeta tudi Carriage Return
in New Line, torej dva znaka več, ki ju morate prišteti k dolžini svojega sporočila.
Ko ponovno preklopite na Packet Sender in tam pogledate pod Log Traffic (Beleženje
prometa), lahko vidite, da je prispelo sporočilo. V pogledu ASCII vidite celo oba znaka, ki sta
bila poslana s sporočilom in ki ju signalizirata \r in \n. Prva komunikacija med matično ploščo
in računalnikom prek WLAN-povezave je bila torej uspešna.
Program Packet Sender je sprejel sporočilo
8
Page 9
4. dan: Dvosmerni UDP
V včerajšnjem projektu ste testirali UDP-komunikacijo v eni smeri, torej od matične plošče do
računalnika. V tem programu modul nastavite tako, da je možna komunikacija tudi v drugo
smer, skoraj tako kot pri klepetu.
Za četrtimi vratci adventnega koledarja se nahaja upor z 1 kΩ (rjav, črn, rdeč). Komponente v
današnjem preizkusu še ne boste potrebovali, vendar jo morate obvezno shraniti za kasneje.
Program Packet Sender je uspešno poslal Hi
Program
Današnji program v bistvu vsebuje samo minimalno spremembo, ki pa ima velik učinek na
komunikacijo z UPD-protokolom. Ko naložite program, se ponovno ustvari dostopna točka, s
pomočjo katere se lahko povežete z računalnikom. Tudi tokrat potrebujete Packet Sender ali
primerljiv program. Zaženite program in izvedite enake nastavitve kot prejšnji dan (File ->
Settings -> Network: Enable UDP Server, Port 90) (Datoteka -> Nastavitve -> Omrežje:
Omogoči UDP-strežnik, vrata 90). Nato morate v glavnem oknu v polju IP-naslov vtipkati
naslov modula (192.168.4.1), vrata nastaviti na 91 in v spustnem meniju, ki se nahaja bolj
proti desni, izbrati točko UDP. Ko izvedete nastavitve in odprete serijski monitor, lahko
pošljete prvo sporočilo na modul, tako da v polje, ki je označeno z napisom ASCII, vtipkate
npr. Hi.
Ko nato kliknete na Send (Pošlji), se na serijskem monitorju pojavi
+IPD,2:Hi
OK
Sporočilo je bilo torej sprejeto. Nato lahko tudi odgovorite, tako da ponovno uporabite ukaz
CIPSEND, torej npr.
AT+CIPSEND=7
>Hello
Klepetanje prek dveh naprav je torej možno, čeprav je tudi zelo zamudno.
9
Page 10
5. dan: Preklapljanje LED
V današnjem programu gre končno za krmiljenje strojne opreme prek UDP-protokola. V tem
primeru se LED vklaplja in izklaplja z enostavnimi ukazi.
Za petimi vratci se nahaja LED. Ustrezen predupor ste našli že za včerajšnjimi vratci.
Sestavite vezje tako kot prikazuje slika.
Tako priključite LED s preduporom na pin D9
Program
Medtem ko so prejšnji vzorčni programi potrebovali veliko vnosov s strani uporabnika, mora
današnji program delovati avtonomno. Kljub temu so prek serijskega monitorja v namen
razhroščevanja še naprej prikazane informacije.
Krmilnik nato čaka na podatke, ki jih sprejme modul in ki jih naznani sporočilo +IPD.
Legitimna ukaza, ki ju lahko pošiljate prek programa Packet Sender, se glasita led1 in led0.
Krmilnik ju interpretira in v skladu s tem vključi ali izključi LED. Prav tako se posreduje
povratna informacija na oddajnik. Če pošljete kak drug ukaz, se na serijskem monitorju
pojavi sporočilo „Wrong UDP Command“ (Napačen UDP-ukaz). Isto sporočilo se prek
omrežja posreduje tudi na oddajnik.
6. dan: UDP-tipkalo
V včerajšnjem programu je krmilnik analiziral prve ukaze. Današnji program ohranja to
funkcijo, vendar lahko dodatno samostojno pošlje ukaz v omrežje.
Za današnjimi vratci se skriva tipkalo. Tukaj služi kot enostavni senzor. Povežite ga s
krmilnikom tako kot prikazuje slika sestava.
Stikalo, prostorsko varčno priključeno na D8
10
Page 11
Program
Program še naprej analizira dohodne signale. Dodatno vedno povprašuje na tipkalu. Če
uporabnik pritisne tipkalo, potem krmilnik pošlje besedilo
Button=1
na omrežje. Vse naprave, ki so povezane z modulom, z UDP-strežnikom na vratih 90 lahko
sprejmejo ukaz. Pri projektu hišne avtomatizacije bi strežnik prejel obvestilo o stanju, na
primer od detektorja gibanja, nato pa bi poslal nazaj ukaz led=1, ki bi služil aktivaciji svetilke.
7. dan: Analogni senzor
V zadnjem projektu smo s pomočjo tipkala obravnavali najenostavnejšo obliko senzorja.
Tokrat bomo kot analogni senzor uporabili potenciometer, ki bo neprekinjeno pošiljal
izmerjene vrednosti v omrežje.
Za 7. vratci adventnega koledarja se nahaja potenciometer z 10 kΩ. Sestav je prikazan na
spodnji sliki.
Sestav s potenciometrom na A0
Program
Poleg analognega senzorja je v programu še ena sprememba. Tokrat krmilnika ne boste
uporabljali v načinu dostopne točke kot doslej, temveč ga boste povezali s svojim domačim
omrežjem. Svoje podatke o postaji pa lahko tudi tokrat popolnoma enostavno vnesete zgoraj
v programu.
Po prenosu lahko nekaj časa traja, dokler ni vzpostavljena povezava z omrežjem. Ko je
povezava uspešno vzpostavljena, začne svetiti LED D3, ki je fiksno pritrjena na matično
ploščo. S tem signalizira, da je krmilnik pripravljen na uporabo. Dokler je serijski monitor
aktiven, boste sicer tudi videli ustrezno sporočilo, vendar boste želeli pri kasnejših preizkusih
matično ploščo morda uporabljati samostojno, in takrat so lahko te povratne informacije zelo
koristne. Prek serijskega monitorja dobite tudi informacije, kateri IP-naslov je usmerjevalnik
dodelil matični plošči. Ta IP-naslov je pomemben, ko se boste kasneje želeli povezati z
matično ploščo.
Povezava z matično ploščo deluje podobno kot doslej. Spremenil se je samo IP-naslov
modula in vašega računalnika. Program na začetku še ne sprejema merilnih rezultatov.
Najprej morate poslati sporočilo, npr. ukaz led=1, in že pribl. enkrat na sekundo dobivate
nove izmerjene podatke.
11
Page 12
8. dan: Brskalnik
V preteklih dneh smo se ukvarjali predvsem z UDP-protokolom, s katerim je možno
enostavno in neposredno pošiljanje podatkov. V naslednjih dneh se bomo ukvarjali s TCPprotokolom (Transmission Control Protocol). TCP vedno dovoljuje samo eno povezavo med
natanko dvema računalnikoma. Uporablja se predvsem na spletu, ko gre za brskanje po
spletnih straneh.
Za današnjimi vratci se ponovno nahaja upor z 1 kΩ (rjav, črn, rdeč). Tako kot pri vseh
ostalih komponentah velja: Komponento dobro shranite, tudi če je danes še ne potrebujete.
Program
Program je po načinu delovanja podoben programu SoftwareSerial s prvega dne, vendar ob
zagonu med drugim samostojno vzpostavi WLAN-povezavo. Tako si prihranite ogromno
pisanja in se lahko hitreje lotite dela. V program ne pozabite vnesti podatkov svojega
domačega omrežja. Nato v serijskem monitorju vtipkajte naslednji ukaz:
AT+CIPSTART=“TCP“,“www.example.com“,80
S tem ukazom vzpostavite TCP-povezavo s spletno stranjo www.example.com. Vrata 80 so
standardna vrata za HTTP-zahtevke. Potem ko povezavo potrdite z OK, lahko vtipkate
naslednji ukaz, ki pa ga že poznate:
AT+CIPSEND=40
Sedaj namreč želite poslati sporočilo prek povezave, ki ste jo pravkar vzpostavili. Če vas
sistem z > pozove k vnosu besedila, najprej vtipkajte
GET / HTTP/1.1
in nato pritisnite tipko Enter. Enter se ne pojavi v serijskem monitorju, vendar je modul sprejel
ukaz. Nato se sporočilo nadaljuje z
Host:www.example.com
temu pa sledi dvakratni pritisk tipke Enter. Rezultat je dolgo besedilo. Prvi del je odgovor
strežnika, ki vsebuje nekaj informacij za brskalnik. Besedilo po <!document html> je spletna
stran, ki jo tudi vidite, ko neposredno prikličete stran www.example.com, vendar je v tem
primeru v čisti besedilni obliki. Brskalnik bi to besedilo nato interpretiral in ga prikazal v nam
znani obliki.
Izvleček odgovora spletnega strežnika
12
Page 13
9. dan: TCP-čas
Projekt današnjega dne uporablja funkcije prejšnjega testa, da lahko samostojno pridobiva
informacije s spletne strani. Konkretno program naloži trenutni čas s strani, ki je bila
zasnovana posebej za ta namen, s čimer nastavi interno uro krmilnika, ki se realizira prek
Library (Knjižnica).
Za današnjimi vratci se ponovno nahaja upor z 1 kΩ. Za jutrišnji preizkus boste potrebovali
vse tri upore.
Program
Medtem ko ste še morali včerajšnji program večinoma upravljati ročno, današnji program v
veliki meri deluje avtonomno. Krmilnik se popolnoma samostojno poveže s spletno stranjo
http://chronic.herokuapp.com/
Prek URL-naslova lahko prikličete različne časovne sisteme in prestavitve. Trenuten zimski
čas, ki velja v Sloveniji in v večini drugih evropskih držav, prikličete z URL-naslovom
http://chronic.herokuapp.com/utc/in-one-hour
Iz tega razloga je pri priklicu funkcije getTime kot drugi parameter prikazan »utc/in-onehour«. Z izhodiščem v UTC-času (koordiniran svetovni čas) morate poleti spremeniti priklic v
»utc/in-twohours«. Po istem sistemu lahko obravnavate tudi vse druge časovne pasove.
Pridobljen čas se nato prenese v Time-Library (Časovna knjižnica), ki jo je razvil Michael
Margolis (vir: http://www.pjrc.com/teensy/td_libs_Time.html). Iz praktičnih razlogov se v
mapi Sketch nahaja kopija različice programa Time-Library, ki sem ga uporabil. Ta program
je treba kopirati v mapo libraries v vaši mapi Sketchbook. V ozadju se nenehno izračunava
nov čas, ki je vsako sekundo na voljo v terminalu. Nato bi lahko na enostaven način
programirali budilko ali kakšno drugo aplikacijo s časovnim krmiljenjem.
10. dan: Prikaz temperature
Pri današnjem projektu gre za intuitivni prikaz trenutne temperature. S samo enim pogledom
lahko ocenite, če je smiselno, da s seboj vzamete toplo jakno.
Za današnjimi vratci se nahaja dodatna LED, vendar pri tem ne gre za običajno LED. Gre
namreč za RGB LED. RGB je kratica za Red, Green, Blue (rdeča, zelena, modra), saj je LED
pravzaprav sestavljena iz več LED s skupnim katodnim priključkom. S kombinacijo različnih
barv z različnimi svetilnostmi je možen prikaz skoraj vsake barve. Tako kot prikazuje slika,
lahko LED s predupori priključite na PWM-izhode D3, D5 in D6 krmilnika.
13
Page 14
Priključitev RGB LED na pine D3, D5 in D6
Program
V današnjem programu gre ponovno za priklic spletne strani, vendar gre tokrat za spletno
stran z informacijami o vremenu, in sicer
www.openweathermap.org
Na tej strani lahko s spreminjanjem URL-naslova dobite informacije o vremenu v vašem
mestu. Primer se omejuje na podatke v živo v tako imenovanem XML-formatu v metričnem
sistemu. Mesto, ki ga želite priklicati, lahko v izvorni kodi enostavno vpišete za CITY. Kot
primer sem uporabil moje domače mesto Essen:
Program nato iz te strani odčita temperaturo in rezultat barvno prikaže s pomočjo RGB LED.
Hkrati je vrednost prikazana tudi prek serijskega monitorja. Temperaturno območje za prikaz
na LED, ki je uporabljeno v vzorčnem programu, se nahaja med -20 °C in +40 °C.
11. dan: Spletni strežnik TCP
V prejšnjih preizkusih smo se veliko ukvarjali s temo TCP in dostopom do spletnih strežnikov.
Danes bo modul prvič sam deloval kot spletni strežnik.
Za vratci 11. dne se nahaja poseben kabel, ki bo kmalu še zelo koristen. Poseben sestav
danes ni potreben, saj program deluje podobno kot program serijskega monitorja iz prvega
dne.
Program
Spremenite WLAN-podatke tako kot ste že vajeni in naložite program na svojo matično
ploščo. Nato zaženite monitor. Ponovno lahko nekaj sekund traja, da se pojavi sporočilo o
uspešni povezavi matične plošče. Ko se pojavi sporočilo o uspešni povezavi in je prikazan
IP-naslov modula, potem lahko v serijski modul vnesete prvi ukaz:
AT+CIPMUX=1
S tem ukazom omogočite več povezav z modulom. Tako lahko do spletnega strežnika
dostopa več računalnikov. Z naslednjim ukazom zaženete spletni strežnik:
14
Page 15
AT+CIPSERVER=1,80
Parameter 1 pomeni, da se strežnik zažene. Z 0 ponovno deaktivirate strežnik. Številka 80
predstavlja vrata, pod katerimi je strežnik dosegljiv. HTTP-zahtevki, ki jih pošilja brskalnik, se
v splošnem pošiljajo prek vrat 80.
Nato lahko odprete brskalnik po lastni izbiri in v naslovno vrstico vtipkate IP-naslov modula
ter ga prikličete. V brskalniku se najprej pojavi sporočilo o nalaganju, v serijskem monitorju
pa lahko opazite spremembo. Vidite zahtevek, ki je podoben temu, ki ste ga že ročno
pošiljali.
Brskalnik nato torej čaka na odgovor in tako dolgo prikazuje simbol za nalaganje, dokler se
povezava ne prekine zaradi premora. Brskalniku lahko z različico znanega ukaza pošljete
sporočilo:
AT+CIPSEND=0,7
Parameter 0 tukaj navaja odjemalca, na katerega želite poslati sporočilo. To je potrebno
zato, ker je dovoljenih več povezav, zato je lahko tudi povezanih več odjemalcev. Drugi
parameter, v tem primeru 7, ponovno navaja znake, ki jih je treba poslati. Pojavi se > in lahko
vtipkate enostavno besedo
Hello
in jo pošljete s pritiskom tipke Enter. V vašem brskalniku se zaenkrat še nič ne spremeni, saj
morate najprej prekiniti povezavo. Pri tem uporabite naslednji ukaz:
AT+CIPCLOSE=0
Nato lahko v brskalniku vidite Hello, s čimer ste udejanjili prvo rabo spletnega strežnika.
12. dan: Avtonomen spletni strežnik
Sedaj je čas, da rezultate včerajšnjega preizkusa ponovno uporabite v avtonomnem
programu. Današnji program pa na brskalnik ne pošlje samo enostavne spletne strani,
temveč dodatno omogoča krmiljenje LED.
Za današnjimi vratci se nahaja 9 V akumulatorska sponka, s katero lahko poskrbite za
mobilnost matične plošče. Kot alternativo lahko uporabite tudi akumulatorski paket (ponavadi
za mobilne telefone). Če želite uporabiti 9 V baterijo, poskrbite za to, da boste rdečo žico
povezali z Vin in črno z GND. Na sliki vidite sestav današnjega preizkusa z zunanjim
napajanjem.
Zahtevek v brskalniku
15
Page 16
Tako priključite baterijo na današnji sestav preizkusa
Program
Današnji program pošilja malce bolj kompleksno stran kot prejšnji preizkus. Poleg tega lahko
preklapljate LED na pinu D9, tako da zadaj vnesete IP-naslov modula/LED. Trenutno stanje
LED se nato obrne, torej se vsakič preklopi.
Vpišite svoje WLAN-podatke in naložite program. IP-številka matične plošče je prikazana v
serijskem monitorju. Nato lahko odprete brskalnik in prikličete IP-naslov matične plošče.
Spletna stran ima nato naslov in malce več besedila. Besedilo vas tudi pouči o tem, kako
lahko krmilite LED. Gre torej za prvi, popolnoma avtonomni spletni strežnik.
13. dan: Spletna stran z gumbi
V današnjem preizkusu je prikaz spletne strani še bolj izpiljen. Poleg tega bodo nato na voljo
tudi krmilni elementi, preko katerih lahko LED bistveno udobneje krmilite.
Sestav današnjega preizkusa se ne razlikuje od včerajšnjega: Gre za LED na pinu D9, ki jo
je možno upravljati prek modula. Kot dodatno komponento za vratci koledarja ponovno
najdete upor z 1 kΩ. Po potrebi lahko nato zmanjšate svetilnost LED, tako da zaporedno
vežete dva upora.
Program
Današnji program spletno stran shranjuje na malce drugačen način kot prejšnji program.
Medtem ko je včeraj izvorna koda vsebovala enostavno spletno stran, se tokrat stran shrani
v tako imenovani spremenljivki Progmem. To razbremeni SRAM matične plošče in omogoča
bolj kompleksen prikaz spletne strani. Vendar pa nimate več tako dobrega pregleda nad
stranjo.
Vendar pa si lahko HTML-datoteko ogledate v mapi Sketch in jo po potrebi spremenite. Če
spletno stran s pomočjo spletne strani
tools.thebuzzmedia.com/bytechar
preračunate v bajte in jih vnesete v spremenljivko Progmem, ste generirali novo spletno stran
za svoj spletni strežnik.
16
Page 17
Spletna stran spletnega strežnika
14. dan: Spletni strežnik za RGB LED
Pri projektu današnjega dne gre za krmiljenje RGB LED s pomočjo spletnega strežnika. Prek
preglednega vmesnika lahko spreminjate barvo LED. Spletna stran je bila poleg tega
prilagojena, tako da je lahko dobro prikazana tudi na pametnih telefonih.
Za današnjimi vratci adventnega koledarja se ponovno nahaja upor, vendar tokrat z 10 kΩ
(rjav, črn, oranžen). Potrebovali ga boste za jutrišnji preizkus.
Sestav za današnji preizkus je enak kot sestav desetega dne. RGB LED prek preduporov
priključite na pine D3, D5 in D6, ki so združljivi s PWM.
Priključitev RGB LED na pine D3, D5 in D6
Program
Prenesena spletna stran je ponovno skrita v binarni obliki na strani spremenljivke Progmem.
Tudi tokrat si lahko HTML-stran gledate v mapi Sketch. Potem ko nastavite WLAN-podatke
in naložite program, lahko spletno stran spletnega strežnika dosežete prek IP-naslova
modula. Stran je z barvo ozadja in naslovom oblikovana podobno kot prejšnja. Vendar pa se
na strani nahaja nov element, in sicer HTML5-element Color Picker. Z njim lahko izberete
barvo za LED. Takoj ko potrdite barvo, jo bo LED tudi prikazovala. Pri tem se lahko prikaz
elementa Color Picker močno razlikuje glede na izbran brskalnik.
17
Page 18
15. dan: Svetlobni senzor
Projekt današnjega dne uporablja spletno stran spletnega strežnika ne kot krmilni vmesnik,
temveč kot izhodni element. Svetilnost, ki jo izmeri svetlobni strežnik, je pregledno prikazana
kot relativna vrednost.
Za današnjimi vratci se nahaja fototranzistor, ki služi kot svetlobni senzor. Fototranzistor je
videti kot LED, vendar ga ne smete zamenjati zanjo. Sestav današnjega preizkusa je
prikazan na sliki. Kolektor fototranzistorja je krajši priključek in se stika s +5 V.
Program
Do danes so bile spletne strani spletnega strežnika vedno sestavljene iz nespremenljive
strani, ki je pošiljala podatke na krmilnik. Danes boste spletno stran pred prenosom na
brskalnik spremenili, da bo prikazovala izmerjeno svetilnost fototranzistorja. To deluje zato,
ker je v izvorni kodi spletne strani skrit nekakšen nadomestitelj. Nato program pri nalaganju
podatkov iz spremenljivke Progmem nadomesti nadomestitelja *bright* s trenutno vrednostjo
svetilnosti. Tako se spremenita izhodno besedilo in odmik drsnega regulatorja. Dodatna
vrstica v HTML-datoteki poskrbi za to, da se stran vsakih nekaj sekund samodejno na novo
naloži. In že je trenutna svetilnost pregledno prikazana v brskalniku.
Priključitev fototranzistorja na pin A0
Spletna stran svetlobnega senzorja
16. dan: GPIO-Control
Projekt današnjega dne omogoča enostavno krmiljenje digitalnih pinov D2 do D7 prek
spletne strani. Status posameznega pina je prav tako prikazan na spletni strani, tako da
nikoli ne izgubite pregleda.
18
Page 19
Da lahko stanje pinov dobro preverite, je priporočljiv sestav v skladu s spodnjo sliko.
Uporabiti je treba tako RGB LED kot tudi običajno LED. Katodi LED pa tokrat nista priključeni
na dolg vodnik za maso na zunanji strani matične plošče, temveč se prav tako nahajata na
digitalnem izhodu. Samo ko so ti pini preklopljeni v nizko stanje (low), potem lahko LED
svetita.
Komponenta iz koledarja današnjega dne je dodaten kabel. Ta kabel omogoča, da LED
položite na stran matične plošče. Matično ploščo lahko nato vgradite na primer v ohišje in
LED položite navzven.
Pozor! LED ne smete priključiti brez preduporov. Da je to v tem primeru dovoljeno, na Onuporih internih vratnih FET-tranzistorjev upornost znaša pribl. 30 Ω. Ker se LED nahajata
med dvojnimi vrati, dejansko delujeta s 60 Ω preduporom. V odvisnosti od tipa in barve LED
pri tem tok LED znaša med 15 mA in največ 30 mA, kar je še dovoljeno.
Priključitev LED na pine od D2 do D7
Program
Spletna stran današnjega programa uporablja tako imenovana potrditvena polja kot HTMLelement. Ko naložite program in prikličete stran matične plošče, vidite vrsto okvirčkov, na
katere lahko kliknite. Kljukica v okvirčku pomeni, da se pin nahaja v visokem stanju (high) Če
ni kljukice, to pomeni nizko stanje (low). Nato lahko preizkusite, kateri pini morajo biti high in
kateri low, tako da LED svetijo.
Spletna stran GPIO-Control
19
Page 20
17. dan: IR-modul
Projekt današnjega dne omogoča upravljanje krmilnika z daljinskim upravljalnikom. S
tipkami, ki jih sami izberete na infrardečem daljinskem upravljalniku po vaši izbiri, lahko
spreminjate barvo RGB LED in skupaj z njo tudi barvo ozadja spletne strani.
Za današnjimi vratci se nahaja komponenta, ki je pomembna za današnji projekt, in sicer
infrardeči sprejemni modul. Modul lahko priključite popolnoma brez kabla tako kot prikazuje
spodnja slika. Program ustrezne pine nastavi tako, da ima modul na voljo napajanje.
IR-modul na pinih od D7 do D5
Program
Program današnjega dne ponovno uporablja zunanjo knjižnico, in sicer IRremote-Library, ki
jo je ustvaril Ken Shiriff. Kopija različice, ki sem jo uporabil, je ponovno shranjena v mapi
Sketch in jo morate samo kopirati v mapo library vaše mape Sketchbook.
Po nalaganju programa zaženite serijski monitor. Poiščite daljinski upravljalnik in ga usmerite
proti modulu. Ko pritisnete tipko, se mora v monitorju pojaviti vrednost signala kot
heksadecimalna koda in tip protokola kot število. Če se pojavi tip -1, potem protokol ni bil
zaznan. Lahko pride tudi do več neuspešnih poskusov, dokler se ukaz ne dekodira pravilno.
Torej preprosto malce preizkušajte ali pa poskusite z drugim daljinskim upravljalnikom. Ko
najdete ustrezen daljinski upravljalnik, potem izberite šest tipk (najbolje je, da uporabite
naslednje tipke: vklop/izklop, povečanje glasnosti, zmanjšanje glasnosti, naslednji kanal,
prejšnji kanal in izklop zvoka). Kode šestih ukazov morate nato kopirati v program za šest
#define irComX (ne pozabite na 0x iz heksadecimalne kode). Tam določite ukaze daljinskega
upravljalnika za LG-televizor. Ko pravilno vnesete kode, lahko ponovno naložite program. S
tipkami, ki ste jih določili, lahko nato spreminjate barvo RGB LED. Ko posodobite stran
matične plošče, boste tudi videli, da se je spremenila barva.
18. dan: Univerzalni daljinski upravljalnik
Včeraj ste sestavili sprejemnik za infrardeče daljinske upravljalnike. Danes boste sestavili
takorekoč sam daljinski upravljalnik. Natančneje povedano: Sestavili boste univerzalen
daljinski upravljalnik, ki ga je možno upravljati prek računalnika ali pametnega telefona in s
katerim lahko upravljate svoj televizor ali druge naprave, ko na primer spet ne boste našli
originalnega daljinskega upravljalnika.
Da se lahko lotite projekta, potrebujete komponento, ki se nahaja za današnjimi vratci, in
sicer IR-diodo. Videti je kot običajna LED, vendar oddaja svetlobo na nevidnem infrardečem
območju. Vendar pa so IR-signali za digitalno kamero vidni. Pri sestavu današnjega dne
upoštevajte sliko na naslednji strani.
20
Page 21
Ne čudite se, da IR LED ne potrebuje predupora. Učinkovit predupor je že On-upor vrat, ki
znaša pribl. 30 Ω. S tem je tok, ki teče skozi diodo, precej visok, vendar pa so poslani impulzi
tako kratki, da se dioda ne poškoduje.
Priključitev IR-diode na pin D3
Program
Preden lahko projekt deluje, morate spet izvesti nekaj prilagoditev. Če ste včeraj izbrali in
uporabljali kode vklop/izklop, povečanje glasnosti, zmanjšanje glasnosti, naslednji kanal,
prejšnji kanal in izklop zvoka, lahko te kode enostavno zapovrstjo vnesete v Array
irCommand. Če tega niste storili, potem ponovno zaženite včerajšnji program in izberite
ustrezne kode. Seveda lahko uporabite tudi čisto druge kode, vendar se v tem primeru napisi
na spletni strani ne skladajo. Poleg kod morate vnesti tudi uporabljen protokol in
spremenljivko irProtokoll, v kolikor je vaš daljinski upravljalnik podprt. Nazadnje morate
vnesti še dolžino signala, ki ga želite poslati. To določite tako, da mesta heksadecimalne
kode pomnožite s štiri. Primer: Moja koda za vklop/izklop je bila 0x20DF10EF. 0x je
preprosto samo znak za heksadecimalno kodo, torej ostanejo 20DF10EF in s tem
osemmestna heksadecimalna koda. 8 x 4 = 32, torej se v vzorčnem programu za
spremenljivko irLen nahaja 32. Podoben izračun morate izvesti za kodo, ki ima drugačno
dolžino.
Ko vnesete vse kode in parametre ter seveda tudi svoje WLAN-podatke, potem lahko
naložite program. Spletna stran matične plošče nato vsebuje šest gumbov z ustreznimi
napisi. Ko pritisnete enega izmed gumbov, se na serijskem monitorju pojavi sporočilo, vaš
televizor ali kakšna druga naprava pa se mora ustrezno odzvati na signal. Če se to ne zgodi,
se morate morda bolj približati ali preveriti, če IR-dioda sploh kaj pošilja. LED, priključena z
napačnimi poli, je npr. lahko vzrok, zakaj projekt ne deluje, tako kot želite.
Spletna stran TV Temote
21
Page 22
19. dan: Spletna stran ThingSpeak
V zadnjih dneh adventnega časa se bomo ukvarjali s popolnoma novo temo, in sicer s
spletno stranjo ThingSpeak. Ta stran je bila razvita posebej za temo interneta stvari in vam
nudi različne praktične funkcije.
Preden se torej tako kot doslej lotite sestavljanja in programa, si morate ustvariti račun na
spletni strani
www.ThingSpeak.com
Nato se s svojimi uporabniškimi podatki prijavite pod točko Sign In. Vidite stran, ki prikazuje
vaše kanale. Ker še nimate kanalov, bo ta stran videti precej prazna. Kliknite na New
Channel (Nov kanal) in ga poimenujte, npr. Light (Svetloba), kajti v tem projektu boste merili
svetilnost. Pod točko Field1 (Polje 1) lahko nato še poimenujete polje, npr. Brightness
(Svetilnost). Vsa druga polja lahko zaenkrat ostanejo prazna.
Za shranjevanje nastavitev kliknite na Save Channel (Shrani kanal). Nato ste preusmerjeni
na stran vašega kanala, na kateri pa je viden samo prazen diagram. Na zavihku nad njim
kliknite na API-Keys (API-ključi). Zaporedje številk in črk, ki ga najdete pod točko Write API
Key (Pisanje API-ključa), boste kmalu potrebovali.
Za današnjimi vratci ponovno najdete kabel. Nato lahko tudi trinožne komponente, kot je IR
sprejemni modul, namestite na strani preizkusne ploščice. Sestav današnjega preizkusa je
identičen sestavu preizkusa iz 15. dne. Delilnik napetosti z 10 kΩ uporom in fototranzistor
omogočata merjenje trenutne svetilnosti.
Sestav s fototranzistorjem na A0
22
Page 23
Ustvarjanje kanala na strani ThingSpeak
Program
Današnji program meri – podobno kot program iz 15. dne – svetilnost. Vendar pa se za
razliko od prejšnjega preizkusa podatki pošiljajo neposredno na stran ThingSpeak. Ta stran
shranjuje podatke, poleg tega pa jih pregledno prikazuje v diagramu. To je zelo praktična
funkcija za merilno postajo z dolgoročnim nadzorom.
Da lahko program pošilja podatke na spletno stran, morate poleg svojih WLAN-podatkov
najprej v program vnesti zgoraj omenjen API-Key pod točko ThingSpeakKEY. Priporočljivo
je, da po nalaganju odprete serijski monitor. Praviloma mora uspešen prenos spremljati
sporočilo Update-Send. Na strani ThingSpeak lahko nato ponovno kliknete na zavihek
Private View (Zasebni pogled) svojega kanala. Tam vidite diagram svojega kanala, ki vsakih
15 sekund sprejme nove podatke.
23
Page 24
Merilni rezultati v diagramu
20. dan: Spletna stran Twitch
Spletna stran ThingSpeak nudi veliko več kot samo dolgoročni nadzor senzorjev. Današnji
projekt je po osnovni ideji podoben projektom iz 9. in 10. dne. Pri tem namreč poteka
pridobivanje informacij s spletne strani iz interneta. V tem primeru gre za to, če je določen tok
podatkov trenutno na spletu ali ne.
Pri tem obstaja dve pomembni prednosti različice ThingSpeak v primerjavi s prvimi preizkusi.
Prvo kot prvo lahko prek strani ThingSpeak krmilite tudi spletne strani prek HTTPS-protokola
(HyperText Transfer Protocol Secure), medtem ko modul podpira samo nezavarovan HTTPprotokol. Drugo kot drugo pa lahko spletna stran že predhodno filtrira pomembne informacije
in s tem bistveno zmanjša količino podatkov, ki jo mora obdelati krmilnik.
V današnjem projektu boste udejanjili prikaz pretočnega predvajanja s spletne strani Twitch
kot vzorčni primer za različne možnosti. Twitch je spletna stran, na kateri se pretočno
predvajajo igre v živo ali informativne vsebine na temo računalniških iger. Eden izmed najbolj
znanih kanalov za pretočno predvajanje je RocketBeansTV, bivši GameOne-Macher, ki
oddaja 24 ur na dan, zato je primeren za prvi test. Kasneje lahko seveda uporabite kanal po
lastni izbiri.
Današnji sestav preizkusa z LED na pinu D9
Program
Poleg sestava strojne opreme je treba izvesti tudi nekaj korakov na strani ThingSpeak. Če na
spletni strani v zgornjem meniju kliknite na APPs (Aplikacije), se vam prikaže cela vrsta
različnih možnosti uporabe. Danes se bomo ukvarjali z aplikacijo ThingHTTP. Če kliknete na
24
Page 25
ustrezen gumb, se vam bo najprej prikazal precej prazen vmesnik. Kliknite na New
ThingHTTP (Nov ThingHTTP). V obrazcu, ki se pojavi, vnesite naslednje:
Če imate raje kak drug pretočnik (ang. Streamer), lahko v URL-ju za kanalom vnesete drug
kanal. Kliknite na Save ThingHTTP (Shrani ThingHTTP), nato pa API-Key, ki se pojavi v
pregledu, kopirajte v medpomnilnik. Nato morate API-Key kopirati v program, in sicer za
#define ThingHTTP. Ne pozabite vnesti WLAN-podatkov in že lahko naložite program. Nato
program enkrat na minuto preverja, če lahko najde tok podatkov. Če temu ni tako, LED
začne svetiti.
21. dan: Alarmna naprava
Pri projektu današnjega dne gre za alarmno napravo, s katero lahko na primer preverite, če
je nekdo nepooblaščeno odprl predal. Naprava neprekinjeno preverja, če na priključen
svetlobni senzor pada preveč svetlobe. Če je temu tako, se sproži alarmni signal, poleg tega
pa se pošlje sporočilo prek Twitterja.
Za vratci današnjega dne se nahaja Piezo zvočnik, ki služi kot alarmni signalizator. Pri
sestavu današnjega dne upoštevajte spodnjo sliko.
Svetlobni senzor na A0 in Piezo na D8
Program
Tema današnjega dne je med drugim aplikacija za Twitter spletne strani ThingSpeak. Torej
kliknite na Apps (Aplikacije) in nato na ThingTweet. S klikom na povezavo TwitterAccount in
vnosom vaših podatkov za dostop vzpostavite povezavo med obema storitvama. Če še
nimate Twitter računa, se izplača, da v namene adventnega koledarja ustvarite testni račun.
Potem ko Twitter uspešno povežete s ThingSpeak, lahko API-Key, ki se nahaja pod Apps –
ThingTweet, vnesete za točko #define TwitterKEY v današnjem programu. Program nato ves
čas preverja, če izmerjena svetilnost presega vrednost 500. Če se to zgodi, se pošlje
sporočilo prek Twitterja, poleg tega pa se aktivira alarm, ki traja tako dolgo, dokler svetilnost
spet ne pade pod 500. Trenutno izmerjenim vrednostim svetilnosti lahko sledite prek
25
Page 26
serijskega monitorja. Priporočam vam, da za prve preizkuse svetlobni senzor pokrijete, tako
da se alarm ne sproži predčasno.
22. dan: Aplikacija TalkBack
V današnjem projektu gre za nadaljnjo aplikacijo s spletne strani ThingSpeak, in sicer
aplikacijo TalkBack. S to funkcijo lahko ustvarite ukaz, ki ga krmilnik prebere in izvede. Kar
se s samo enim krmilnikom najprej zdi nesmiselno, postane smiselno, ko uporabljamo dva ali
celo celotno omrežje krmilnikov. Nekatere matične plošče lahko nato delujejo kot senzorji, na
primer z detektorji gibanja, in pri zaznanem premikanju pošljejo ukaz TalkBack. Dodatni
modul prebere ukaz s spletne strani ThingSpeak in nato odpre vrata ali javi alarm.
Za današnjimi vratci se nahaja dodatno tipkalo. Sestav današnjega preizkusa je sestavljen iz
LED s preduporom in dveh tipkal, tako kot je razvidno iz slike.
Sestav z dvema stikaloma na D5 in D10 in LED na D9
Program
Najprej morate pod APPS – TalkBack ustvariti nov kanal TalkBack. Če želite, lahko ukaze
vnašate tudi v kanalu. To je lahko kanal Light, ki ste ga že ustvarili 19. dne, ali tudi lasten
kanal. Vsi ukazi se nato protokolirajo. Pomemben pa je predvsem API-Key, ki ga vnesete na
mesto #define TalkBackKEY. Dodatno poleg API-Key tokrat potrebujete tudi ID-številko, ki jo
najdete v pregledu pod TalkBackID, potem ko kliknete na Save-TalkBack. Tukaj vnesite
#define TalkBackID v program.
Ko nato naložite program in prikličete serijski monitor, najprej vidite sporočilo No Command.
Nato pritisnite eno izmed tipkal. Nato se čez kratek čas pojavi sporočilo OpenDoor
(Odpiranje vrat) ali CloseDoor (Zapiranje vrat), v odvisnosti od tega, katero tipkalo ste
pritisnili. Pri ukazu OpenDoor poleg tega začne svetiti LED.
23. dan: Projekt Cheerlights
Današnji preizkus temelji na projektu, ki ga je razvil Hans Scharler in poimenoval
Cheerlights. Ideja je naslednja: Luči, povezane z omrežjem po vsem svetu, ki jih je možno
simultano upravljati z ukazi prek Twitterja. Gre za dober primer, kako je svet z internetom
vedno tesneje povezan.
Za današnjimi vratci se nahaja četrti podaljševalni kabel, s katerim lahko tudi RGB LED
namestite proč od matične plošče. To je lahko praktično, ko želite na primer matično ploščo
skriti v božičnem drevescu, medtem ko RGB LED krasi vrh drevesca.
26
Page 27
RGB LED na preizkusni ploščici na pinih D3, D5 in D6
Program
Za današnji program vam izjemoma ne bo treba izvajati lastnih sprememb spletne strani
ThingSpeak, saj ima projekt javni kanal, ki ga najdete na povezavi
https://thingspeak.com/channels/1417
Na strani poleg tega vedno najdete aktualno barvo in nadaljnje informacije o projektu.
Za program poleg tega potrebujete knjižnico Crossfade, ki jo je razvil Radek Wierzbicki (vir:
https://github.com/radekw/Arduino/tree/5f24ce7c8db9dfbb5252b59824c3217d851b3a3c). Iz
praktičnih razlogov se v mapi Sketch nahaja kopija različice knjižnice, ki sem ga uporabil.
Kopirati jo je treba v mapo Libraries v vaši mapi Sketchbook. Knjižnica omogoča, da hitro in
enostavno definirate barve in dodatno poskrbi za to, da LED počasi prehajajo v drugo barvo
(ang. fade).
Ko nato naložite program, se čez nekaj sekund prikaže aktualna barva LED. nato lahko
ustvarite Twitter sporočilo in s tem spremenite svojo barvo in tudi barvo vseh drugih
uporabnikov Cheerlights. Sporočilo mora vsebovati besedo #Cheerlights, @Cheerlights ali
preprosto samo Cheerlights, poleg tega pa se mora za to besedo nahajati ena izmed
predhodno definiranih barv. Med predhodno definirane barve sodijo:
Testing my #cheerlights project on my #NanoESP with the color blue #ThingSpeak #IoT
ali podobno sporočilo. In že ste celotnemu svetu dodelili novo barvo.
24. dan: Detektor požara za božično drevesce
Zaključni projekt je sestavljen iz več elementov, ki ste jih spoznali v adventnem času. Ena
izmed funkcij je funkcija Cheerlights, ki ste jo spoznali prejšnji dan. Še naprej lahko
sprejemate trenutno barvo projekta Cheerlights in jo prikazujete z RGB LED. Poleg tega se
matična plošča uporablja za dolgoročni nadzor temperature. Hkrati lahko matična plošča
sproži zvočni alarm, ko temperatura preseže določeno vrednost, npr. ker pride do nastanka
27
Page 28
požara. In še zadnja funkcija: Matično ploščo lahko uporabite kot božični zvonček, tako da s
časovno krmiljenim ukazom TalkBack aktivirate predvajanje pesmi Jingle Bells. V celoti
gledano je današnji projekt pravi multitalent za božično drevesce.
Za današnjimi vratci se ponovno nahaja precej zanimiv senzor, in sicer NTC (Negative
Temperature Coefficient = negativni temperaturni koeficient). Ta spreminja svojo upornost v
odvisnosti od temperature. Torej se vsekakor izplača, da na novo izvedete nekaj starejših
preizkusov, vendar tokrat uporabite temperaturni senzor. Današnji sestav vsebuje precejšnjo
količino elementov. Ponovno boste uporabili tudi potenciometer, da lahko izvajate fine
nastavitve na NTC-senzorju. Druga možnost je, da uporabite 10 kΩ upor, vendar v tem
primeru fina nastavitev ni možna.
Sestav zadnjega preizkusa
Program
Končni program mora združiti številne različne elemente. Pri tem ima spletna stran
ThingSpeak spet velik pomen. Med drugim se tokrat tudi nadzor nad mejno vrednostjo NTCsenzorja prevzame z aplikacije, ki jo najdete na strani ThingSpeak. S tega mesta se nato
izvajajo tudi postopki alarmiranja, in sicer pošiljanje sporočila prek Twitterja in vnašanje
ukaza TalkBack, ki na krmilniku sproži alarm. S pomočjo aplikacije Time-Control s spletne
strani ThingSpeak lahko poleg tega določite čas, ob katerem bo pesem Jingle Bells priklicala
celotno družino k božičnem drevescu ali ob katerem želite, da vas glasba naslednji dan
zbudi.
V prvem koraku morate na spletni strani ThingSpeak ustvariti nov kanal. Poimenujete ga
lahko na primer FireAlarm (Požarni alarm). Field1 (Polje 1) nato poimenujete Temp. Pod
API-Key najdete prvi ključ, ki ga morate vnesti za ThingSpeakKEY. S tem je zagotovljen
prenos trenutne vrednosti temperature.
V drugem koraku je treba ustvariti nov element TalkBack. Kot ime lahko uporabite na primer
Alarms. Poleg tega lahko ukaze zabeležite v kanalu FireAlarm. API-Key morate vnesti za
TalkBackKEY, ID-številko pa za TalkBackID. Nato lahko že pošiljate ukaze na matično
ploščo. Ukaze lahko vnašate tudi ročno, tako da v pregledu TalkBack kanala Alarm kliknete
na Add a new Command (Dodaj nov ukaz) in tam pod Command String (Ukazni niz) vnesete
Alarm ali Jingle. Podatek o položaju ni potreben, saj se ukaz samodejno shrani na prvem
mestu. Nato lahko program že naložite in testirate, če prenos trenutne vrednosti temperature
deluje in če matična plošča izvaja ukaze. Na tem mestu se tudi izplača, da s pomočjo
sobnega termometra kalibrirate NTC-senzor prek potenciometra.
28
Page 29
Načeloma bi bil to že polno funkcionalen projekt, vendar manjkajo še bonus funkcije. Vendar
pa vam teh ni treba več izvajati v programu, temveč samo na spletni strani ThingSpeak. Pri
tem kliknite na Apps (Aplikacije), nato pa izberite React (Odziv). Z React je možno odzivanje
na določene dogodke. Torej s klikom na New React (Nov odziv) ustvarite novo funkcijo
React in vnesite naslednje vrednosti:
Name: FireDetect1
Condition Type: Numeric
Test Frequency: On Data Insertion
Condition: If Channel
FireAlarm
field 1 (Temp)
is great than
40
Action: ThingTweet
then tweet:
Using Twitter Account
[Twitter Account]
Options: Run action only the first time the condition is met
S klikom na Save React (Shrani odziv) shranite nastavitve. S tem je prvi korak nadzora že
opravljen. Ko pride do prekoračitve vrednosti, ThingSpeak prek vašega računa pošlje Twitter
sporočilo. Za drugi korak, vnos ukaza za alarm, morate seči še malce globlje v zbirko zvijač,
saj funkcija ni samodejno podprta. Imate pa podporo za ThingHTTP. Torej kliknite na Apps
(Aplikacije) in nato na ThingHTTP. Tam ustvarite nov element in izvedite naslednje
nastavitve:
Poskrbite za to, da boste [YOUR TALKBACK ID] in [YOUR TALKBACK KEY] v URL-naslov
in v delu Body nadomestili s svojo ID-številko TalkBack in svojim ključem TalkBack. Nato
lahko ustvarite dodatni element React, ki vsebuje enake parametre kot prvi, s to spremembo,
da pri Action izberete ThingHTTP, tam pa izberete točko Alarm. S tem zagotovite, da se ob
prekoračitvi kritične vrednosti sproži alarm.
Kot zadnjo funkcijo lahko nastavite časovno krmiljeno pesem Jingle Bells. Pri tem pod Apps
(Aplikacije) kliknite na TimeControl (Časovno krmiljenje) in ustvarite nov element, npr. z
imenom Bell (Zvonec). Tam izvedite naslednje nastavitve:
Name: Presents
Frequency: One Time
Time Zone: Berlin
Run At: 2015-24-12 7:00 pm
Fuzzy Time: ± 0 minutes
TalkBack: Alarms, add command: Jingle
Za prvi test je priporočljivo, da izberete čas v nekaj minutah. Ko to deluje, lahko nastavite
želen čas.
Fire Alarm on the #NanoESP! Temp: %%trigger%%C #ThingSpeak #IoT
Poleg tega lahko z 9 V akumulatorsko sponko ali tudi z akumulatorskim paketom poskrbite
za mobilnost projekta. Ko matično ploščo skrijete v božičnem drevescu, tako da je iz vejevja
na ustreznem mestu vidna samo RGB LED, potem vse skupaj tudi po nepotrebnem ne kazi
ambienta. In točno ob 19:00 bo vse družinske člane k drevesu priklicala pesem Jingle Bells.
Želim vam vesele božične praznike!
Varnostni ukrepi
V nobenem primeru ne smete GPIO-pinov povezati med seboj in čakati, kaj se bo zgodilo.
Vseh GPIO-pinov ni možno poljubno programirati. Nekateri so fiksno nastavljeni za
napajanje in druge namene.
Pomembne informacije
Spoštovana stranka!
Ta izdelek je bil izdelan v skladu z veljavnimi evropskimi direktivami in je zato
opremljen z oznako skladnosti CE. Ustrezna uporaba je opisana v teh navodilih za
uporabo.
Pri vsaki drugačni uporabi ali spreminjanju izdelka ste kot uporabnik sami odgovorni za
upoštevanje veljavnih predpisov. Iz tega razloga vezja sestavljajte natanko tako, kot je
opisano v navodilih za uporabo. Izdelek lahko predate v uporabo tretji osebi samo skupaj s
temi navodili za uporabo.
Simbol prečrtanega smetnjaka pomeni, da je treba ta izdelek odstraniti ločeno od
gospodinjskih odpadkov in ga oddati na ustreznem zbirališču odpadne električne
opreme, ki bo poskrbelo za reciklažo. O najbližjem brezplačnem zbirališču tovrstnih
odpadkov se pozanimajte pri svoji občini.
Opozorilo! Zaščita oči in LED:
Ne glejte neposredno v LED z majhne razdalje, saj lahko z neposrednim gledanjem pride do
poškodb mrežnice! To velja predvsem za svetle LED v prozornem ohišju ter v posebni meri
za zmogljive LED. Pri belih, modrih, vijoličnih in ultravijoličnih LED daje navidezna svetilnost
napačen vtis o dejanski nevarnosti za vaše oči. Posebna previdnost je potrebna pri uporabi
zbiralnih leč. LED uporabljajte tako kot je opisano v teh navodilih za uporabo. Za napajanje
ne uporabljajte večjih tokov od priporočenih.
Proizvajalec jamči za kakovost oziroma brezhibno delovanje v garancijskem roku, ki začne
teči z izročitvijo blaga potrošniku. Garancija velja na območju Republike Slovenije.Garancija za izdelek je 1 leto.
Izdelek, ki bo poslan v reklamacijo, vam bomo najkasneje v skupnem roku 45 dni vrnili
popravljenega ali ga zamenjali z enakim novim in brezhibnim izdelkom. Okvare zaradi
neupoštevanja priloženih navodil, nepravilne uporabe, malomarnega ravnanja z izdelkom in
mehanske poškodbe so izvzete iz garancijskih pogojev. Garancija ne izključuje pravic potrošnika, ki izhajajo iz odgovornosti prodajalca za napake na blagu.
Vzdrževanje, nadomestne dele in priklopne aparate proizvajalec zagotavlja še 3 leta po
preteku garancije.
Servisiranje izvaja proizvajalec sam na sedežu firme CONRAD ELECTRONIC SE, KlausConrad-Strasse 1, Nemčija.
Pokvarjen izdelek pošljete na naslov: Conrad Electronic d.o.o. k.d., Ljubljanska cesta 66,
1290 Grosuplje, skupaj z izpolnjenim garancijskim listom.