{"id":923,"date":"2016-03-06T17:23:26","date_gmt":"2016-03-06T16:23:26","guid":{"rendered":"http:\/\/www.xpablo.cz\/?p=923"},"modified":"2016-03-06T17:25:40","modified_gmt":"2016-03-06T16:25:40","slug":"esp8266-2-8tft-touch-panel-zaklad-pro-maly-hmi","status":"publish","type":"post","link":"http:\/\/www.xpablo.cz\/?p=923","title":{"rendered":"ESP8266 + 2.8&#8220;TFT + Touch panel = z\u00e1klad pro mal\u00fd HMI"},"content":{"rendered":"<p><a href=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch2_web.jpg\" rel=\"attachment wp-att-924\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-924 alignleft\" src=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch2_web-271x300.jpg\" alt=\"TFTTouch2_web\" width=\"271\" height=\"300\" srcset=\"http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch2_web-271x300.jpg 271w, http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch2_web-768x851.jpg 768w, http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch2_web-925x1024.jpg 925w, http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch2_web.jpg 1200w\" sizes=\"auto, (max-width: 271px) 100vw, 271px\" \/><\/a>Meteostanice pro Jirky bude obsahovat grafick\u00fd TFT displej pro zobrazov\u00e1n\u00ed m\u011b\u0159en\u00fdch hodnot a pro snadn\u011bj\u0161\u00ed ovl\u00e1d\u00e1n\u00ed jsem navrhl i pou\u017eit\u00ed dotykov\u00e9ho panelu. Jak j\u00e1, tak Jirka jsme objednali z \u010c\u00edny vzorky &#8211; Jirka m\u011bl v\u011bt\u0161\u00ed \u0161t\u011bst\u00ed a panel mu p\u0159i\u0161el, zat\u00edmco j\u00e1 musel objedn\u00e1vat znovu. Pro urychlen\u00ed v\u00fdvoje mi ale Jirka sv\u016fj panel poslal, tak\u017ee jsem mohl za\u010d\u00edt s rozh\u00fdb\u00e1n\u00edm z\u00e1kladn\u00edch metod, kter\u00e9 jsou nutn\u00e9 pro dosa\u017een\u00ed c\u00edle. Vzhledem k omezen\u00e9mu po\u010dtu I\/O pin\u016f na ESP8266 jsme vybrali panel s SPI rozhran\u00edm jak pro TFT \u010d\u00e1st, tak pro touch kontrol\u00e9r. Toto rozhodnut\u00ed sice umo\u017enilo p\u0159ipojen\u00ed k ESP, ale sou\u010dasn\u011b vytvo\u0159ilo n\u011bkter\u00e1 \u00faskal\u00ed, o kter\u00fdch se v\u00edce rozep\u00ed\u0161i v \u010dl\u00e1nku&#8230;<\/p>\n<p><!--more--><\/p>\n<p>\u017de je mo\u017en\u00e9 displej takto k ESP p\u0159ipojit jsem v\u011bd\u011bl na z\u00e1klad\u011b pokus\u016f odsud <a href=\"http:\/\/nailbuster.com\/?page_id=341\" target=\"_blank\">http:\/\/nailbuster.com\/?page_id=341<\/a> tak\u017ee n\u011bco do za\u010d\u00e1tku jsem p\u0159ece jen m\u011bl, ale po zapojen\u00ed a odzkou\u0161en\u00ed jsem zjistil tragicky \u0161patn\u00fd v\u00fdkon cel\u00e9 sestavy. Z d\u016fvodu maxim\u00e1ln\u00edho kmito\u010dtu hodin pro XPT2046 2MHz cel\u00e9 vykreslov\u00e1n\u00ed prob\u00edhalo neuv\u011b\u0159iteln\u011b pomalu. Nav\u00edc jsem v\u011bd\u011bl o optimalizovan\u00fdch Adafruit knihovn\u00e1ch, kter\u00e9 maj\u00ed v\u011bt\u0161\u00ed v\u00fdkon odsud <a href=\"http:\/\/www.instructables.com\/id\/Arduino-analogue-ring-meter-on-colour-TFT-display\/\" target=\"_blank\">http:\/\/www.instructables.com\/id\/Arduino-analogue-ring-meter-on-colour-TFT-display\/<\/a>, tak\u017ee p\u0159i\u0161el \u010das na optimalizace. P\u016fvodn\u00ed Adafruit knihovna byla nahrazena knihovnou optimalizovanou, ovlada\u010d displeje s \u0159adi\u010dem ILI9340 byl nahrazen\u00fd optimalizovan\u00fdm ovlada\u010dem s podporou transakc\u00ed, 16-ti bitov\u00fdm p\u0159\u00edstupem na SPI (ani u\u017e si nepamatuji v\u0161echny zm\u011bny, kter\u00e9 jsem ud\u011blal&#8230;) a ovlada\u010d XPT2046 byl p\u0159epracovan\u00fd na transakce na SPI s omezen\u00edm kmito\u010dtu hodin na 2MHz.<\/p>\n<p>Pro \u00fa\u010dely testov\u00e1n\u00ed jsem p\u016fvodn\u00ed dva p\u0159\u00edklady (kalibrace a jednoduch\u00fd Paint program) spojil do jednoho a p\u0159epracoval jej tak, aby byla mo\u017en\u00e1 aktualizace p\u0159es OTA. V\u00fdsledek vypad\u00e1 takto:<\/p>\n<p><a href=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch_web.jpg\" rel=\"attachment wp-att-926\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-926\" src=\"https:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch_web-300x289.jpg\" alt=\"TFTTouch_web\" width=\"300\" height=\"289\" srcset=\"http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch_web-300x289.jpg 300w, http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch_web-768x740.jpg 768w, http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch_web-1024x986.jpg 1024w, http:\/\/www.xpablo.cz\/wp-content\/uploads\/2016\/03\/TFTTouch_web.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u010cten\u00ed dotykov\u00e9ho panelu prob\u00edh\u00e1 na 2MHz a vykreslov\u00e1n\u00ed pak na maxim\u00e1ln\u00edm kmito\u010dtu, kter\u00e9ho jsem byl schopen dos\u00e1hnout. V\u0161e se zd\u00e1 pracuje spr\u00e1vn\u011b, ale jedna chyba se p\u0159ece projevuje &#8211; ob\u010das se objev\u00ed ru\u0161en\u00ed na vstupech touch \u0159adi\u010de a ten detekuje \u0161patn\u00e9 sou\u0159adnice, ale tato situace se d\u00e1 vy\u0159e\u0161it digit\u00e1ln\u00ed filtrac\u00ed \u010dten\u00fdch informac\u00ed. Vlastn\u011b jsem zjistil, \u017ee se dotykov\u00fd panel zdaleka nemus\u00ed \u010d\u00edst tak \u010dasto a zbyte\u010dn\u011b ztr\u00e1c\u00edm v\u00fdkon, kter\u00fd m\u016f\u017eu vyu\u017e\u00edt pro vykreslov\u00e1n\u00ed&#8230;<\/p>\n<p>Na z\u00e1v\u011br, jako obvykle, uvedu pou\u017eit\u00e9 prost\u0159ed\u00ed:<\/p>\n<ul>\n<li>OS Linux Ubuntu Gnome<\/li>\n<li>Arduino IDE 1.6.7<\/li>\n<li>ESP8266 Core 2.1.0<\/li>\n<li>V projektu je aktualizovan\u00e1 knihovna WiFiConfig v posledn\u00ed verzi s Captive port\u00e1lem a o\u0161et\u0159en\u00fdm p\u0159esm\u011brov\u00e1n\u00edm, sou\u010dasn\u011b je pou\u017eit HTML5 valid\u00e1tor pro zad\u00e1v\u00e1n\u00ed NETBIOS\/DNS jm\u00e9na za\u0159\u00edzen\u00ed a d\u00e1le je dopln\u011bna mo\u017enost u\u017eivatelsk\u00fdch parametr\u016f p\u0159i konfiguraci.<\/li>\n<\/ul>\n<p>T\u011bsn\u011b p\u0159ed odkazem na soubor je\u0161t\u011b jedna informace &#8211; pro generov\u00e1n\u00ed souboru pro sta\u017een\u00ed jsem zkusil pou\u017e\u00edt funkci &#8222;Archivuj projekt&#8220; v IDE, tak\u017ee pokud arch\u00edv obsahuje chyby, tak mi to napi\u0161te do koment\u00e1\u0159\u016f, abych je mohl odstranit.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Meteostanice pro Jirky bude obsahovat grafick\u00fd TFT displej pro zobrazov\u00e1n\u00ed m\u011b\u0159en\u00fdch hodnot a pro snadn\u011bj\u0161\u00ed ovl\u00e1d\u00e1n\u00ed jsem navrhl i pou\u017eit\u00ed dotykov\u00e9ho panelu. Jak j\u00e1, tak Jirka jsme objednali z \u010c\u00edny vzorky &#8211; Jirka m\u011bl v\u011bt\u0161\u00ed \u0161t\u011bst\u00ed a panel mu p\u0159i\u0161el, zat\u00edmco j\u00e1 musel objedn\u00e1vat znovu. Pro urychlen\u00ed v\u00fdvoje mi ale Jirka sv\u016fj panel poslal, tak\u017ee &hellip; <a href=\"http:\/\/www.xpablo.cz\/?p=923\" class=\"more-link\">Pokra\u010dov\u00e1n\u00ed textu <span class=\"screen-reader-text\">ESP8266 + 2.8&#8220;TFT + Touch panel = z\u00e1klad pro mal\u00fd HMI<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[3,5,25],"tags":[18,53,51,52],"class_list":["post-923","post","type-post","status-publish","format-standard","hentry","category-arduino","category-elektronika","category-esp8266","tag-esp8266","tag-hmi","tag-tft","tag-touch"],"_links":{"self":[{"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts\/923","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=923"}],"version-history":[{"count":8,"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts\/923\/revisions"}],"predecessor-version":[{"id":933,"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=\/wp\/v2\/posts\/923\/revisions\/933"}],"wp:attachment":[{"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=923"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.xpablo.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}