Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2017:e-ink

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2017:e-ink [2018/01/15 01:55]
Branislav Michálek
2017:e-ink [2018/01/15 02:46] (aktuální)
Branislav Michálek [Zdroje]
Řádek 2: Řádek 2:
 ====== Zadanie ====== ====== Zadanie ======
 Navrhněte zařízení sloužící k zobrazování informací na e-ink displeji Waveshare. Informace ke zobrazení se budou přenášet z PC pomocí zvoleného komunikačního rozhraní. Pokuste se dosáhnout co nejnižší spotřeby celého zařízení. Navrhněte zařízení sloužící k zobrazování informací na e-ink displeji Waveshare. Informace ke zobrazení se budou přenášet z PC pomocí zvoleného komunikačního rozhraní. Pokuste se dosáhnout co nejnižší spotřeby celého zařízení.
 +
  
 ====== Úvod ====== ====== Úvod ======
Řádek 15: Řádek 16:
  
 ====== Vývojový hardware ====== ====== Vývojový hardware ======
----- 
 ===== ESP32-DevKitC ===== ===== ESP32-DevKitC =====
 [[http://​espressif.com/​en/​products/​hardware/​esp32-devkitc/​overview|ESP32-DevKitC]] je malá vývojová doska založená na obvode ESP32 firmy Espressif. Ide o cenovo dostupný SoC obvod, ktorý okrem iných obsahuje: dvojjadrový 32-bitový Xtensa LX6 mikroprocesor,​ Ultra-Low-Power koprocesor, 520k RAM, 34 GPIOs, 7 ADC, WiFi 802.11b/​g/​n/​e/​i,​ Bluetooth LE a. i. Vývojová doska ESP32-DevKitC navyše obsahuje prevodník USB/​sériová linka CP2102 pre programovanie a komunikáciu s počítačom. [[http://​espressif.com/​en/​products/​hardware/​esp32-devkitc/​overview|ESP32-DevKitC]] je malá vývojová doska založená na obvode ESP32 firmy Espressif. Ide o cenovo dostupný SoC obvod, ktorý okrem iných obsahuje: dvojjadrový 32-bitový Xtensa LX6 mikroprocesor,​ Ultra-Low-Power koprocesor, 520k RAM, 34 GPIOs, 7 ADC, WiFi 802.11b/​g/​n/​e/​i,​ Bluetooth LE a. i. Vývojová doska ESP32-DevKitC navyše obsahuje prevodník USB/​sériová linka CP2102 pre programovanie a komunikáciu s počítačom.
Řádek 21: Řádek 21:
 {{:​2017:​e-ink:​esp32_features.jpg?​400 |}}{{:​2017:​e-ink:​esp32-devkitc.jpg?​400 |}} {{:​2017:​e-ink:​esp32_features.jpg?​400 |}}{{:​2017:​e-ink:​esp32-devkitc.jpg?​400 |}}
  
-----+ 
  
  
Řádek 32: Řádek 33:
   * Bez možnosti čiastočnej obnovy zobrazenia (//partial refresh//).   * Bez možnosti čiastočnej obnovy zobrazenia (//partial refresh//).
 {{:​2017:​e-ink:​4.2inch-e-paper-module-5.jpg?​400 |}} {{:​2017:​e-ink:​4.2inch-e-paper-module-5.jpg?​400 |}}
 +
 +----
 +
  
 ====== Software ====== ====== Software ======
Řádek 55: Řádek 59:
 frame_buffer = pvPortMallocCaps((EPD_WIDTH * EPD_HEIGHT / 8), MALLOC_CAP_DMA);​ frame_buffer = pvPortMallocCaps((EPD_WIDTH * EPD_HEIGHT / 8), MALLOC_CAP_DMA);​
 </​code>​ </​code>​
 +
 +----
  
 ==== Počasie z OpenWeatherMap ==== ==== Počasie z OpenWeatherMap ====
Řádek 138: Řádek 144:
     return 0;     return 0;
 </​code>​ </​code>​
 +
 +----
  
 ===== Čas a dátum pomocou SNTP ===== ===== Čas a dátum pomocou SNTP =====
Řádek 182: Řádek 190:
 } }
 </​code>​ </​code>​
 +
 +----
  
 ===== Formátovanie výstupu na displej ===== ===== Formátovanie výstupu na displej =====
Řádek 216: Řádek 226:
  
 Po aktualizácii zobrazenia je možné displej aj obvod ESP32 uviesť do režimu hlbokého spánku. U displeja sa toho dosiahne odoslaním potrebných príkazov volaním funkcie ''​EPD_Sleep''​. U obvodu ESP32 bolo v pláne využiť funkciu ''​esp_deep_sleep'',​ ktorá obvod uvedie do režimu hlbokého spánku na stanovenú dobu, po ktorej sa opäť automaticky preberie a vykoná svoju funkciu. Po aktualizácii zobrazenia je možné displej aj obvod ESP32 uviesť do režimu hlbokého spánku. U displeja sa toho dosiahne odoslaním potrebných príkazov volaním funkcie ''​EPD_Sleep''​. U obvodu ESP32 bolo v pláne využiť funkciu ''​esp_deep_sleep'',​ ktorá obvod uvedie do režimu hlbokého spánku na stanovenú dobu, po ktorej sa opäť automaticky preberie a vykoná svoju funkciu.
 +
 +----
  
 ====== Záver ====== ====== Záver ======
 +
 +Výsledkom riešenia projektu je informačný panel, ktorý zobrazuje informácie o aktuálnom počasí v užívateľom definovanom meste. Dáta vo formáte JSON sú získavané prostredníctvom http protokolu zo servera ''​openweathermap.org''​. Tie sú následne rozparsované a naformátované do výstupného frameu, ktorý je odoslaný do e-ink displeja prostredníctvom SPI rozhrania a zobrazený. Funkčnosť je možné overiť vo [[https://​drive.google.com/​open?​id=1Qaca2lGZD5fkr57FlzeoJnUczxQI-132|videoukážke]].
 +
 +Po úspešnom zobrazení aktuálneho počasia je displej uvedený do režimu hlbokého spánku, nie však obvod ESP32, nakoľko po prebudení z režimu hlbokého spánku (po volaní funkcie ''​esp_deep_sleep''​) došlo k nešpecifikovanej chybe vedúcej k zlyhaniu programu, ktorá pre časovú tieseň v závere projektu dosiaľ nebola odladená
 +
 +Definíciu mesta, pre ktoré sa má zobrazovať počasie, ako aj prístupových údajov do WiFi siete, do ktorej má byť obvod pripojený, API kľúča pre OpenWeatherMap a iných parametrov, je nutné vykonať priamo v zdrojovom kóde programu obvodu. Z dôvodu nutnosti zoznámiť sa s novým obvodom a jeho funkciami, vývojovým prostredím a preštudovať pomerne veľké množstvo dokumentácie,​ nezostal v rámci projektu čas na pôvodný zámer, ktorým bolo vykonávať všetku konfiguráciu prostredníctvom web stránky (bootstrap). Toto, spolu s ďalšími vecami, ako napr. rozšírenie zobrazenia o predpoveď počasia, jednoduché piktogramy, emailové notifikácie a pod., zostáva námetom pre ďalšiu prácu.
 +
 +[[https://​drive.google.com/​file/​d/​1Pg3luJ6izvvT_yll_Dd6A-uz28w3Sixp/​view?​usp=sharing|Zdrojové súbory]]
 +
 +----
 +====== Zdroje ======
 +KOLBAN, Niel. //​Kolban'​s book on ESP32// [[https://​leanpub.com/​ESP8266_ESP32]]\\
 +[[https://​github.com/​loboris/​ESP32_ePaper_example]]\\
 +[[https://​openweathermap.org/​current]]\\
 +[[https://​www.waveshare.com/​wiki/​4.2inch_e-Paper_Module]]
 +
  
2017/e-ink.1515977705.txt.gz · Poslední úprava: 2018/01/15 01:55 autor: Branislav Michálek