PREDSTAVLJANJE: DASDUINO CONNECT

Dasduino CONNECT (ESP8266)-Dasduino & Arduino

UVOD

Za razliku od klasičnih pločica na kojima je mikrokontroler već dobro poznati Atmel Atmega328, kao što je Dasduino Core, vrijeme je za nešto novo. Istina, tu je Dasduino Lite, mala pločica s Amel Attiny procesorom, ali praktički to je Atmega328 slabijih mogućnosti, a Lite je inovativan 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 Dasduino Connect, 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!

ŠTO JE DASDUINO CONNECT?

Dasduino Connect 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.

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 Connect sposoban obraditi 5 puta više operacija nego Core.
• 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 Core, 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.

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

 

 

ZAŠTO JE CONNECT BAŠ TAKO ZANIMLJIV I ŠTO MOGU S NJIM? (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(PebbleApple WatchMoto360), 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 Connect 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 Connect 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 Connect 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 Connect (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 DASDUINO?

Ovo je kul. Ozbiljno. Connect, baš kao i neku drugu Dasduino 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 Connect koja se povezuje na WiFi mrežu i otvara stranicu soldered.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 = "soldered.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
}

ŠTO SE SVE NALAZI NA CONNECT?

    • • oblik pločice koji odgovara eksperimentalnoj pločici
    • • ESP8266 modul (ESP-12(-E) koji na sebi ima PCB trace antenu za WiFi)
    • • CH340C za USB konekciju
    • • Pet LED dioda: crvena koja indicira punjenje, plava za rx, bijela za tx, ljubičasta za power te RGB
    • • 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

 

Connect radi na logičkoj razini od 3.3V, za razliku od većine ostalih Dasduino pločica koje rade na 5V(ali mogu raditi i na 3.3V). Connect mora raditi i isključivo radi na 3.3V! Potreban je oprez jer 5V može trajno uništiti Connect. 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.

 

 

KAKO ZAPOČETI?

1. Za početak ćete trebati jednu Dasduino Connect ili Dasduino set za početnike IoT (u kojemu se nalazi Connect).
2. Dodajte postavke za Dasduino Connect 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.