Sunteți pe pagina 1din 12

http://www.robofun.

ro

Curs Gratuit Arduino si Robotica

Textul si imaginile din acest document sunt licentiate


Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Codul sursa din acest document este licentiat


Public-Domain Esti liber sa distribui acest document prin orice mijloace consideri (email publicare pe !ebsite " blog printare sau orice alt mijloc# atat timp cat nu aduci nici un $el de modi$icari acestuia% Codul sursa din acest document poate $i utili&at in orice $el de scop de natura comerciala sau nu $ara nici un $el de limitari%

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

WiFly Shield
Daca ai nevoie sa obtii in$ormatii direct din 'nternet $olosind Arduino sau sa ai un server !eb ruland pe Arduino si vrei sa-l accese&i tu din 'nternet si toate astea $ara $ir de retea atunci (i)l* +,ield este ceea ce ai nevoie% )unctionea&a prin (')' se conectea&a la un router si iti o$era conexiune la 'nternet pe Arduino% Daca nu iti este $oarte clar cum $unctionea&a o retea de calculatoare (termeni gen 'P DN+ -AC D.CP iti suna ciudat# atunci iti recomand sa citesti mai intai sectiunea in care se discuta despre s,ield-ul Et,ernet pentru Arduino sectiune in care am pre&entat si aceste concepte% /ibraria de care vei avea nevoie in codul de mai jos o gasesti in aceasta pagina 0 ,ttp1""!!!%robo$un%ro"!i$l*2s,ield descarc-o si instalea&-o in mediul tau Arduino inainte de a rula exemplul de mai jos%

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

WiFly Shield Client Web


//pune "" la ambele daca nu ai parola la WIFI #define SSID "networkID" #define PASSPHRASE "pa word" #include "WiFl!"#" #include "$redential "#" $lient client%"&oo&le"com"' ()*+ ,oid etup%* -

Serial"be&in%./))*+ WiFl!"be&in%*+
if (!WiFly.join(SSID, PASSPHRASE)) { Serial.println("Cone tare la retea!a WIFI e"!ata.")# $

Serial"println%"$onectare in pro&re """"*+ if %client"connect%** Serial"println%"$onectare reu ita 0"*+ client"println%"1E2 / earc#345arduino H22P/6")"*+

http://www.robofun.ro/forum

http://www.robofun.ro
client"println%*+ 7 el e Serial"println%"$onectare e uata"*+ 7 7 ,oid loop%* if %client"a,ailable%** c#ar c 5 client"read%*+ Serial"print%c*+ 7 if %0client"connected%** Serial"println%*+ Serial"println%"di connectin&""*+ client" top%*+ for%++* + 7

Curs Gratuit Arduino si Robotica

Daca ai parcurs deja sectiunea despre Et,ernet s,ield vei vedea ca ceea ce avem mai sus seamana $oarte mult cu codul de acolo% Practic se modi$ica doar modul de conectare la retea% +unt de remarcat cele doua constante de la inceputul programului care iti permit sa declari care este identi$icatorul tau de retea (')' si care este parola% Daca ai o retea $ara parola pune 33 in loc de parola si de id de retea% Codul se conectea&a la serverul google%com si a$isea&a in +erial -onitor re&ultatele cautarii pentru termenul 3arduino3 (tu vei vedea in$ormatie in $ormat .T-/ asa cum am explicat la sectiunea despre Et,ernet +,ield#%

WiFly Shield Server Web


//pune "" la ambele daca nu ai parola la WIFI #define SSID "networkID" #define PASSPHRASE "pa word" #include "WiFl!"#" #include "$redential "#" Ser,er er,er%()*+

,oid etup%* WiFl!"be&in%*+


if (!WiFly.join(SSID, PASSPHRASE)) { Serial.println("Cone tare la retea!a WIFI e"!ata.")# $

Serial"be&in%./))*+ Serial"print%"IP8 "*+

http://www.robofun.ro/forum

http://www.robofun.ro
Serial"println%WiFl!"ip%**+ er,er"be&in%*+ 7

Curs Gratuit Arduino si Robotica

,oid loop%* $lient client 5 er,er"a,ailable%*+ if %client* boolean current9line9i 9blank 5 true+ w#ile %client"connected%** if %client"a,ailable%** c#ar c 5 client"read%*+ if %c 55 :;n: << current9line9i 9blank* // end a tandard #ttp re pon e #eader client"println%"H22P/6"6 =)) >?"*+ client"println%"$ontent@2!pe8 teAt/#tml"*+ client"println%*+ for %int i 5 )+ i B /+ iCC* lient.print("D pe portul analo&ic ")#

client"print%i*+

lient.print("

7 7

7 7 dela!%6))*+ client" top%*+

7 if %c 55 :;n:* current9line9i 9blank 5 true+ 7 el e if %c 05 :;r:* current9line9i 9blank 5 fal e+ 7

7 break+

client"print%analo&Read%i**+ client"println%"Bbr /E"*+

@a citit ,aloarea ")#

Exemplul de mai sus crea&a un server !eb care rulea&a pe placa Arduino si la $iecare cerere din bro!ser raspunde cu valorile de pe porturile analogice ca mai jos% 'P-ul server-ului este alocat in mod dinamic de router asa ca pentru a sti care este adresa pe care o $olosesti in bro!ser iti recomand sa desc,i&i +erial -onitor si sa ve&i in debug 'P-ul alocat placii%

Stocarea online a datelor culese de Arduino, folosind Google Docs


4oogle Docs repre&inta o solutie excelenta pentru a loga online date culese cu Arduino% Temperatura umiditatea sau presiunea atmos$erica sunt exemple $oarte bune in acest sens% Trimiterea lor online intr-un document Excel se ba&ea&a pe $unctionalitatea )orms o$erita de 4oogle Docs% 'deea de http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

principiu este de a genera un re5uest .TTP din Arduino care re5uest sa $ie per$ect similar cu cel generat de pagina din $orm-ul 4oogle% Ast$el 4oogle este 3pacalit3 sa creada ca datele trimise de Arduino sunt de $apt trimise de un $orm creat cu 4oogle Docs% Pentru acest proiect ai nevoie un Arduino cu conectare la 'nternet% Ai de ales intre Arduino Et,ernet sau Arduino 6N7 8 Et,ernet +,ield% +en&orii sunt la alegerea ta in $unctie de ce date vrei sa trimiti in 4oogle Docs% Pentru exemplul de mai jos eu am ales un B-P9:; (ca sa masor presiunea atmos$erica si temperatura# si un .'.-<9=9 pentru masurarea umiditatii% Evident ca tu poti alege ce sen&ori doresti% -ai departe accesea&a ,ttp1""docs%google%com si crea&a un document tip spreas,eet (3C>EATE3 apoi 3+preads,eet3#% Ar trebui sa ve&i un document similar unui document Excel% Din meniul 3Tools3 alege 3Create a $orm3% )orm-ul creat ar trebui sa aiba cate un camp de tip 3Text3 pentru $iecare sen&or pe care il vei trimite catre 4oogle Docs% +pre exemplu eu am creat un camp 3temperatura3 un camp 3umiditate3 si un camp 3presiune3 toate de tip 3Text3% +electea&a apoi din meniul 3)orm (9#3 intrarea 34o to live $orm3% ?ei vedea $ormularul creat de 4oogle Docs pentru culegerea datelor% -ai departe va trebui sa anali&e&i codul sursa al paginii (in $unctie de bro!ser-ul pe care il $olosesti acest lucru se $ace di$erit 0 spre exemplu in C,rome trebuie sa dai clic@ dreapta si apoi sa selecte&i 3?ie! page source3#% 'n codul sursa al paginii locali&ea&a sirul de caractere 3$orm@e*A3% ?ei gasi ceva de genul 3formkey=dE9MTmlMc3N1RVNfdVJIRkFMNDltaXc6MQ3% Acest sir de caractere repre&inta identi$icatorul unic al $ormularului tau identi$icator pe care Arduino il va utili&a ca sa trimita in$ormatiile% /ocali&ea&a si campurile in care introduci in$ormatia utila (va $i simplu pentru ca vor $i pre$ixate de numele campurilor pe care le-ai dat tu cand ai creat $ormularul 0 ve&i si imaginea de mai jos#% Numele acestor campuri ar trebui sa $ie ceva de genul 3 entry. .!"n#le3 3entry.1.!"n#le3 3entry.$.!"n#le3 si tot asa pentru toate campurile care le-ai declarat%

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

-ai departe ca sa trimita datele catre 4oogle Arduino va trimite o cerere .TTP catre serverul 4oogle care cerere va $i identica cu cea pe care o trimite bro!ser-ul atunci cand apesi pe butonul 3+ubmit3 din $ormular% Practic serverul 4oogle va $i convins ca acele date vin din $ormularul obisnuit si nu din Arduino%

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

Codul sursa integral pentru Arduino il gasesti aici ,ttp1""robo$un%ro"blog"cum-sa-trimiti-log,e&i-pe-google-docs-temperaturapresiunea-atmos$erica-si-umiditatea-direct-din-arduino % 'n cele ce urmea&a vom anali&a partile interesante din cod% C,iar la inceput ai o declaratie de $orma 3c%ar & formkey'( & = & )d*9+,mNX,-NRd,%.,*/ITl0Ne1V.1$c6MQ)2 3 Aici va trebui sa modi$ici c,eia din cod cu c,eia din documentul tau pe care ai obtinut-o mai sus% -ai departe in $unctia 3loo0)&vei gasi denumirile campurilor din document pe care le-ai identi$icat deja mai sus% ?a trebui sa modi$ici aceasta &ona din cod pentru a trimite exact in$ormatiile culese de tine% +pre exemplu in ca&ul meu codul este ca mai jos 1
Strin& data+ dataC5""+

http://www.robofun.ro/forum

http://www.robofun.ro
dataC5"entr!"=" in&le5"+ dataC5temperatura+ dataC5"<entr!"F" in&le5"+ dataC5pre iune+ dataC5"<entr!"G" in&le5"+ dataC5umiditate+ dataC5"< ubmit5Submit"+

Curs Gratuit Arduino si Robotica

Adaug in varianta data rand pe rand denumirea unui camp si valoarea acestuia citita de Arduino% -ai departe codul trimite re5uest-ul catre serverul 4oogle pentru a inregistra in$ormatia in document%

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

Aceasta a fost lectia 12. In final, as vrea sa te rog sa ne oferi feedback asupra acestei lectii, pentru a ne permite sa le facem mai bune pe urmatoarele. Este vorba despre un sondaj cu 4 intrebari (oricare este optionala), pe care il poti accesa dand click aici. au ne poti contacta direct prin email la contact!robofun.ro . Iti multumim, Ec"ipa #obofun.#$

http://www.robofun.ro/forum

S-ar putea să vă placă și