Ekipa e-radionice bit će na kolektivnom godišnjem odmoru od srijede 16.8. do utorka 22.8. Sve narudžbe napravljene u tome razdoblju bit će poslane u srijedu, 23.8. Za sva pitanja nam se možete javiti na +385977447744.

Predstavljanje: Croduino NOVA

Uvod

Za razliku od klasičnih pločica na kojima je mikrokontroler već dobro poznati Atmel Atmega328, kao što su recimo Croduino Basic, Basic2 i Pico, vrijeme je za nešto novo. Istina, tu je Croduino Damba, mala pločica s Amel Attiny procesorom, ali praktički to je Atmega328 slabijih mogućnosti, a Damba je inovativna u smislu da se može koristiti kao wearable zbog baterije.
 
Trebamo nešto novo. Nešto *drukčije*. Kako zvuči mikrokontroler koji se spaja na internet? I to ne putem Ethernet kabla, nego preko WiFija? Vrlo interesantno, zar ne? Vrijeme je za Croduino NOVA, mikrokontrolersku pločicu naprednih specifikacija s mogućnošću spajanja na WiFi mrežu. Povezivanje fizičkog svijeta na internet nikada nije bilo lakše!
 

NOVA_BLOG2

Što je Croduino NOVA?

Croduino NOVA je, dakle, mikrokontrolerska pločica s mogućnošću spajanja na WiFi mrežu, a samim time i na internet. Njegova baza je chip ESP8266, već dobro poznat u makers krugovima. ESP8266 je SoC(System on Chip), mi ćemo reći mikrokontroler, proizvođača Espressif. Ekipa iz navedene kompanije je u jedan mali chip zgurala kompletan mikrokontroler(vrlo impozantnih karakteristika), sposobnost konekcije na WiFi mrežu te kompletan TCP/IP stack koji podržava DNS(ovo nam treba za povezivanje i korištenje internetom). Što znači, moćan mikrokontroler s WiFijem.

NOVA1

Koliko je sposoban taj ESP8266? Pa, ako uspoređujemo s Atmegom328, ESP bi ga razbio. Oblik ESP-a kojega NOVA koristi je ESP-12/ESP-12-E te su njegove specifikacije sljedeće:
• 80MHz frekvencija signala takta (uspoređujući s 16MHz na Atmega328). Da, ESP8266 radi PET puta brže nego Atmga328! To znači da je u jednoj sekundi NOVA sposobna obraditi 5 puta više operacija nego na Basicu2, Basicu ili Pico-u.
• 1020kB (oko 1MB) flash memorije (uspoređujući s 30.5kB na Atmega328). Od toga oko 194kB odlazi na bootloader, pa korisniku ostaje 826kB za njegov program. Sa 27 puta više flash memorije nego na Basicu2, ovo znači da vjerojatno nikada nećete napisati ovako veliki kod da biste zauzeli svu flash memoriju.
• 82kB RAM memorije(uspoređujući s 2kB na Atmega328). Bootloader koristi dio RAM memorije pa korisniku ostaje 49kB za njegove varijable. To je 24,5 više puta nego na Atmegi328 pa ćete moći raditi sa puno više varijabli i kompleksnijim podacima.
esp12

Nova se s računalom povezuje putem USB-a, a proces programiranja je identičan svim Croduino pločicama. Također odgovara eksperimentalnoj pločici, pa je prototipiranje još jednostavnije.
nova USB

Zašto je NOVA baš tako zanimljiva i što mogu s njom?(IoT)

Zato što je to mikrokontroler koji se jednostavno povezuje na internet. Okej, a zašto je zanimljivo povezat se na internet s mikrokontrolerom? Jer nam omogućuje IoT ili Internet of Things(hrvatski wiki). IoT je pojam koji označava fizičke, opipljive elektroničke naprave koje su povezane na internet. IoT je vrlo popularan, a bit će sve popularniji. Danas je sve više stvari povezano na internet, kao što su naprimjer: Vaš sat(Pebble, Apple Watch, Moto360), termostat(Nest), auto(Tesla), a da ne pričamo o onim banalnim primjerima kao što su pelene za bebe koje javljaju kada više nisu čiste. Veliki su planovi za IoT pa u budućnosti možemo očekivati npr. IoT gradove(koji imaju hrpu senzora diljem grada i omogućuju pravovremene reakcije; kada je požar automatski dolaze vatrogasci, kada je gužba na određenoj cesti auti su automatski preusmjereni na drugu cestu, osiguranje velike sigurnosti, pa čak i do toga da točno znaju kada trebaju doći odvesti smeće). Zapravo, možemo očekivati, da će gotovo sve što koristimo biti povezano na internet na neki način.
 
Ono što NOVA omogućava je da od biločega napravite IoT uređaj. Evo par primjera projekata:
• napravite si malu lampu koja se povezuje na neki internetski servis za vremensku prognozu te mijenjanjem boja pokazuje kakvo će vrijeme biti sutra(ili taj dan ako gledate ujutro). Nikad više ne zaboravite kišobran!
• uz detektor pokreta ugradite NOVU da biste dobili email kada se izvan dopuštenog vremena netko kreće Vašim prostorima
• upravljajte Vašim domom s mobitela. Podignite roletne, prigušite svjetlo ili pojačajte klimu samo dodirom na smartphoneu
• spojite NOVU na termalni printer pa svaki email s naslovom "To Do" (ili koji god naslov vi želite. Ili svaki email od određenog pošiljatelja) direktno isprintajte
• spojite senzore na NOVU(možete napraviti i postaju za vremensku prognozu) i njena očitanja šaljite na internet odakle ćete im uvijek moći pristupiti! Sada Vaš udaljeni plastenik ili vinski podrum nije više tako daleko od Vas.
• svaki puta kada imate poruku na Facebooku/novi mail/Vaš hashtag je spomenut ili slično, neka nešto od rasvjete u Vašoj kući to i pokaže(npr. LED traka zasvijetli plavo kada imate poruku na Facebooku)
• pustite si na mašti na volju ili googlajte "IoT projects ideas". Povežite bilošto na internet!

Mogu ga programiti iz Arduina? Baš kao i svaki Croduino?

Ovo je kul. Ozbiljno. NOVU, baš kao i neku drugu Croduino/Arduino pločicu, priključite USBom u računalo, upalite Arduino i programirajte ga! Da, u C-u koristeći već dobro poznatu Arduino sintaksu, sve metode i library-je. Ovo omogućuje direktno prebacivanje za one koji su već upoznati s Arduinom, a jednostavno učenje za one koji nisu.
 
Koliko je to stvarno jednostavno? Neka kod govori za sebe, ovo je primjer za NOVU koja se povezuje na WiFi mrežu i otvara stranicu e-radionica.com:
 

#include "ESP8266WiFi.h"

const char* ssid     = "your-ssid";  // naziv Vaše WiFi mreže
const char* password = "your-password"; // lozinka za Vašu WiFi mrežu

const char* host = "e-radionica.com"; // stranica koju želimo otvoriti

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, te ćete gotovo uvijek koristiti 80
  {  
    Serial.println("Ne mogu se spojiti na stranicu.."); // ako je spajanje neuspješno
    return; // završi s izvođenjem programa
  }
  
  String url = "/hr/"; // budući da smo sada samo povezani na server(stranicu), 
                       // trebamo još otvoriti nešto s nje (path)
                       // da želimo naslovnu, url bi bio samo /
                       // ovdje otvaramo e-radionicu na hrv jeziku
  
  Serial.print("Povezani smo na stranicu. Sada cemo otvoriti URL: ");
  Serial.println(url);
  
  // Ovo salje zahtjev(request) stranici
  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
}

DSC_3069

Što se sve nalazi na NOVI?

    • oblik pločice koji odgovara eksperimentalnoj pločici
    • ESP8266 modul (ESP-12(-E) koji na sebi ima PCB trace antenu za WiFi)
    • CP2102 za USB konekciju
    • Četiri LED diode: crvena koja indicira napajanje, plava za rx, bijela za tx te narančasta za 13om pinu (potrebno zalemiti jumpere na donjoj strani pločice za LEDicu za napajanje i LEDicu na pinu 13)
    • 9 ulazno/izlaznih pinova od kojih svih 9 podržava PWM
    • 1 ulazni analogni pin(ADC). Pin s oznakom A na pločici podržava napone do 1V, dok pin s oznakom A_e podržava ulazne napone do 5V. A i A_e su spojeni na isti ADC(i jedini) pin, ali je A_e spojen preko djelitelja napona kako bi podržao ulazne napone do 5V.
    • I2C, SPI i serijska komunikacija
    • 3.3V regulator napona
    • strujni krug za automatsko postavljanje ESP-a u flash mod rada prilikom uploada koda iz Arduina(bez njega korisnik treba GPIO0 povezati s groundom, ali zbog njega za to nema potrebe)
    • dva pushbuttona, jedan za reset ESP-a, jedan koji postavlja GPIO0 na nisku logičku razinu
    • ESP-12 posjeduje CE i FCC certifikate

NOVA PUSHBUTTONS

NOVA radi na logičkoj razini od 3.3V, za razliku od većine ostalih Croduino pločica koje rade na 5V(ali mogu raditi i na 3.3V). NOVA mora raditi i isključivo radi na 3.3V! Potreban je oprez jer 5V može trajno uništiti NOVU. Maksimalna struja jednog ulazno-izlaznog pina je 6mA(s apsulutnim maksimumom od 12mA) pa je slučaju većih trošila treba razmišljati i o tome.
nova2

Kako započeti?

1. Za početak ćete trebati jednu Croduino NOVU ili Croduino set za početnike IoT (u kojemu se nalazi NOVA).
2. Dodajte postavke za Croduino NOVU unutar Vašeg Arduino softwarea. Tutorijal za to pronađite ovdje.
3. To je to, spremni ste! Bacite se na projekt! Možete pronaći inspiraciju i na našim stranicama.

Leave a Reply