{"id":38,"date":"2017-04-12T17:11:50","date_gmt":"2017-04-12T15:11:50","guid":{"rendered":"http:\/\/aiiot-technology.eu\/web\/?p=38"},"modified":"2017-04-20T23:22:39","modified_gmt":"2017-04-20T21:22:39","slug":"pierwsze-kroki-z-esp8266-w-srodowisko-arduino-ide","status":"publish","type":"post","link":"http:\/\/aiiot-technology.eu\/web\/2017\/04\/12\/pierwsze-kroki-z-esp8266-w-srodowisko-arduino-ide\/","title":{"rendered":"Pierwsze kroki z ESP8266 w \u015brodowisko Arduino IDE"},"content":{"rendered":"<p>Domy\u015blnie\u00a0ESP8266 jest\u00a0obs\u0142ugiwane poprzez komendy AT, mo\u017cna go\u00a0programowa\u0107 w \u015brodowisko Lua. Jednak je\u015bli nie znamy tego \u015brodowisk, albo nie chcemy korzysta\u0107 z drugiego mikrokontroler&#8217;a do obs\u0142ugi ESP8266 a znamy uproszczone \u015brodowisko \u00a0C jakim jest Arduino mo\u017cemy skorzysta\u0107 z portu do \u015brodowiska Arduino dzi\u0119ki projektowi\u00a0<a href=\"https:\/\/github.com\/esp8266\/Arduino\">ESP8266 core for Arduino<\/a><\/p>\n<p>Wi\u0119kszo\u015b\u0107 poradnik\u00f3w odno\u015bcie uruchomienia\u00a0ESP8266 w \u015brodowisku arduino opiera si\u0119 o bezwzgl\u0119dne minimum, co mo\u017ce by\u0107 dobre je\u015bli zaczynamy i chcemy tylko po prosu co\u015b uruchomi\u0107, ale wraz z czasem zaczyna nas to denerwowa\u0107 w sensie dlaczego program si\u0119 nie chce wgra\u0107, zapominamy\u00a0od\u0142\u0105czy\u0107 pinu gpio0\/reset, niekt\u00f3rzy\u00a0wol\u0105 kopic p\u0142ytki typu <a href=\"http:\/\/nodemcu.com\/index_en.html\">NodeMcu<\/a> lub podobne, aby mie\u0107 wreszcie spok\u00f3j, dlatego chcia\u0142bym si\u0119 skupi\u0107 na tym co b\u0119dzie nam potrzebne do wygodnej pracy i \u017ce dostosowanie go\u0142ej p\u0142ytki nie jest wcale takie trudne.<\/p>\n<p><a href=\"http:\/\/espressif.com\/sites\/default\/files\/documentation\/0a-esp8266ex_datasheet_en.pdf\">Datasheet &#8211; dokumentacja producenta<\/a><\/p>\n<p><strong>Podstawowe paramenty ESP8266:<\/strong><\/p>\n<ul>\n<li>napi\u0119cie zasilania od 2.5 do 3.6V<\/li>\n<li>pob\u00f3r pr\u0105duo ko\u0142o 200mA na sam modu\u0142<\/li>\n<li>pr\u0119dko\u015b\u0107 zegara procesora od\u00a0 80 do\u00a0160 MHz<\/li>\n<li>rozmiar RAM &lt;50 kB, dost\u0119pne oko\u0142o 38kB<\/li>\n<li>zewn\u0119trzna pami\u0119\u0107 SPI flash od 0.5MB do 16MB, arduino obs\u0142uguje tylko do 4MB, zaleca si\u0119 minimum 1MB<\/li>\n<li>jeden 10-bitowy przetwornik ADC z mo\u017cliwo\u015bci\u0105 pomiaru napi\u0119cia zasilania be\u017c dodatkowych przewod\u00f3w<\/li>\n<li>WiFi 2.4GHz b\/g\/n, w trybie AP n jest niewspierany<\/li>\n<\/ul>\n<p><strong>Wersje kt\u00f3rych niemo\u017cna przeprogramowa\u0107:<\/strong><\/p>\n<ul>\n<li>ESP8266 ESP-14 \u00a0\/\/ posiada wewn\u0119trzny 8-bitowy mikrokontroler po\u015brednicz\u0105cy w komunikacji UART<\/li>\n<\/ul>\n<p>Wersja\u00a0ESP-01 nie jest zalecana gdy\u017c posiada 0.5MB flash, wersja\u00a0ESP-01S posiada 1MBmb\u00a0dzi\u0119ki czemu mo\u017cemy skorzysta\u0107 z OTA i \u0142atwo wykorzysta\u0107 piny RX\/TX jako piny wej\u015bcia\/wyj\u015bcia, jednak nadal posiada ona ma\u0142o pin\u00f3w wej\u015bcia\/wyj\u015bcia, gdzie obs\u0142uga trybu u\u015bpienia wymaga dolutowania przewodu do MCU.<\/p>\n<p>Najwi\u0119ksza pami\u0119\u0107 obs\u0142ugiwana przez Arduino IDE to 4MB w tym 3MB SPIFFS w prawdzie mo\u017cliwe jest ustawienie 1MB SPIFFS jednak maksimum wielko\u015b\u0107 szkicu to nadal tylko 1MB, nie wiem czy to b\u0142\u0105d czy tylko niedopatrzenie(nie pr\u00f3bowa\u0142em wgrywa\u0107 szkicu ponad 1MB) mo\u017cliwo\u015b\u0107 wymiany pami\u0119ci oraz wykorzystanie przestrzeni SPIFFS om\u00f3wi\u0119 w innym poradniku.<\/p>\n<p><strong>Dodanie p\u0142ytki do \u015brodowiska arduino:<\/strong><\/p>\n<p>Uruchamiamy AruinoIDE wchodzimy do &#8222;Plik&#8221; &gt; &#8222;Preferencje&#8221; \u00a0&gt;&#8221;Ustawienia&#8221; &gt; \u00a0w &#8222;Dodatkowe adresy URL do mened\u017cera p\u0142ytek&#8221; dopisujemy:<\/p>\n<blockquote><p>http:\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json<\/p><\/blockquote>\n<p>Nast\u0119pnie wybieramy &#8222;Narz\u0119dzia&#8221; &gt; &#8222;P\u0142ytka&#8221; &gt; &#8222;Mened\u017cer p\u0142ytek&#8230;&#8221; zmieniamy w &#8222;Wpis&#8221; na &#8222;W\u0142asne&#8221; i wybieramy &#8222;esp8266 by ESP8266 Community wersja&#8230;&#8221; i klikamy &#8222;Instaluj&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>mo\u017cemy tez doda\u0107 kilka r\u00f3\u017cnych p\u0142ytek, dzi\u0119ki czemu b\u0119dziemy\u00a0informowania o aktualizacjach, np. w ten spos\u00f3b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-43\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ArduinoIDE-ADD-BOARD.png\" alt=\"\" width=\"786\" height=\"864\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ArduinoIDE-ADD-BOARD.png 786w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ArduinoIDE-ADD-BOARD-273x300.png 273w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ArduinoIDE-ADD-BOARD-768x844.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/p>\n<p><strong>Wyb\u00f3r p\u0142ytki w Arduino IDE:<\/strong><\/p>\n<p>po zainstalowaniu p\u0142ytek wybieramy\u00a0&#8222;Narz\u0119dzia&#8221; &gt; &#8222;P\u0142ytka&#8221; &gt; w katalog &#8222;ESP8266 Module&#8221; &gt; &#8222;Generic ESP8266 Module&#8221;<\/p>\n<p>zmieniamy parametry:<\/p>\n<p>-Flash Size: je\u015bli masz 1MB (domy\u015blnie w obecnie produkowanych modu\u0142ach, ESP-12E\/F ma domy\u015blnie 4MB) zmieniamy na &#8222;1MB 64K SPIFFS&#8221; wa\u017cne aby szkic mia\u0142 oko\u0142o 1MB miejsca na pami\u0119ci flash<\/p>\n<p>-Upload Speed: zmieniamy na najwi\u0119kszy &#8222;921600&#8221; od tego zale\u017cy w jakim czasie wgra nam si\u0119 program<\/p>\n<p>-Port: wybieramy\u00a0port naszego konwertera<\/p>\n<p>-Upload Frequency oraz\u00a0Flash\u00a0Frequency mo\u017cemy zmieni\u0107 na najwy\u017csze, jednak niema to wi\u0119kszego znaczenia, przynajmniej na pocz\u0105tku<\/p>\n<p>-Reset Method: je\u015bli korzystamy z metody r\u00f3\u017cnicowej opisanej p\u00f3\u017aniej zmieniamy z &#8222;ck&#8221; na &#8222;modemcu&#8221;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-42\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/nastawy-ESP8266.png\" alt=\"\" width=\"392\" height=\"549\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/nastawy-ESP8266.png 392w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/nastawy-ESP8266-214x300.png 214w\" sizes=\"(max-width: 392px) 100vw, 392px\" \/><\/p>\n<p><strong>Uruchomienie go\u0142ej p\u0142ytki:<\/strong><\/p>\n<ul>\n<li>GND &gt;do&gt;\u00a0masy<\/li>\n<li>VCC &gt;do&gt; zasilania max 3.6v<\/li>\n<li>CH_EN &gt;do&gt; zasilanie przez rezystor ok 12k<\/li>\n<li>GPIO0 &gt;do&gt; masy przez\u00a0rezystor ok 12k<\/li>\n<li>RESET &gt;do&gt; zasilania\u00a0przez rezystor ok 12k \/\/ je\u015bli korzystamy z trybu u\u015bpienia, reset dzia\u0142a przez zmarcie do masy<\/li>\n<li>GPIO16 &gt;do&gt; RESET\u00a0przez rezystor \u00a0\/\/ je\u015bli korzystamy z trybu u\u015bpienia, wybudzanie z trybu u\u015bpienia\u00a0jest niedost\u0119pne w ESP-01 wymaga dolutowania przewodu<\/li>\n<li>Zaleca si\u0119 dodanie kondensatora oko\u0142o 200uF oraz 100nF na zasilanie, blisko wyprowadze\u0144 uk\u0142adu<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-45\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ESP_improved_stability.png\" alt=\"\" width=\"759\" height=\"567\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ESP_improved_stability.png 759w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/ESP_improved_stability-300x224.png 300w\" sizes=\"(max-width: 759px) 100vw, 759px\" \/><\/p>\n<p><strong>Programowanie p\u0142ytki:<\/strong><\/p>\n<p>aby prze\u0142\u0105czy\u0107 p\u0142ytk\u0119 w tryb programowania zwieramy pin GPIO0 do zasilania i resetujemy\u00a0p\u0142ytk\u0119 podaj\u0105c stan wysoki na pin RESET. Do programowania b\u0119dziemy potrzebowali przej\u015bci\u00f3wki USB UART dzia\u0142aj\u0105cej w standardzie TTL 3.3v je\u015bli nie mamy pewno\u015bci skorzystajmy z konwertera poziom\u00f3w logicznych(najlepiej na tranzystorach)<\/p>\n<p>Pod\u0142\u0105czenie konwertera uart musi pracowa\u0107 w trybie TTL 3.3v<\/p>\n<ul>\n<li>GND do GND<\/li>\n<li>RX do TX<\/li>\n<li>TX do RX<\/li>\n<li>VCC nie jest wymagany je\u015bli korzystamy z innego \u017ar\u00f3d\u0142a zasilania<\/li>\n<li>GPIO0 do VCC<\/li>\n<li>RESET do RST \/\/ nie jest wymagany je\u015bli ponownie pod\u0142\u0105czymy zasilanie przed wgraniem kodu<\/li>\n<\/ul>\n<p>Okey ale takie wgranie dzia\u0142\u00a0tylko raz i za ka\u017cdym razem musimy odpina\u0107 GPIO0\/reset, mo\u017cna to zautomatyzowa\u0107 najlepsza metoda to reset w trybie r\u00f3\u017cnicowym stosowany w NodeMcu<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-39\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/NODEMCU_reset.png\" alt=\"\" width=\"541\" height=\"347\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/NODEMCU_reset.png 541w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/04\/NODEMCU_reset-300x192.png 300w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/p>\n<p>Wymaga on wyprowadzenia w konwerterze UART pinu DTR i RST<\/p>\n<p>je\u015bli mamy tylko jeden programator i kilka p\u0142ytek mo\u017cemy zrobi\u0107 sobie przej\u015bci\u00f3wk\u0119 do\u00a0konwertera, dzi\u0119ki czemu nie musimy stosowa\u0107 tego uk\u0142adu w ka\u017cdej p\u0142ytce.<\/p>\n<p>Teraz wystarczy w gra\u0107 np. blik&#8217;a z przyk\u0142ad\u00f3w, jednak pin\u00a0LED_BUILTIN domy\u015blnie jest ustawiony na pinie 1 wi\u0119c musimy doda\u0107<\/p>\n<blockquote><p>#define LED_BUILTIN 2<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Domy\u015blnie\u00a0ESP8266 jest\u00a0obs\u0142ugiwane poprzez komendy AT, mo\u017cna go\u00a0programowa\u0107 w \u015brodowisko Lua. Jednak je\u015bli nie znamy tego \u015brodowisk, albo nie chcemy korzysta\u0107 z drugiego mikrokontroler&#8217;a do obs\u0142ugi ESP8266 a znamy uproszczone \u015brodowisko \u00a0C jakim jest Arduino mo\u017cemy skorzysta\u0107 z portu do \u015brodowiska Arduino dzi\u0119ki projektowi\u00a0ESP8266 core for Arduino Wi\u0119kszo\u015b\u0107 poradnik\u00f3w odno\u015bcie uruchomienia\u00a0ESP8266 w \u015brodowisku arduino opiera si\u0119 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":47,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-38","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp8266"],"_links":{"self":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts\/38"}],"collection":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":10,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"predecessor-version":[{"id":59,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts\/38\/revisions\/59"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/media\/47"}],"wp:attachment":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}