DASDUINO CONNECT KAO CLIENT (A.K.A. KAKO OTVORITI WEB STRANICU S DASDUINO CONNECT?)

Dasduino CONNECTPLUS s muškim headerima (ESP32)-Dasduino & Arduino

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