DASDUINO CONNECT KAO CLIENT (A.K.A. KAKO OTVORITI WEB STRANICU S DASDUINO CONNECT?)
KRATAK UVOD
Prva stvar koju ćete vjerojatno napraviti s Vašim brand-new Dasduino Connect je otvoriti web stranicu. Vjerojatno da provjerite jel se stvarno ta mala pločica može povezati na internet putem WiFija i stvarno funkcionira. Pa ćete otvoriti nekakvu web stranicu. Ili ćete htjeti poslati podatke u obliku URL-a na nekakvu bazu(tipa data.sparkfun.com ili dweet.io). U ovom mini-projektu ćemo napraviti upravo to, otvoriti stranicu identično kako bismo to napravili u browseru. Samo što će ovdje Dasduino Connect oponašati browser i davati nam rezultat u Serial Monitoru. Sve ovo znači da je pločica client. Ono što drugo može biti je server, a to bi značilo da se na nju povezujemo putem drugih uređaja, tj. da ona pruža usluge drugim uređajima.
ARDUINO KOD
Kroz popis svega što nam treba za projekt nećemo prolaziti, jer se radi o Dasduino Connect i kompjuteru s Arduino IDE instaliranim i ubačenim ESP8266 board-sima. Tj., da ste u mogućnosti programirati Dasduino Connect.
Jej, krenimo! Ovako izgleda naš Arduino kod. Kopirajte ga u Arduino IDE, odaberite ispravne opcije za Dasduino Connect(Tools->Board->Generic ESP8266 Board, Tools->Flash size->4M(1M SPIFFS)-, Tools->Reset Method->nodemcu, Tools->Board->*Vaš Serial port za Dasduino Connect*). Stisnite upload i gledajte plavu i crvenu LEDicu kako bljeskaju 🙂
#include "ESP8266WiFi.h"
const
char
* ssid =
"your-ssid"
;
// naziv Vaše WiFi mreže
const
char
* password =
"your-password"
;
// lozinka Vaše WiFi mrežu
const
char
* host =
"google.com"
;
// stranica koju želimo otvoriti. Ovdje napisite samo domenu, bez path-a
void
setup
() {
Serial.begin(115200);
// započinjemo serijsku komunikaciju
delay
(10);
WiFi.begin(ssid, password);
// za početak se povezujemo na WiFi mrežu
while
(WiFi.status() != WL_CONNECTED) {
// sve dok se NOVA ne poveže na WiFi mrežu
delay
(500);
// ispisujemo točkice u Serial monitoru
Serial.print(
"."
);
// čisto zbog nas, da znamo što se događa
}
Serial.println(
"Povezani smo na WiFi! IP adresa je: "
);
Serial.println(WiFi.localIP());
// ispisuje lokalnu WiFi adresu NOVE
Serial.print(
"Sada se povezujem na "
);
Serial.println(host);
// URL stranice na koju se povezujemo
WiFiClient client;
// kreiramo objekt klase WiFiClient za TCP konekciju
if
(!client.connect(host, 80))
// 80 je port na kojega se povezujemo
// HTTP port, gotovo uvijek ćete koristiti 80
{
Serial.println(
"Ne mogu se spojiti na stranicu.."
);
// ako je spajanje neuspješno
return
;
// završi s izvođenjem programa
}
String
url =
"/"
;
// budući da smo sada samo povezani na server(stranicu),
// trebamo još otvoriti nešto s nje (path)
// želimo početnu google stranicu, pa neka bude samo /
Serial.print(
"Povezani smo na stranicu. Sada cemo otvoriti URL: "
);
Serial.println(url);
// Ovo salje zahtjev(GET request) stranici. Istu stvar radi browser u pozadini
client.print(
String
(
"GET "
) + url +
" HTTP/1.1\r\n"
+
"Host: "
+ host +
"\r\n"
+
"Connection: close\r\n\r\n"
);
delay
(10);
// Čitamo odgovor servera na naš zahtjev te taj isti odgovor printamo u Serial monitor
while
(client.available()){
String
linija = client.readStringUntil(
'\r'
);
// printa liniju po liniju
Serial.print(linija);
}
Serial.println(
"Gotovo. Prekidamo konekciju."
);
}
void
loop
() {
// u loop-u ne radimo ništa, dosta je jednom učitati stranicu
}
Sve što preostaje je pogledati rezultat našeg očitavanja u Serial monitoru. Na početku imamo odgovor od servera, sličan obliku u kojemu smo mi poslali naš GET zahtjev. Nakon toga dobivamo čisti HTML kod stranice koje smo htjeli otvoriti koji započinje s . Ovisno o stranici koju otvaramo, naravno, dobit ćemo HTML kod za svaku od njih. Ako šaljemo nekakve informacije ne neki server(tipa data.sparkfun.com), dobit ćemo odgovor našem zahtjeva, koji će obično sadržavati informacije kao što su: jel zahtjev ispravan, vrijeme primanja zahtjeva, jedinstveni kod zapisa u bazi itd. To izgleda nekako ovako:
Čini se da na google.com/ postoji redirect na http://www.google.hr/?gfe_rd=cr&ei=H521V4q4NKns8wfxs4rgBw, u mom slučaju. Vi ćete dobiti malo drukčiji gfe_rd. Imajte na umu da na ovaj način ćete moći ovoriti stranice koje rade na https-u, tj. koriste SSL certifikat(kao npr. e-radionica.com).
TO JE TO
Ozbiljno. Povezali smo se na web stranicu i dobiti kod. Ili smo nešto poslali. Naš Dasduino Connect uistinu je bio client na internetu.
ŠTO NAPRAVITI KADA NE RADI?
Može biti da ste ukucali krivi SSID ili lozinku za Vašu WiFi mrežu. To će izgledati nekako ovako(so fix it!):
Ako se probate spojiti na web stranicu koja radi preko HTTPS protokola, tj. ima SSL certifikat, nećete dobiti odgovor. U ovome trenu ne pokrivamo otvaranje stranica na HTTPS-u koristeći Dasduino Connect.
ŠTO DALJE?
– Dasduino Connect kao server
– Pošaljite informacije na bazu na internetu i očitajte ih s udaljene lokacije
Korišteni proizvodi
No products found