SlideShare a Scribd company logo
Curs gratuitarduino lectia12-conexiunewifi-googledocs
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 website /
blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul
sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara
nici un fel de limitari.
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
WiFly Shield
Daca ai nevoie sa obtii informatii direct din Internet folosind Arduino, sau
sa ai un server web ruland pe Arduino si vrei sa-l accesezi tu din Internet, si
toate astea fara fir de retea, atunci WiFly Shield este ceea ce ai nevoie.
Functioneaza prin WIFI, se conecteaza la un router si iti ofera conexiune la
Internet pe Arduino. Daca nu iti este foarte clar cum functioneaza o retea de
calculatoare (termeni gen IP, DNS, MAC, DHCP iti suna ciudat), atunci iti
recomand sa citesti mai intai sectiunea in care se discuta despre shield-ul
Ethernet pentru Arduino, sectiune in care am prezentat si aceste concepte.
Libraria de care vei avea nevoie in codul de mai jos o gasesti in aceasta
pagina – http://www.robofun.ro/wifly_shield, descarc-o si instaleaz-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 "password"
#include "WiFly.h"
#include "Credentials.h"
Client client("google.com", 80);
void setup() {
Serial.begin(9600);
WiFly.begin();
if (!WiFly.join(SSID, PASSPHRASE)) {
Serial.println("Conectare la reteaua WIFI esuata.");
}
Serial.println("Conectare in progres...");
if (client.connect()) {
Serial.println("Conectare reusita !");
client.println("GET /search?q=arduino HTTP/1.0");
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
client.println();
} else {
Serial.println("Conectare esuata");
}
}
void loop() {
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;;)
;
}
}
Daca ai parcurs deja sectiunea despre Ethernet shield, vei vedea ca ceea
ce avem mai sus seamana foarte mult cu codul de acolo. Practic, se modifica
doar modul de conectare la retea. Sunt de remarcat cele doua constante de la
inceputul programului, care iti permit sa declari care este identificatorul tau de
retea WIFI si care este parola. Daca ai o retea fara parola, pune "" in loc de
parola si de id de retea.
Codul se conecteaza la serverul google.com si afiseaza in Serial Monitor
rezultatele cautarii pentru termenul "arduino" (tu vei vedea informatie in
format HTML, asa cum am explicat la sectiunea despre Ethernet Shield).
WiFly Shield – Server Web
//pune "" la ambele daca nu ai parola la WIFI
#define SSID "networkID"
#define PASSPHRASE "password"
#include "WiFly.h"
#include "Credentials.h"
Server server(80);
void setup() {
WiFly.begin();
if (!WiFly.join(SSID, PASSPHRASE)) {
Serial.println("Conectare la reteaua WIFI esuata.");
}
Serial.begin(9600);
Serial.print("IP: ");
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
Serial.println(WiFly.ip());
server.begin();
}
void loop() {
Client client = server.available();
if (client) {
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == 'n' && current_line_is_blank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
for (int i = 0; i < 6; i++) {
client.print("* pe portul analogic ");
client.print(i);
client.print(" s-a citit valoarea ");
client.print(analogRead(i));
client.println("<br />");
}
break;
}
if (c == 'n') {
current_line_is_blank = true;
} else if (c != 'r') {
current_line_is_blank = false;
}
}
}
delay(100);
client.stop();
}
}
Exemplul de mai sus creaza un server web care ruleaza pe placa Arduino
si la fiecare cerere din browser raspunde cu valorile de pe porturile analogice,
ca mai jos. IP-ul server-ului este alocat in mod dinamic de router, asa ca, pentru
a sti care este adresa pe care o folosesti in browser, iti recomand sa deschizi
Serial Monitor si sa vezi in debug IP-ul alocat placii.
Stocarea online a datelor culese de Arduino, folosind Google Docs
Google Docs reprezinta o solutie excelenta pentru a loga online date
culese cu Arduino. Temperatura, umiditatea sau presiunea atmosferica sunt
exemple foarte bune in acest sens. Trimiterea lor online intr-un document Excel
se bazeaza pe functionalitatea Forms, oferita de Google Docs. Ideea de
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
principiu este de a genera un request HTTP din Arduino, care request sa fie
perfect similar cu cel generat de pagina din form-ul Google. Astfel, Google este
"pacalit" sa creada ca datele trimise de Arduino sunt de fapt trimise de un form
creat cu Google Docs.
Pentru acest proiect ai nevoie un Arduino cu conectare la Internet. Ai de
ales intre Arduino Ethernet sau Arduino UNO + Ethernet Shield. Senzorii sunt la
alegerea ta, in functie de ce date vrei sa trimiti in Google Docs. Pentru
exemplul de mai jos, eu am ales un BMP085 (ca sa masor presiunea
atmosferica si temperatura), si un HIH-4030 pentru masurarea umiditatii.
Evident ca tu poti alege ce senzori doresti.
Mai departe, acceseaza http://docs.google.com si creaza un document tip
spreasheet ("CREATE", apoi "Spreadsheet"). Ar trebui sa vezi un document
similar unui document Excel. Din meniul "Tools", alege "Create a form". Form-ul
creat ar trebui sa aiba cate un camp de tip "Text" pentru fiecare senzor pe care
il vei trimite catre Google Docs. Spre exemplu, eu am creat un camp
"temperatura", un camp "umiditate" si un camp "presiune", toate de tip "Text".
Selecteaza apoi din meniul "Form (0)" intrarea "Go to live form". Vei
vedea formularul creat de Google Docs pentru culegerea datelor. Mai departe,
va trebui sa analizezi codul sursa al paginii (in functie de browser-ul pe care il
folosesti, acest lucru se face diferit – spre exemplu in Chrome trebuie sa dai
click dreapta si apoi sa selectezi "View page source"). In codul sursa al paginii
localizeaza sirul de caractere "formkey=". Vei gasi ceva de genul
"formkey=dE9MTmlMc3N1RVNfdVJIRkFMNDltaXc6MQ". Acest sir de caractere
reprezinta identificatorul unic al formularului tau, identificator pe care Arduino il
va utiliza ca sa trimita informatiile. Localizeaza si campurile in care introduci
informatia utila (va fi simplu, pentru ca vor fi prefixate de numele campurilor
pe care le-ai dat tu cand ai creat formularul – vezi si imaginea de mai jos).
Numele acestor campuri ar trebui sa fie ceva de genul "entry.0.single",
"entry.1.single", "entry.2.single" si tot asa pentru toate campurile care le-ai
declarat.
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
Mai departe, ca sa trimita datele catre Google, Arduino va trimite o cerere
HTTP catre serverul Google, care cerere va fi identica cu cea pe care o trimite
browser-ul atunci cand apesi pe butonul "Submit" din formular. Practic, serverul
Google va fi convins ca acele date vin din formularul 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 -
http://robofun.ro/blog/cum-sa-trimiti-loghezi-pe-google-docs-temperatura-
presiunea-atmosferica-si-umiditatea-direct-din-arduino . In cele ce urmeaza
vom analiza partile interesante din cod. Chiar la inceput ai o declaratie de
forma "char formkey[] = "dG9HWmNXWjNRdWhBWG5ITlpNeUVBU2c6MQ";"
Aici va trebui sa modifici cheia din cod cu cheia din documentul tau, pe care ai
obtinut-o mai sus. Mai departe, in functia "loop" vei gasi denumirile campurilor
din document, pe care le-ai identificat deja mai sus. Va trebui sa modifici
aceasta zona din cod pentru a trimite exact informatiile culese de tine. Spre
exemplu, in cazul meu codul este ca mai jos :
String data;
data+="";
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
data+="entry.2.single=";
data+=temperatura;
data+="&entry.3.single=";
data+=presiune;
data+="&entry.4.single=";
data+=umiditate;
data+="&submit=Submit";
Adaug in varianta data rand pe rand denumirea unui camp si valoarea
acestuia, citita de Arduino. Mai departe, codul trimite request-ul catre serverul
Google pentru a inregistra informatia 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.
Sau ne poti contacta direct prin email la contact@robofun.ro .
Iti multumim,
Echipa Robofun.RO
http://www.robofun.ro/forum

More Related Content

PDF
Curs gratuitarduino lectia8-comunicareethernet
PDF
Curs gratuitarduino lectia10-lcd-uri
PDF
Curs gratuitarduino lectia3-proiectesimple-1
PDF
Curs gratuitarduino lectia11-muzicacuarduino
PDF
Curs gratuitarduino lectia2-senzorianalogici
PDF
Curs gratuitarduino lectia1-arduinoblink
PDF
Curs gratuitarduino lectia5-accelerometre
PDF
Curs gratuitarduino lectia4-modalitati decomunicare
Curs gratuitarduino lectia8-comunicareethernet
Curs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia3-proiectesimple-1
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia2-senzorianalogici
Curs gratuitarduino lectia1-arduinoblink
Curs gratuitarduino lectia5-accelerometre
Curs gratuitarduino lectia4-modalitati decomunicare

What's hot (17)

PDF
Curs gratuitarduino lectia9-senzoriatmosferici
PDF
Motoare pascupasarduinoeasydriver
PDF
Arduino comunicatie i2c
PDF
Curs gratuitarduino lectia6-senzoriforta
PDF
Curs gratuitarduino lectia7-senzoridistanta
PDF
Arduino comparatorul intern
PDF
Conector bluetoothmatesilver arduino-pc
PDF
Curs gratuitarduino lectia13-mousesitastatura
PDF
Arduino yala electronicabazatapecodsecret
PPT
Aiesec University 2012-arduino
PDF
Arduino releemodio2
PDF
Arduino multiplexarea le-durilor
PDF
Curs gratuitarduino lectia15-seismografcuexcel
PDF
Arduino uno rfidid-12
PDF
Arduino matriceled8x8
PDF
Arduino rtc
PDF
Arduino toraspberrypi firmata
Curs gratuitarduino lectia9-senzoriatmosferici
Motoare pascupasarduinoeasydriver
Arduino comunicatie i2c
Curs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia7-senzoridistanta
Arduino comparatorul intern
Conector bluetoothmatesilver arduino-pc
Curs gratuitarduino lectia13-mousesitastatura
Arduino yala electronicabazatapecodsecret
Aiesec University 2012-arduino
Arduino releemodio2
Arduino multiplexarea le-durilor
Curs gratuitarduino lectia15-seismografcuexcel
Arduino uno rfidid-12
Arduino matriceled8x8
Arduino rtc
Arduino toraspberrypi firmata
Ad

Viewers also liked (16)

PDF
Arduino sht11
PDF
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
PDF
Raspberry pi timelapse
PDF
Arduino pid
PDF
Set prizecomandatedinarduino
PDF
Arduino gyro stabilizator
PDF
Raspberry pi firmata - arduino
PDF
Arduino wifi shield-drivermotoarel298
PDF
Programare in prolog_pentru_inteligenta_artificiala
PDF
Raspberry pi bmp085blueedition
PDF
Arduino flexsensorbrickbionicfinger
PDF
Cum instaleziapachesimysql peraspberrypi
PDF
Asamblare statie meteo
PDF
Raspberry pi lcd-shield20x4
PDF
Arduino indicatoare cp-usiram
PDF
Arduino yun arduino-wifi-ethernet-linux
Arduino sht11
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Raspberry pi timelapse
Arduino pid
Set prizecomandatedinarduino
Arduino gyro stabilizator
Raspberry pi firmata - arduino
Arduino wifi shield-drivermotoarel298
Programare in prolog_pentru_inteligenta_artificiala
Raspberry pi bmp085blueedition
Arduino flexsensorbrickbionicfinger
Cum instaleziapachesimysql peraspberrypi
Asamblare statie meteo
Raspberry pi lcd-shield20x4
Arduino indicatoare cp-usiram
Arduino yun arduino-wifi-ethernet-linux
Ad

Similar to Curs gratuitarduino lectia12-conexiunewifi-googledocs (20)

PDF
Arduino cereri httpgetpost
PPT
Programare Web - De la CGI la servere de aplicatii
PDF
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
PPT
Prezentare USO - Web Application Integration
PDF
HTML5? HTML5!
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
PDF
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
PDF
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
PDF
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
PPT
Programare Web - Cookie-uri si sesiuni
PPSX
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
PPT
Tice usb 1
PDF
3173119 aplicatii-de-retea
PDF
Flori x
PDF
HTML5 în XXX de minute
PDF
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
PDF
Cu codul în "nori"
PDF
Dezvoltarea aplicațiilor Web (supliment): Modelarea datelor în HTML: microfor...
Arduino cereri httpgetpost
Programare Web - De la CGI la servere de aplicatii
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Prezentare USO - Web Application Integration
HTML5? HTML5!
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
WADe 2014—2015 (supliment): Modelarea datelor în HTML: microformate & scheme ...
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
Programare Web - Cookie-uri si sesiuni
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
Tice usb 1
3173119 aplicatii-de-retea
Flori x
HTML5 în XXX de minute
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
Cu codul în "nori"
Dezvoltarea aplicațiilor Web (supliment): Modelarea datelor în HTML: microfor...

Curs gratuitarduino lectia12-conexiunewifi-googledocs

  • 2. 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 website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari. http://www.robofun.ro/forum
  • 3. http://www.robofun.ro Curs Gratuit Arduino si Robotica WiFly Shield Daca ai nevoie sa obtii informatii direct din Internet folosind Arduino, sau sa ai un server web ruland pe Arduino si vrei sa-l accesezi tu din Internet, si toate astea fara fir de retea, atunci WiFly Shield este ceea ce ai nevoie. Functioneaza prin WIFI, se conecteaza la un router si iti ofera conexiune la Internet pe Arduino. Daca nu iti este foarte clar cum functioneaza o retea de calculatoare (termeni gen IP, DNS, MAC, DHCP iti suna ciudat), atunci iti recomand sa citesti mai intai sectiunea in care se discuta despre shield-ul Ethernet pentru Arduino, sectiune in care am prezentat si aceste concepte. Libraria de care vei avea nevoie in codul de mai jos o gasesti in aceasta pagina – http://www.robofun.ro/wifly_shield, descarc-o si instaleaz-o in mediul tau Arduino inainte de a rula exemplul de mai jos. http://www.robofun.ro/forum
  • 4. 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 "password" #include "WiFly.h" #include "Credentials.h" Client client("google.com", 80); void setup() { Serial.begin(9600); WiFly.begin(); if (!WiFly.join(SSID, PASSPHRASE)) { Serial.println("Conectare la reteaua WIFI esuata."); } Serial.println("Conectare in progres..."); if (client.connect()) { Serial.println("Conectare reusita !"); client.println("GET /search?q=arduino HTTP/1.0"); http://www.robofun.ro/forum
  • 5. http://www.robofun.ro Curs Gratuit Arduino si Robotica client.println(); } else { Serial.println("Conectare esuata"); } } void loop() { if (client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); for(;;) ; } } Daca ai parcurs deja sectiunea despre Ethernet shield, vei vedea ca ceea ce avem mai sus seamana foarte mult cu codul de acolo. Practic, se modifica doar modul de conectare la retea. Sunt de remarcat cele doua constante de la inceputul programului, care iti permit sa declari care este identificatorul tau de retea WIFI si care este parola. Daca ai o retea fara parola, pune "" in loc de parola si de id de retea. Codul se conecteaza la serverul google.com si afiseaza in Serial Monitor rezultatele cautarii pentru termenul "arduino" (tu vei vedea informatie in format HTML, asa cum am explicat la sectiunea despre Ethernet Shield). WiFly Shield – Server Web //pune "" la ambele daca nu ai parola la WIFI #define SSID "networkID" #define PASSPHRASE "password" #include "WiFly.h" #include "Credentials.h" Server server(80); void setup() { WiFly.begin(); if (!WiFly.join(SSID, PASSPHRASE)) { Serial.println("Conectare la reteaua WIFI esuata."); } Serial.begin(9600); Serial.print("IP: "); http://www.robofun.ro/forum
  • 6. http://www.robofun.ro Curs Gratuit Arduino si Robotica Serial.println(WiFly.ip()); server.begin(); } void loop() { Client client = server.available(); if (client) { boolean current_line_is_blank = true; while (client.connected()) { if (client.available()) { char c = client.read(); if (c == 'n' && current_line_is_blank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); for (int i = 0; i < 6; i++) { client.print("* pe portul analogic "); client.print(i); client.print(" s-a citit valoarea "); client.print(analogRead(i)); client.println("<br />"); } break; } if (c == 'n') { current_line_is_blank = true; } else if (c != 'r') { current_line_is_blank = false; } } } delay(100); client.stop(); } } Exemplul de mai sus creaza un server web care ruleaza pe placa Arduino si la fiecare cerere din browser raspunde cu valorile de pe porturile analogice, ca mai jos. IP-ul server-ului este alocat in mod dinamic de router, asa ca, pentru a sti care este adresa pe care o folosesti in browser, iti recomand sa deschizi Serial Monitor si sa vezi in debug IP-ul alocat placii. Stocarea online a datelor culese de Arduino, folosind Google Docs Google Docs reprezinta o solutie excelenta pentru a loga online date culese cu Arduino. Temperatura, umiditatea sau presiunea atmosferica sunt exemple foarte bune in acest sens. Trimiterea lor online intr-un document Excel se bazeaza pe functionalitatea Forms, oferita de Google Docs. Ideea de http://www.robofun.ro/forum
  • 7. http://www.robofun.ro Curs Gratuit Arduino si Robotica principiu este de a genera un request HTTP din Arduino, care request sa fie perfect similar cu cel generat de pagina din form-ul Google. Astfel, Google este "pacalit" sa creada ca datele trimise de Arduino sunt de fapt trimise de un form creat cu Google Docs. Pentru acest proiect ai nevoie un Arduino cu conectare la Internet. Ai de ales intre Arduino Ethernet sau Arduino UNO + Ethernet Shield. Senzorii sunt la alegerea ta, in functie de ce date vrei sa trimiti in Google Docs. Pentru exemplul de mai jos, eu am ales un BMP085 (ca sa masor presiunea atmosferica si temperatura), si un HIH-4030 pentru masurarea umiditatii. Evident ca tu poti alege ce senzori doresti. Mai departe, acceseaza http://docs.google.com si creaza un document tip spreasheet ("CREATE", apoi "Spreadsheet"). Ar trebui sa vezi un document similar unui document Excel. Din meniul "Tools", alege "Create a form". Form-ul creat ar trebui sa aiba cate un camp de tip "Text" pentru fiecare senzor pe care il vei trimite catre Google Docs. Spre exemplu, eu am creat un camp "temperatura", un camp "umiditate" si un camp "presiune", toate de tip "Text". Selecteaza apoi din meniul "Form (0)" intrarea "Go to live form". Vei vedea formularul creat de Google Docs pentru culegerea datelor. Mai departe, va trebui sa analizezi codul sursa al paginii (in functie de browser-ul pe care il folosesti, acest lucru se face diferit – spre exemplu in Chrome trebuie sa dai click dreapta si apoi sa selectezi "View page source"). In codul sursa al paginii localizeaza sirul de caractere "formkey=". Vei gasi ceva de genul "formkey=dE9MTmlMc3N1RVNfdVJIRkFMNDltaXc6MQ". Acest sir de caractere reprezinta identificatorul unic al formularului tau, identificator pe care Arduino il va utiliza ca sa trimita informatiile. Localizeaza si campurile in care introduci informatia utila (va fi simplu, pentru ca vor fi prefixate de numele campurilor pe care le-ai dat tu cand ai creat formularul – vezi si imaginea de mai jos). Numele acestor campuri ar trebui sa fie ceva de genul "entry.0.single", "entry.1.single", "entry.2.single" si tot asa pentru toate campurile care le-ai declarat. http://www.robofun.ro/forum
  • 8. http://www.robofun.ro Curs Gratuit Arduino si Robotica Mai departe, ca sa trimita datele catre Google, Arduino va trimite o cerere HTTP catre serverul Google, care cerere va fi identica cu cea pe care o trimite browser-ul atunci cand apesi pe butonul "Submit" din formular. Practic, serverul Google va fi convins ca acele date vin din formularul obisnuit si nu din Arduino. http://www.robofun.ro/forum
  • 9. http://www.robofun.ro Curs Gratuit Arduino si Robotica http://www.robofun.ro/forum
  • 10. http://www.robofun.ro Curs Gratuit Arduino si Robotica Codul sursa integral pentru Arduino il gasesti aici - http://robofun.ro/blog/cum-sa-trimiti-loghezi-pe-google-docs-temperatura- presiunea-atmosferica-si-umiditatea-direct-din-arduino . In cele ce urmeaza vom analiza partile interesante din cod. Chiar la inceput ai o declaratie de forma "char formkey[] = "dG9HWmNXWjNRdWhBWG5ITlpNeUVBU2c6MQ";" Aici va trebui sa modifici cheia din cod cu cheia din documentul tau, pe care ai obtinut-o mai sus. Mai departe, in functia "loop" vei gasi denumirile campurilor din document, pe care le-ai identificat deja mai sus. Va trebui sa modifici aceasta zona din cod pentru a trimite exact informatiile culese de tine. Spre exemplu, in cazul meu codul este ca mai jos : String data; data+=""; http://www.robofun.ro/forum
  • 11. http://www.robofun.ro Curs Gratuit Arduino si Robotica data+="entry.2.single="; data+=temperatura; data+="&entry.3.single="; data+=presiune; data+="&entry.4.single="; data+=umiditate; data+="&submit=Submit"; Adaug in varianta data rand pe rand denumirea unui camp si valoarea acestuia, citita de Arduino. Mai departe, codul trimite request-ul catre serverul Google pentru a inregistra informatia in document. http://www.robofun.ro/forum
  • 12. 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. Sau ne poti contacta direct prin email la contact@robofun.ro . Iti multumim, Echipa Robofun.RO http://www.robofun.ro/forum