tech-support

-20%

*/ ?>

Uvod

Stigao Vam je Croduino NOVA i vrijeme je za početak rada? Ne znate kako početi te se pitate što sve ova pločica može učiniti? Ovo je pravi tutorijal za vas! Croduino NOVA pločica je drugačija verzija Croduino pločice koja omogućuje povezivanje fizičkog svijeta s internetom. Ona nam omogućuje potpuno nove mogućnosti koje do sada nisu bile moguće. U prošlom tutorijalu opisali smo rad Croduino NOVA pločice kao client. Sada ćemo objasniti rad Croduino NOVE kao server. Konfiguracijom Croduino NOVA pločice za rad kao server omogućuje nam povezivanje pametnog telefona, računala i ostalih uređaja s Croduino NOVA pločicom. Uz to moguće je pomoću spojenih uređaja kontrolirati samu pločicu. Zamislite samo mogućnosti koje je moguće napraviti, od paljenja/gašenja svijetla pomoću pametnog telefona, kontrole grijanja ili pomicanje zastora preko WiFi-ja do potpuno automatizirane kuće u kojoj je moguće sve kontrolirati u bilo kojem trenutku na bilo kojem mjestu. Mašta je samo granica.  
 

Primjer: Osvjetljavanje LED diode preko WiFi-ja

Kako je kroz primjer najlakše objasniti kako nešto radi, u nastavku će se na primjeru prikazati kako Croduino NOVA pločica radi kao server. Kontrolirat ćemo osvjetljavanje LED diode spajanjem pametnog telefona ili računala na određenu IP adresu. Na toj adresi prikazat će se trenutno stanje LED diode tj. je li ona upaljena ili ugašena te će korisnik imati opciju promijeniti njeno stanje.

Spajanje s Croduino NOVA pločicom

Za izradu samog projekta potrebna je samo spojiti jednu LED diodu s Croduino Nova pločicom. Izlazni napon pinova na Croduino NOVA pločici je 3.3V te zbog toga ne treba dodavati otpornik u seriju s LED diodom. Način spajanja LED diode je isti kao i sa bilo kojom drugom Croduino pločicom. Vjerujemo da već imate iskustva sa spajanjem LED dioda s Croduinom. Za sve one kojima je potreban mali podsjetnik način spajanja je prikazan na slici ispod.  

Arduino kod

Prije nego što krenemo dalje, ako do sada već niste napravili, potrebno je konfigurirati Arduino programsko okruženje (Arduino IDE) za rad s Croduino NOVA pločicom kako bi pločica ispravno radila (više na linku). U nastavku će se objasniti novi dijelovi programskog koda koji su potrebni za ispravno konfiguriranje i rad s WiFi mrežom. Prvo je potrebno kreirati „WiFiServer“ objekt naziva „server“ kojim se stvara server na Croduino NOVA pločici. Parametar unutar zagrada je broj porta na kojem je moguće komunicirati sa serverom.
WiFiServer server(80); 
Zatim je potrebno uspostaviti vezu s WiFi mrežom. To je moguće činiti sa WiFi.begin klasom unutar koje unosimo ssid i lozinku WiFi mreže.
WiFi.begin(ssid, password);
Program može nastaviti s radom tek kada se uspješno spoji na definiranu WiFi mrežu. Stvaramo while petlju unutar Setup() funkcije u kojoj provjeravamo status konekcije pomoću funkcije WiFi.status(). While petlja se ponavlja sve dok WiFi.status() funkcija ne vrati parametar „WL_CONNECTED“. Za ostale parametre koje funkcija WiFi.status() može vratiti pogledajte ovdje. Sa server.begin() funkcijom pokrećemo rad servera.
 while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

server.begin();
Nakon što je Croduino NOVA uspješno spojena na WiFi mrežu, program kreće u loop() petlju. U njoj stvaramo „WiFiClient“ objekt i provjeravamo je li neki klijent (uređaj) spojen na Croduino NOVA pločicu. Ako nije, program se vrača na početak loop() funkcije.
WiFiClient client = server.available();
  if (!client) {
    return;
  }
Kada se uređaj spoji s Croduino NOVA pločicom, program čeka klijenta da pošalje neke podatke. Nakon što su podaci poslani, program ih prvo iščitava te zatim interpretira poslani zahtjev „/LED=ON“ ili „/LED=OFF“ i postavlja LED diodu na HIGH ili LOW.
// Čekaj dok klijent ne pošalje neke podatke
  while(!client.available()){
    delay(1);
  }
 
  // Pročitaj prvu liniju zahjeva
  String request = client.readStringUntil('\r');
  client.flush();
 
  // Interpretiraj zahtjev
 // Postavi stanje LED diode po zahtjevu
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
Zatim vraćamo odgovor klijentu (uređaju) prema odgovarajućem HTML kodu. Za to koristimo client.print() funkciju u koju unosimo točan redoslijed HTML koda kako bi on bio ispravan. U ovom djelu moguće je promijeniti dijelove HTML koda i time promijeniti izgled web stranice.
// Vrati odgovor klijentu
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");
  client.println("");
  client.println("");
 
  client.print("LED dioda je sada ");
 
  if(value == HIGH) {
    client.print("upaljena");
  } else {
    client.print("ugasena");
  }
  client.println("

");
  client.println("");
  client.println("
");  
  client.println("");
  To su sve klase i funkcije koje su potrebne za razumjevanje rada programskog koda u ovom tutorijalu. Više informacija o ESP8266WiFi.h library-u i ostalim klasama možete pronaći ovdje. Kompletan programski kod se nalazi ispod.  
#include <ESP8266WiFi.h>
 
const char* ssid = "naziv vase wifi mreze"; //Unesite naziv vaše wifi mreže
const char* password = "lozinka vase wifi mreze"; //Unesite vašu lozinku
 
int ledPin = 2; //Pin na kojem se LED dioda nalazi

WiFiServer server(80); 
 
void setup() {
 Serial.begin(115200); //POZOR! promjeniti u Serial monitoru baud rate na 115200 baud. 
 //U suprotnom će se dobiveni znakovi krivo interpretirati te se neće moći razumjeti.
 delay(10);
 
 pinMode(ledPin, OUTPUT); //Definiranje pina LED diode kao izlaz
 digitalWrite(ledPin, LOW); //Postavljanje pina LED diode na LOW 
 
 //Spajanje na WiFi mrežu
 Serial.println();
 Serial.println();
 Serial.print("Spajanje na ");
 Serial.println(ssid);
 
 WiFi.begin(ssid, password);
 
 while (WiFi.status() != WL_CONNECTED) { //Ispisivanje "." znaka sve dok se ne spoji na definiranu WiFi mrežu
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi spojen");
 
 //Pokreni server
 server.begin();
 Serial.println("Server pokrenut");
 
 //Ispiši IP adresu
 Serial.print("Kopiraj ovu adresu u preglednik: ");
 Serial.print("http://");
 Serial.print(WiFi.localIP());
 Serial.println("/");
 
}
 
void loop() {
 // Provjeri je li klijent spojen
 WiFiClient client = server.available();
 if (!client) {
 return;
 }
 
 // Čekaj dok klijent ne pošalje neke podatke
 Serial.println("Novi klijent");
 while(!client.available()){
 delay(1);
 }
 
 // Pročitaj prvu liniju zahjeva
 String request = client.readStringUntil('\r');
 Serial.println(request);
 client.flush();
 
 // Interpretiraj zahtjev
 // Postavi stanje LED diode po zahtjevu
 int value = LOW;
 if (request.indexOf("/LED=ON") != -1) {
 digitalWrite(ledPin, HIGH);
 value = HIGH;
 }
 if (request.indexOf("/LED=OFF") != -1) {
 digitalWrite(ledPin, LOW);
 value = LOW;
 }
 
 // Vrati odgovor klijentu
 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println("");
 client.println("<!DOCTYPE HTML>");
 client.println("<html>");
 
 client.print("LED dioda je sada ");
 
 if(value == HIGH) {
 client.print("upaljena");
 } else {
 client.print("ugasena");
 }
 client.println("<br><br>");
 client.println("<a href=\"/LED=ON\"\"><button>Upali LED diodu</button></a>");
 client.println("<a href=\"/LED=OFF\"\"><button>Ugasi LED diodu</button></a><br />"); 
 client.println("</html>");
 
 delay(1);
 Serial.println("Klijent je iskljucen");
 Serial.println("");
}

Rezultat

Nakon što ste ispravno spojili LED diodu s Croduino NOVA pločicom i uspješno prebacili kod u pločicu, kliknite na Serial Monitor u Arduino IDE programu.   POZOR, potrebno je promijeniti u Serial Monitoru postavke baud rate-a na 115200 baud. U suprotnom će se dobiveni znakovi krivo interpretirati te se neće moći razumjeti.  
  Prilikom pokretanja Croduino NOVA pločice, ona će se pokušati spojiti na WiFi mrežu koju ste naveli u kodu. U Serial Monitoru će vam se ispisati poruka da se pločica uspješno spojila. Nakon što se pločica spoji na WiFi mrežu, ispisat će se IP adresa koju je potrebno upisati u web pregledniku (na pametnom telefonu, računalu, laptopu, itd.).   Nakon što upišete IP adresu u preglednik, pojaviti će vam se web stranica kao na slici dolje. Pritiskom miša na neku od dvije tipke promijenit će se status LED diode i u isto vrijeme će se promijeniti tekst u web pregledniku. To je to, uspjeli ste!   Potrebno je još napomenuti da u ovom tutorijalu s Croduino NOVA pločicom se mogu spojiti samo uređaji koji su spojeni na istu (lokalnu) WiFi mrežu. To znači da nije moguće spojiti uređaje s Croduino NOVA pločicom koji su spojeni na različitoj WiFi ili podatkovnoj mreži.

Što dalje?

Došli smo do kraja ovog tutorijala no ovdje produktivnost ne prestaje. Moguće je spojiti bilo koji ulaz/izlaz (modul ili senzor) na Croduino NOVA pločicu. Isto tako moguće je programirati Croduino NOVA pločicu na razne načine da kontrolira komponente spojene na nju. Vjerojatno već sami imate neke ideje za projekte koje želite izraditi. Ekipa iz e-radionice vas podržava u izradi bilo kojeg „ludog“ projekta kojeg ste zamislili :)

Stigao je Croduino miniNOVA, ali i upute za njegovo programiranje.

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu