====== ESP8266 programiranje ====== Ovdje se nalaze osnovne upute kako programirati pločice bazirane na ESP8266 mikrokontroleru pomoću Arduino razvojnog okruženja. Demonstrirat ćemo to kroz jednostavni IoT blink primjer (web server). Upute su namijenjene početnicima i nastale su u sklopu radionice [[http://radiona.org/radionica-the-internet-of-things/|IoT]]. ESP8266 mikrokontroler kineskog proizvođača pažnju je privukao 2014. godine zbog svoje izrazito niske cijene i specifikacija poput mogućnosti spajanja na mrežu putem WiFi-a. Moduli imaju Xtensa 32-bitni CPU sličan MIPS-u, par MB flash memorije i antenu. Postoji nezavisna podrška za Arduino core preko slobodnog softwarea na githubu tako da ESP8266 modul može biti programiran iz Arduino razvojne okoline i služiti kao Arduino mikrokontroler, a usput i biti wifi internet klijent ili server. Predradnje: - instalirati [[https://www.arduino.cc/en/Main/OldSoftwareReleases#previous|Arduino IDE 1.6.5]] - ''File > Preferences > Additional Boards Manager'' paste-ati: ''http://arduino.esp8266.com/stable/package_esp8266com_index.json'' - ''Tools > Boards > Boards manager'' upisati ''esp8266'' i instalirati podršku za ESP pločice ---- ===== WeMos D1 mini ===== {{ :project:d1_mini.jpg?direct&200 |}} CH340 USB to UART driver [[http://www.wch.cn/download/CH341SER_ZIP.html]] ili [[https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver/blob/master/CH34x_Install_V1.4.zip]] - spojiti D1 mini s računalom - ''Tools > Boards'' izabrati ''WeMos R2 & mini'' - ''Tools > Port'' izabrati port koji mu je dodjeljen - ''File > Examples > ESP8266 > Blink'' probati Blink primjer - uploadati kȏd ''Sketch > Upload''. Ako LED-ica blinka idemo dalje: - skinuti Emardov IoT blink primjer https://github.com/emard/esp8266blink - u kȏdu izmjeniti SSID i lozinku mreže na koju želimo da se esp8266 spoji - uploadati kȏd ''Sketch > Upload'' - otvoriti Serial Monitor ''Tools > Serial Monitor'' gdje bi se trebala ispisati IP adresa našeg ESP-a (ako se ispisuju čudni karakteri kao brzinu treba odabrati ''115200'') - otvoriti internet browser i upisati IP adresu ESP-a {{ :project:d1_mini_pinout.png?direct |}} ===== NodeMCU V0.9 ===== Dolazi sa CH340 USB-to-UART chipom za koji je potrebno instalirati odgovarajuće drivere za Windows i OSX. Podrška za neke verzije OSX-a je loša i možda ga uopće neće biti moguće osposobiti. {{ :project:nodemcu_v09.jpg?direct&200 |}} - spojiti NodeMCU s računalom - ''Tools > Boards'' izabrati ''NodeMCU 0.9'' - ''Tools > Port'' izabrati port koji mu je dodjeljen - ''File > Examples > ESP8266 > Blink'' probati Blink primjer - uploadati kȏd ''Sketch > Upload''. Ako LED-ica blinka idemo dalje: - skinuti Emardov IoT blink primjer https://github.com/emard/esp8266blink - u kȏdu izmjeniti SSID i lozinku mreže na koju želimo da se esp8266 spoji - uploadati kȏd ''Sketch > Upload'' - otvoriti Serial Monitor ''Tools > Serial Monitor'' gdje bi se trebala ispisati IP adresa našeg ESP-a (ako se ispisuju čudni karakteri kao brzinu treba odabrati ''115200'') - otvoriti internet browser i upisati IP adresu ESP-a {{ :project:nodemcu09_pinout.png?direct |}} * http://www.banggood.com/NodeMcu-Lua-WIFI-Development-Board-For-ESP8266-Module-p-976440.html ---- ===== NodeMCU V1.0 ===== {{ :project:nodemcu_1_0.jpg?direct&200 |}} Dolazi sa CH340 ili CP2102 USB to UART chipom. CP2102 je kvadratnog oblika (kao na slici iznad) i za njega nije potrebno instalirati drivere (Win, Linux, OSX). U slučaju CH340 na Windowsima i OSX-u, potrebno je instalirati odgovarajuće drivere: [[http://www.wch.cn/download/CH341SER_ZIP.html]] {{ :project:nodemcudevkit_v1-0_io.jpg?direct |}} ---- ===== ESP8266 ESP201 ===== {{ :project:esp8266_esp201.jpg?direct&200 |}} Za programiranje ove pločice potrebno je imati USB to Serial/TTL adapter. Takvi adapteri koštaju oko 1.5–5$, a omogućavaju nam serijsku komunikaciju putem USB porta. Spajanje treba napraviti prema slijedećoj shemi: {{ :project:flashing-the-esp8266-esp201-module-board-with-ttl-uart.jpg?direct |}} Kod ove varijante pločice ugrađena LED-ica se nalazi na istom pinu preko kojeg ide i serijska komunikacija, pa ćemo za sljedeće primjere trebati spojiti dodatnu LED-icu (prema shemi gore), a u kȏdu izmjeniti sva pojavljivanja ''BUILTIN_LED'' (defaultni pin LED-ice) u ''2''. Važno!!! ''IO0'' s ''GND''-om treba biti povezan samo za vrijeme spajanja esp-a s napajanjem. Prije kompajliranja i upladanja s Adruino IDE-om potrebno je ''IO0'' odspojiti s ''GND''-a. U protivnom su moguće greške (npr. //warning: espcomm_sync failed, error: espcomm_open failed//). To treba napraviti pri svakom slijedećem uploadanju koda. - preko USB to serial adaptera spojiti ESP201 s računalom - odspojiti ''IO0'' s ''GND''-a - ''Tools > Boards'' izabrati ''Generic ESP8266'' - ''Tools > Port'' izabrati port koji mu je dodjeljen - ''File > Examples > ESP8266 > Blink'' probati Blink primjer. Izmjeniti sva pojavljivanja ''BUILTIN_LED'' u ''2'') - uploadati kȏd ''Sketch > Upload''. Ako LED-ica blinka idemo dalje: - skinuti Emardov IoT blink primjer https://github.com/emard/esp8266blink - u kȏdu izmjeniti SSID i lozinku mreže na koju želimo da se esp8266 spoji. Izmjeniti i definiciju pina LED-ice iz ''BUILTIN_LED'' u ''2'' - uploadati kȏd ''Sketch > Upload'' - otvoriti Serial Monitor ''Tools > Serial Monitor'' gdje bi se trebala ispisati IP adresa našeg ESP-a (ako se ispisuju čudni karakteri kao brzinu treba odabrati ''115200'') - otvoriti internet browser i upisati IP adresu ESP-a {{ :project:esp8266-esp-201-pin-reference-v01.png?direct |}} {{ :project:esp-201_pinout.jpg?direct |}} {{ :project:sep-201_ds_wiring.jpg?direct |}} * http://www.14core.com/wiring-and-flashing-the-esp8266-esp201-wifi-transceiver-with-arduino/ * http://www.banggood.com/ESP8266-ESP-201-Remote-Serial-Port-WIFI-Transceiver-Wireless-Module-p-964288.html ---- ===== ESP8266 ESP-12 ===== {{ :project:esp8266_esp-12.jpg?nolink&200 |}} Za programiranje potrebno je ESP spojiti putem USB to serial adapter-a prateći tablicu u nastavku. VCC treba biti 3.3V. [[https://github.com/emard/wifi_jtag|Detaljnije ovdje]] ^USBSERIAL ^wire ^ESP-12 ^ESP-201 ^ |GND |black |GND |GND | |GND |1k |GPIO15 |1015 | |VCC |1k |EN or CH_PD |CHIP_EX | |VCC |red |VCC 3.3V |3.3V | |RXD |orange |TXD |TX | |TXD |white |RXD |RX | |DTR |green |GPIO0 |100 | |RTS |yellow |REST |RST | Pinout {{ :project:esp_12_pinout.png?direct&300 |}} Adruino pin mapping {{ :project:esp_12_arduino_pinout.png?direct |}} * http://arduino.esp8266.com/versions/1.6.5-1084-ga39ce29/doc/reference.html * http://www.banggood.com/ESP8266-ESP-12-Remote-Serial-Port-WIFI-Transceiver-Wireless-Module-p-964287.html ---- ===== Korisni linkovi ===== * https://github.com/esp8266/arduino Arduino esp8266 stranica projekta * https://en.wikipedia.org/wiki/ESP8266 * http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family esp8266 moduli i specifikacije * http://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/ NodeMcu razvojne pločice * https://github.com/emard Emardov github s nekoliko esp8266 primjera * https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/hardware-overview * https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/using-the-arduino-addon * https://www.arduino.cc/ službena Arduino stranica * https://play.google.com/store/apps/details?id=com.overlook.android.fing Android aplikacija pomoću koje možete saznati IP adrese uređaja spojenih na mrežu