{"id":159279,"date":"2024-08-05T10:24:00","date_gmt":"2024-08-05T10:24:00","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=159279"},"modified":"2025-02-04T17:10:43","modified_gmt":"2025-02-04T17:10:43","slug":"learn-lvgl-esp32-ebook","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/learn-lvgl-esp32-ebook\/","title":{"rendered":"Learn LVGL: Build GUIs for ESP32 Projects (eBook)"},"content":{"rendered":"\n<h1 class=\"wp-block-heading has-text-align-center\">Learn LVGL: Build GUIs for ESP32 Projects (eBook)<\/h1>\n\n\n\n<p class=\"has-text-align-center\">Learn how to build Graphical User Interfaces (GUIs) for ESP32 Projects using LVGL (Light Versatile Graphics Library) with the Arduino IDE.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"#sign-up\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"400\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?resize=400%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Learn LVGL Build GUIs for ESP32 Projects new eBook cover\" class=\"wp-image-161317\" style=\"width:280px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?w=400&amp;quality=100&amp;strip=all&amp;ssl=1 400w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?resize=240%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 240w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><a class=\"button rntyellow\" href=\"#sign-up\">GET THE EBOOK \u00bb<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p>Get started using the <strong>LVGL<\/strong> library with the ESP32 to build <strong>graphical user interfaces<\/strong> for your IoT and home automation projects. Learn how to draw <strong>buttons<\/strong>, <strong>sliders<\/strong>, <strong>tables<\/strong>, <strong>charts<\/strong>, <strong>input fields<\/strong>, <strong>keyboards<\/strong>, and much more&#8230;<\/p>\n\n\n\n<p>This eBook is compatible with the ESP32 Cheap Yellow Display (CYD) and the TFT 2.8 inch ILI9341 Resistive Touchscreen Display.<\/p>\n\n\n\n<p>If you want to learn how to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>use and configure the LVGL library in <strong>Arduino IDE<\/strong> to program the ESP32;<\/li>\n\n\n\n<li><strong>create graphical user interfaces<\/strong> for your ESP32 displays;<\/li>\n\n\n\n<li>get started using the <strong>LVGL library<\/strong> to create different types of <strong>widgets<\/strong>;<\/li>\n\n\n\n<li>add widgets to the interfaces like <strong>buttons<\/strong>, and <strong>sliders<\/strong> to control outputs;<\/li>\n\n\n\n<li>display data in different formats like <strong>text<\/strong>, <strong>vertical bars<\/strong>, <strong>tables<\/strong>, and <strong>charts<\/strong>;<\/li>\n\n\n\n<li>create <strong>user input<\/strong> by drawing a <strong>keypad<\/strong>, <strong>keyboard<\/strong>, and other widgets;<\/li>\n\n\n\n<li>draw a user interface that integrates with your <strong>MQTT <\/strong>system;<\/li>\n\n\n\n<li>get <strong>data from the internet<\/strong> and display it on your screen;<\/li>\n\n\n\n<li>create a <strong>web server<\/strong> that synchronizes in real time with the display interface;<\/li>\n\n\n\n<li>display <strong>images <\/strong>and interact with them;<\/li>\n\n\n\n<li>organize your widgets in <strong>multiple tabs<\/strong>;<\/li>\n\n\n\n<li>and much more&#8230;<\/li>\n<\/ul>\n\n\n\n<p>Then, our new eBook <em><strong>Learn LVGL: Build GUIs for ESP32 Projects<\/strong><\/em> is exactly what you need to get started building awesome GUIs for your IoT and Home Automation projects.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What is LVGL?<\/h4>\n\n\n\n<p>LVGL&nbsp;(Light and Versatile Graphics Library) is a free and open-source graphics library that provides a wide range of easy-to-use graphical elements for your microcontroller projects that require a graphical user interface (GUI).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"622\" height=\"194\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/LVGL-new-logo.png?resize=622%2C194&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL new logo\" class=\"wp-image-161339\" style=\"width:auto;height:100px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/LVGL-new-logo.png?w=622&amp;quality=100&amp;strip=all&amp;ssl=1 622w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/LVGL-new-logo.png?resize=300%2C94&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><\/figure><\/div>\n\n\n<p>It provides methods to easily create different objects: text labels, buttons, sliders, input fields, keyboard, custom styling, images, arcs, lines, animations, menus, tabs, layouts, tables, and much more\u2026<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What is a Cheap Yellow Display (CYD) Board?<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-Cheap-Yellow-Display-Wi-Fi-Manager-Example.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 Cheap Yellow Display Wi-Fi Manager Example included in our LVG with the ESP32 eBook\" class=\"wp-image-159306\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-Cheap-Yellow-Display-Wi-Fi-Manager-Example.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-Cheap-Yellow-Display-Wi-Fi-Manager-Example.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>The Cheap Yellow Display board is a TFT Touchscreen display LCD with an ESP32 development board included. Its main chip is an ESP32-WROOM-32 module and the display is a 2.8-inch TFT resistive touchscreen LCD with the ILI9341 driver.<\/p>\n\n\n\n<p>It also comes with a microSD card interface, an RGB LED, an LDR, some exposed GPIOs, and all the circuitry to program and apply power to the board.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Recommended Board and Display<\/h3>\n\n\n\n<p>To follow this eBook, <span style=\"text-decoration: underline;\">we recommend<\/span> using an <strong>ESP32 Cheap Yellow Display 2.8 inch (ESP32\u20112432S028R) with a resistive touchscreen<\/strong> (the eBook is currently not compatible with a capacitive touchscreen).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/Recommended-CYD-Board-LVGL-with-ESP32-eBook.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Recommended CYD Board to Follow LVGL with ESP32 eBook\" class=\"wp-image-159309\" style=\"width:600px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/Recommended-CYD-Board-LVGL-with-ESP32-eBook.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/Recommended-CYD-Board-LVGL-with-ESP32-eBook.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>Alternatively\u2026 You can get a <strong>TFT LCD Resistive Touchscreen Display \u2013 2.8 inch ILI9341 240\u00d7320<\/strong> and wire it to a &#8220;regular ESP32 board&#8221;.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/Recommended-TFT-Display-LVGL-with-ESP32-eBook.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Recommended TFT Display to Follow LVGL with ESP32 eBook\" class=\"wp-image-159310\" style=\"width:600px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/Recommended-TFT-Display-LVGL-with-ESP32-eBook.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/Recommended-TFT-Display-LVGL-with-ESP32-eBook.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>Most displays that use the ILI9341 driver and resistive touchscreen should be compatible with our projects. However, you must know how to set up the configuration file for your exact model. Different models will require different configuration files.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s inside the eBook?<\/h2>\n\n\n\n<p>This is a colorful ~450 page PDF with step-by-step instructions to create GUIs using different widgets for your ESP32 displays. It includes all the source code, schematic diagrams, and screenshots that are easy to follow. It comes with 7 Modules.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"450\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-LVGL-Cheap-Yello-Display-Featured-Projects.png?resize=750%2C450&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-159527\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-LVGL-Cheap-Yello-Display-Featured-Projects.png?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-LVGL-Cheap-Yello-Display-Featured-Projects.png?resize=300%2C180&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>Each module breaks down a specific subject and allows for quick referencing in the future. It covers each subject with practical examples and projects:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 1: Getting Started<\/strong>\u2014a quick introduction to the CYD board and compatible TFT touchscreen displays; instructions to set up and configure the required libraries.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 2: Text, Buttons, Switches, and Sliders<\/strong>\u2014learn how to display basic widgets like text, buttons, switches, and sliders, and how to make something happen when you interact with them.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 3: Display Data from Sensors<\/strong>\u2014display data in different formats: text, tables, vertical<strong> <\/strong>bars, and charts.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 4: User Input<\/strong>\u2014covers different ways to get user input: keypad, keyboard, spinbox, and input fields.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 5: Integrating with MQTT<\/strong>\u2014create an interface to publish to MQTT topics and display received messages by subscribing to topics.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module 6: Integrating with Wi-Fi<\/strong>\u2014get and display data from the internet and create a web server that synchronizes almost instantly with the widgets on the screen.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Module 7: More Features and Other Widgets<\/b>\u2014display custom images on the screen and make them clickable; create tabs so that you can organize your widgets on multiple screens.<\/li>\n<\/ul>\n\n\n\n<p><strong>Here\u2019s what you\u2019ll have access to when you get the eBook:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>eBook in PDF format (7 Modules, 450 pages)<\/li>\n\n\n\n<li>Source Code + Project Files (Arduino sketches, Configuration Files, and Node-RED flows)<\/li>\n\n\n\n<li>Unlimited Free Updates (includes future eBook updates)<\/li>\n\n\n\n<li>Access to a private Forum to ask questions<\/li>\n\n\n\n<li>Exclusive access to our Facebook group community<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Table of Contents<\/h2>\n\n\n\n<p>The eBook comes with 7 Modules. Each module is dedicated to a specific subject. Here&#8217;s a description of the complete table of contents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 0: Introduction<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-0-Introduction.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 0 Introduction\" class=\"wp-image-161327\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-0-Introduction.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-0-Introduction.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>This Module is a quick introduction to the eBook, providing a general overview of the Modules we\u2019ll cover, the learning objectives, instructions on how to follow the eBook, recommended prerequisites, and the parts required to complete the projects.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 1: Getting Started<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-1-Getting-Started.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 1 Getting Started\" class=\"wp-image-161328\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-1-Getting-Started.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-1-Getting-Started.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>This module introduces you to the ESP32 Cheap Yellow Display and the 2.8-inch TFT touchscreen LCD with the ILI9341 driver chip with a resistive touchscreen. You\u2019ll prepare all the libraries and software required to start building GUIs using the LVGL library. Finally, you&#8217;ll learn to display text on the screen and detect touch.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1.1 \u2013 Introducing the ESP32 CYD Board<\/li>\n\n\n\n<li>1.2 \u2013 ESP32 CYD Board Pinout<\/li>\n\n\n\n<li>1.3 \u2013 Introducing the 2.8 TFT ILI9341 Touchscreen Display<\/li>\n\n\n\n<li>1.4 \u2013 Quick Introduction to LVGL<\/li>\n\n\n\n<li>1.5 \u2013 Installing Arduino IDE 2<\/li>\n\n\n\n<li>1.6 \u2013 Testing the Installation<\/li>\n\n\n\n<li>1.7 \u2013 Installing Libraries<\/li>\n\n\n\n<li>1.8 \u2013 Testing the Display<\/li>\n\n\n\n<li>1.9 \u2013 Testing the Touchscreen<\/li>\n\n\n\n<li>1.10 \u2013 Calibrating Your Touchscreen<\/li>\n\n\n\n<li>1.11 \u2013 Troubleshooting<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 2: Text, Buttons, Switches, and Sliders<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-2-Basic-Widgets.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 2 Basic Widgets\" class=\"wp-image-161329\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-2-Basic-Widgets.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-2-Basic-Widgets.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>You\u2019ll learn how to display basic widgets on the screen: <strong>text<\/strong>, <strong>buttons<\/strong>, <strong>switches<\/strong>, and <strong>sliders<\/strong>, and how to make something happen when you interact with them like changing something on the interface and controlling outputs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2.1 \u2013 Creating a Basic Button<\/li>\n\n\n\n<li>2.2 \u2013 Creating a Button with Events<\/li>\n\n\n\n<li>2.3 \u2013 Two-State Button and Toggle Switches<\/li>\n\n\n\n<li>2.4 \u2013 Styling the Buttons<\/li>\n\n\n\n<li>2.5 \u2013 Creating a Basic Slider<\/li>\n\n\n\n<li>2.6 \u2013 Putting it All Together<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 3: Display Data from Sensors<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-3-Display-Data.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 3 Display Data\" class=\"wp-image-161330\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-3-Display-Data.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-3-Display-Data.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>In this Module, you\u2019ll learn how to connect a sensor to the CYD board and how to get and display readings from the sensor. You\u2019ll learn to display the readings in different formats: text, table, vertical bars, and chart.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3.1 \u2013 Basic Temperature Display<\/li>\n\n\n\n<li>3.2 \u2013 Display Data from Sensors on Vertical Bars<\/li>\n\n\n\n<li>3.3 \u2013 Display Sensor Data on a Table<\/li>\n\n\n\n<li>3.4 \u2013 Display Sensor Data on a Chart<\/li>\n\n\n\n<li>3.5 \u2013 Display Temperature on a Curved Gauge<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 4: User Input<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-4-User-Input.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 4 User Input\" class=\"wp-image-161331\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-4-User-Input.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-4-User-Input.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>In this module, you\u2019ll learn how to get user input. We&#8217;ll cover drawing a <strong>keypad <\/strong>to build a basic locker, a <strong>spinbox <\/strong>to set the threshold value to create a <strong>thermostat<\/strong>, and input fields with a <strong>keyboard<\/strong> to create a Wi-Fi Manager.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>4.1 \u2013 Input Keypad \u2013 Basic Locker<\/li>\n\n\n\n<li>4.2 \u2013 Temperature Sensor Threshold with Input Field (Thermostat)<\/li>\n\n\n\n<li>4.3 \u2013 Wi-Fi Manager (Inserting Your Network Credentials)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 5: Integrating with MQTT<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-5-MQTT.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 5 MQTT\" class=\"wp-image-161332\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-5-MQTT.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-5-MQTT.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>Learn how to integrate MQTT into your project. Publish messages to MQTT topics by clicking on buttons on the screen and display received messages by subscribing to MQTT topics.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>5.1 \u2013 Introducing MQTT<\/li>\n\n\n\n<li>5.2 \u2013 Set Up Mosquitto MQTT Broker<\/li>\n\n\n\n<li>5.3 \u2013 Installing MQTT Libraries<\/li>\n\n\n\n<li>5.4 \u2013 Introducing and Installing Node-RED<\/li>\n\n\n\n<li>5.5 \u2013 Setting Up the Node-RED Flow<\/li>\n\n\n\n<li>5.6 \u2013 Publish MQTT Messages (Button, Toggle Button, and Slider)<\/li>\n\n\n\n<li>5.7 \u2013 Subscribe to MQTT Messages and Display on the Screen<\/li>\n\n\n\n<li>5.8 \u2013 MQTT Publish and Subscribe (Synchronize with Node-RED)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 6: Integrating with Wi-Fi<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-6-Wi-Fi.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 6 Wi-Fi\" class=\"wp-image-161333\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-6-Wi-Fi.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-6-Wi-Fi.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>This Module covers how to get data from the internet and display it on the screen. You\u2019ll learn how to add a button to request data and add data to a table. Finally, you\u2019ll learn how to create a web server that synchronizes in real time with the display interface.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>6.1 \u2013 Display Data from the Web<\/li>\n\n\n\n<li>6.2 \u2013 Synchronizing a Web Server with the CYD Screen<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Module 7: More Features and Other Widgets<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"281\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-7-More-Featured-Other-Widgets.jpg?resize=500%2C281&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"LVGL: Creating GUIs for the ESP32 eBook \u2013 Module 7 More Features and Other Widgets\" class=\"wp-image-161334\" style=\"width:500px\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-7-More-Featured-Other-Widgets.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build_GUIs-for-ESP32-Projects-Module-7-More-Featured-Other-Widgets.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<p>This Module covers how to display custom images on the screen and how to make them clickable so that you can interact with them. We\u2019ll also cover how to display tabs so that you can organize multiple screens with different widgets on the GUI.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>7.1 \u2013 Displaying an Image on the Screen<\/li>\n\n\n\n<li>7.2 \u2013 Display and Interact with Images<\/li>\n\n\n\n<li>7.3 \u2013 Creating Tabs (Multiple Screens)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What You&#8217;ll Learn?<\/h2>\n\n\n\n<p>Here&#8217;s a quick summary of what you&#8217;ll learn by following the examples in this eBook:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the LVGL library to create GUIs for ESP32 projects;<\/li>\n\n\n\n<li>Create text labels, buttons, sliders, tables, charts, vertical bars, text areas for user input, and more.<\/li>\n\n\n\n<li>Build interfaces to control outputs using buttons and sliders.<\/li>\n\n\n\n<li>Display sensor readings on the screen in different formats: text labels, vertical bars, charts, and tables.<\/li>\n\n\n\n<li>Add user input using text fields.<\/li>\n\n\n\n<li>Create a keypad and keyboard for user input.<\/li>\n\n\n\n<li>Request data from the internet and display it on the screen.<\/li>\n\n\n\n<li>Synchronize the screen interface with a web server page.<\/li>\n\n\n\n<li>Integrate MQTT in your projects: click on buttons to publish messages and display received messages by subscribing to topics.<\/li>\n\n\n\n<li>Display and interact with images.<\/li>\n\n\n\n<li>Create multiple tabs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites (recommended but not mandatory)<\/h3>\n\n\n\n<p>To follow this eBook, we recommend that you be <strong>familiar with programming the ESP32 using the Arduino IDE<\/strong>. You should know basic concepts such as controlling outputs like LEDs, reading inputs, and using PWM. You should also be familiar with basic circuits, such as wiring an LED to the ESP32.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which Displays\/Boards Were Tested with this eBook?<\/h3>\n\n\n\n<p>All examples and projects in this eBook were tested with the following hardware:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><span style=\"text-decoration: underline;\">Recommended:<\/span><\/strong> ESP32 Cheap Yellow Display 2.8 inch with Resistive Touchscreen (ESP32 2432S028R)<\/li>\n\n\n\n<li><strong>Optional:<\/strong> TFT LCD Resistive Touchscreen Display \u2013 2.8 inch ILI9341 240\u00d7320 + ESP32 DOIT board (or similar ESP32 model)<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-jetpack-tiled-gallery aligncenter is-style-rectangular\"><div class=\"\"><div class=\"tiled-gallery__gallery\"><div class=\"tiled-gallery__row\"><div class=\"tiled-gallery__col\" style=\"flex-basis:50.00000%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-Cheap-Yellow-Display-Line-Chart-BME280-Temperature-Sensor.jpg?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"ESP32 Cheap Yellow Display Line Chart BME280 Temperature Sensor\" data-height=\"337\" data-id=\"159523\" data-link=\"https:\/\/randomnerdtutorials.com\/esp32-cheap-yellow-display-line-chart-bme280-temperature-sensor\/\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-Cheap-Yellow-Display-Line-Chart-BME280-Temperature-Sensor.jpg\" data-width=\"600\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-Cheap-Yellow-Display-Line-Chart-BME280-Temperature-Sensor.jpg?ssl=1\" data-amp-layout=\"responsive\" aria-label=\"Open image 1 of 2 in full-screen\"\/><\/figure><\/div><div class=\"tiled-gallery__col\" style=\"flex-basis:50.00000%\"><figure class=\"tiled-gallery__item\"><img decoding=\"async\" srcset=\"https:\/\/i1.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-TFT-Touchscreen-Display-HTTP-Wi-Fi-Request-Weather.jpg?strip=info&#038;w=600&#038;ssl=1 600w\" alt=\"ESP32 TFT Touchscreen Display HTTP Wi-Fi Request Weather\" data-height=\"337\" data-id=\"159524\" data-link=\"https:\/\/randomnerdtutorials.com\/esp32-tft-touchscreen-display-http-wi-fi-request-weather\/\" data-url=\"https:\/\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-TFT-Touchscreen-Display-HTTP-Wi-Fi-Request-Weather.jpg\" data-width=\"600\" src=\"https:\/\/i1.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/06\/ESP32-TFT-Touchscreen-Display-HTTP-Wi-Fi-Request-Weather.jpg?ssl=1\" data-amp-layout=\"responsive\" aria-label=\"Open image 2 of 2 in full-screen\"\/><\/figure><\/div><\/div><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Invitation to Join our Private Forum!<\/h2>\n\n\n\n<p>This eBook comes with an opportunity to join our private Forum of like-minded people where you can ask questions about the eBook or other related subjects. You&#8217;ll get direct help from us (Rui and Sara) or from other active members of the community.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"599\" height=\"423\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/03\/forum-questions-and-answers.png?resize=599%2C423&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"\" class=\"wp-image-54929\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/03\/forum-questions-and-answers.png?w=599&amp;quality=100&amp;strip=all&amp;ssl=1 599w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2018\/03\/forum-questions-and-answers.png?resize=300%2C212&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"sign-up\">Download the eBook<\/h2>\n\n\n\n<div class=\"wp-block-columns has-2-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list bulletnospace\">\n<li><strong>New eBook &#8211; updated September 2, 2024<\/strong><\/li>\n\n\n\n<li>7 Modules<\/li>\n\n\n\n<li>PDF eBook with 450 pages<\/li>\n\n\n\n<li>Source code (Arduino sketches)<\/li>\n\n\n\n<li>Parts list<\/li>\n\n\n\n<li>Step-by-step instructions<\/li>\n\n\n\n<li><span style=\"font-size: inherit; background-color: initial;\">Unlimited updates<\/span><\/li>\n\n\n\n<li>Exclusive access to our private forum<\/li>\n\n\n\n<li><span style=\"font-size: inherit; background-color: initial;\">English language<\/span><\/li>\n\n\n\n<li>Created by Rui Santos and Sara Santos<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=127338\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?resize=400%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Learn LVGL Build GUIs for ESP32 Projects new eBook cover\" class=\"wp-image-161317\" style=\"width:270px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?w=400&amp;quality=100&amp;strip=all&amp;ssl=1 400w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?resize=240%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 240w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/figure><\/div><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center\"><a class=\"button rntyellow\" href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=127338\">GET THE EBOOK | <strike>$47<\/strike> $37 USD \u00bb<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=127338\" title=\"\">Click here to get the eBook | <strike>$47<\/strike> $37 USD<\/a><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p><strong>Note:<\/strong>&nbsp;after your purchase,&nbsp;you receive an email with a username and password that you use to access the members&#8217; area and download the PDF eBook.<\/p>\n\n\n\n<p>Have questions?&nbsp;Email me at <a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/randomnerdtutorials.com\/support<\/a>&nbsp;anytime for any reason.<\/p>\n\n\n\n<p>You won\u2019t regret it. My 60-day money-back guarantee backs up every word in this message. Proceed with confidence.&nbsp;See you inside,<\/p>\n\n\n\n<p>&#8211; Rui Santos and Sara Santos<\/p>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"81987\" class=\"elementor elementor-81987\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8061b91 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8061b91\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-6e373e8\" data-id=\"6e373e8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d02f327 elementor-widget elementor-widget-image\" data-id=\"d02f327\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"134\" height=\"133\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/03\/money-back-logo.png?resize=134%2C133&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-thumbnail size-thumbnail wp-image-81988\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/03\/money-back-logo.png?w=134&amp;quality=100&amp;strip=all&amp;ssl=1 134w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2019\/03\/money-back-logo.png?resize=80%2C80&amp;quality=100&amp;strip=all&amp;ssl=1 80w\" sizes=\"(max-width: 134px) 100vw, 134px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-66 elementor-top-column elementor-element elementor-element-a11ade3\" data-id=\"a11ade3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-77abfc0 elementor-widget elementor-widget-heading\" data-id=\"77abfc0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Backed by a 60 day 100% money-back guarantee<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e08d4e6 elementor-widget elementor-widget-text-editor\" data-id=\"e08d4e6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>If you don\u2019t like the course, I don\u2019t want your money. Seriously, that\u2019s why I offer a 60 days money back guarantee. <a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noopener\">Email me here<\/a> and I will promptly refund all your money. No questions, no hassles \u2013 it\u2019s that simple.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Frequently Asked Questions<\/h2>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"159510\" class=\"elementor elementor-159510\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-103fb41f elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"103fb41f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5228e7ec\" data-id=\"5228e7ec\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-619a327b elementor-widget elementor-widget-toggle\" data-id=\"619a327b\" data-element_type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1631\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1631\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What is the recommended board\/display to follow the eBook?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1631\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1631\"><p><span style=\"text-decoration: underline;\"><strong>We recommend<\/strong><\/span> an ESP32 Cheap Yellow Display (CYD) 2.8 inch (ESP32\u20112432S028R) with a resistive touchscreen.<\/p><p>Alternatively, you can get a TFT LCD Touchscreen (resistive) Display \u2013 2.8 inch ILI9341 240\u00d7320 and wire it to a &#8220;regular ESP32 board&#8221;.<\/p><p>Other display modules with the ILI9341 driver and resistive touchscreens should also be compatible, but we didn\u2019t test them and we don\u2019t have the configuration files for those different modules.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1632\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-1632\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">My board has a capacitive touchscreen. Is it compatible?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1632\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-1632\">No. At the moment, our examples are only compatible with resistive touchscreen.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1633\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-1633\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What software is used to program the ESP32?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1633\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-1633\">To program the ESP32, we\u2019ll use Arduino IDE 2 with the ESP32 Arduino Core version 3. To create the graphical user interfaces, we\u2019ll use the LVGL library.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1634\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-1634\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Do I have to pay to use LVGL?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1634\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-1634\">No. LVGL is a free to use open-source library.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1635\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"button\" aria-controls=\"elementor-tab-content-1635\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Which LVGL version is used?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1635\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"region\" aria-labelledby=\"elementor-tab-title-1635\">Throughout the eBook we are using the latest version of the LVGL 9.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1636\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"button\" aria-controls=\"elementor-tab-content-1636\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Do you cover SquareLine Studio?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1636\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"region\" aria-labelledby=\"elementor-tab-title-1636\">No. SquareLine Studio is <strong>not<\/strong> covered in this eBook.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1637\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"button\" aria-controls=\"elementor-tab-content-1637\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">My Cheap Yellow Display has a different size. Can I follow along?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1637\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"region\" aria-labelledby=\"elementor-tab-title-1637\"><p>Most displays that use the\u00a0<strong>ILI9341 driver and resistive touchscreen<\/strong> should be compatible with our projects. However, you must know how to set up the configuration file for your exact model. Different models will require different configuration files.<\/p><p>We only cover the configuration files for the:<\/p><ul><li>ESP32 Cheap Yellow display 2.8 inch (ESP32 2432S028R)<\/li><li>TFT LCD Touchscreen Display \u2013 2.8 inch ILI9341 240\u00d7320.<\/li><\/ul><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1638\" class=\"elementor-tab-title\" data-tab=\"8\" role=\"button\" aria-controls=\"elementor-tab-content-1638\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">I\u2019m not familiar with the ESP32 board. Can I follow along?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1638\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"8\" role=\"region\" aria-labelledby=\"elementor-tab-title-1638\">Yes, our tutorials are step-by-step, so you should be able to follow along. However, we highly recommend that you are familiar with basic concepts such as how to upload code to the ESP32 board, control outputs, and retrieve data from basic sensors. We have several eBooks and free tutorials dedicated to the ESP32 that you can choose from.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1639\" class=\"elementor-tab-title\" data-tab=\"9\" role=\"button\" aria-controls=\"elementor-tab-content-1639\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What hardware do you need to follow the eBook?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1639\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"9\" role=\"region\" aria-labelledby=\"elementor-tab-title-1639\"><p>The following list shows all the parts required to complete the projects and examples in this eBook:<\/p><ul><li>ESP32 Cheap Yellow Display 2.8 inch with Resistive Touchscreen (ESP32 2432S028R)<\/li><li>BME280 sensor<\/li><li>Raspberry Pi (for the MQTT Module):<ul><li>MicroSD card for the Raspberry Pi OS (at least 32GB class 10)<\/li><li>Raspberry Pi power supply (5V DC 2A power supply, USB-C)<\/li><\/ul><\/li><\/ul><p>Or, if you want to use a separate TFT LCD with a regular ESP32, you need:<\/p><ul><li>TFT LCD Resistive Touchscreen Display \u2013 2.8 inch ILI9341 240\u00d7320<\/li><li>ESP32 DOIT board (or similar ESP32 model)<\/li><li>BME280 sensor<\/li><li>2x LEDs<\/li><li>2x 220 Ohm resistor<\/li><li>LDR (light-dependent resistor)<\/li><li>Jumper wires<\/li><li>Breadboard<\/li><li>Raspberry Pi (for the MQTT Module):<ul><li>MicroSD card for the Raspberry Pi OS (at least 32GB class 10)<\/li><li>Raspberry Pi power supply (5V DC 2A power supply, USB-C)<\/li><\/ul><\/li><\/ul><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-16310\" class=\"elementor-tab-title\" data-tab=\"10\" role=\"button\" aria-controls=\"elementor-tab-content-16310\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Why should I buy it?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-16310\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"10\" role=\"region\" aria-labelledby=\"elementor-tab-title-16310\"><p>Currently, there\u2019s very little information on how to get started with LVGL on the ESP32 boards. If you search for examples online, you\u2019ll see there is not much information and most examples don\u2019t work. All our examples were tested with the latest version of the LVGL 9 library and the latest ESP32 core (version 3).<\/p><p>If you want to start using LVGL to create awesome GUIs for your ESP32 projects, this is the getting started guide that you need.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-16311\" class=\"elementor-tab-title\" data-tab=\"11\" role=\"button\" aria-controls=\"elementor-tab-content-16311\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-right\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Have a question?<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-16311\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"11\" role=\"region\" aria-labelledby=\"elementor-tab-title-16311\"><p>If you still have questions after reading this page please\u00a0<a href=\"https:\/\/randomnerdtutorials.com\/support\" target=\"_blank\" rel=\"noopener noreferrer\">email us here<\/a>. We\u2019ll do our best to answer your questions as quick as possible.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Meet the Authors<\/h2>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"115775\" class=\"elementor elementor-115775\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-476c02f9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"476c02f9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-31811116\" data-id=\"31811116\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-18659e88 elementor-widget elementor-widget-testimonial\" data-id=\"18659e88\" data-element_type=\"widget\" data-widget_type=\"testimonial.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial-wrapper\">\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-testimonial-meta elementor-has-image elementor-testimonial-image-position-aside\">\n\t\t\t\t<div class=\"elementor-testimonial-meta-inner\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-image\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"267\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/M_Photo_Rui_Santos-1.jpg?fit=300%2C267&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-full size-full wp-image-115774\" alt=\"\" \/>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-details\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-name\">Rui Santos<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-job\">RandomNerdTutorials.com<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69c0f03a elementor-widget elementor-widget-text-editor\" data-id=\"69c0f03a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<em>Hi! I&#8217;m <strong>Rui Santos<\/strong>, the founder of the Random Nerd Tutorials blog. I have a master&#8217;s degree in Electrical and Computer Engineering from FEUP and I\u2019ve been running the RNT blog for more than 10 years. I\u2019ve written hundreds of tutorials covering the usage of different microcontrollers (ESP32, ESP8266, Raspberry Pi, Arduino, and more) on the Internet of Things and Home Automation fields. We also self-published about a dozen eBooks on these subjects, helping thousands of students, engineers, and hobbyists passionate about electronics all over the world.<\/em>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"115771\" class=\"elementor elementor-115771\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7453abdb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7453abdb\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-78d6ac3e\" data-id=\"78d6ac3e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5cd0036 elementor-widget elementor-widget-testimonial\" data-id=\"5cd0036\" data-element_type=\"widget\" data-widget_type=\"testimonial.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial-wrapper\">\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-testimonial-meta elementor-has-image elementor-testimonial-image-position-aside\">\n\t\t\t\t<div class=\"elementor-testimonial-meta-inner\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-image\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"497\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Sara-photo-7.jpg?fit=500%2C497&amp;quality=100&amp;strip=all&amp;ssl=1\" class=\"attachment-full size-full wp-image-115770\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Sara-photo-7.jpg?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Sara-photo-7.jpg?resize=300%2C298&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Sara-photo-7.jpg?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-details\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-name\">Sara Santos<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial-job\">RandomNerdTutorials.com<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16e8f894 elementor-widget elementor-widget-text-editor\" data-id=\"16e8f894\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<em>Hi! I&#8217;m <strong>Sara Santos<\/strong>, and I work with Rui at Random Nerd Tutorials since 2015. I have a master&#8217;s degree in Bioengineering from FEUP. I create, write and edit the tutorials and articles for the RNT and Maker Advisor blogs, and I\u2019ve written several of the eBooks available on the RNT blog. I also help you by answering your questions on our private forum and on our blog\u2019s comments section. I love books, writing, cats, and a hot cup of tea. I also love travel and writing about our travel adventures on our travel blog (tripiwi.com).<\/em>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">See what others are saying about our work<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>(&#8230;) <em>I have 11 of your courses and love all of them. I recommend your courses and web site in all my correspondence for anyone in learning Arduino, ESP32, MicroPython, RaspPi subjects. Even though this is just a hobby for me, your stuff has given me more enjoyable learning than any other authors on this &#8211; for over 30 years. Thanks for all you do.<\/em><\/p>\n<cite>William Taylor<\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Thank you Rui. Anyone wondering whether you bring value can rely on my word. I&#8217;ve purchased hundreds of books over a 45 year career as engineer and entrepreneur. NONE of these books have approached your excellent method of teaching a subject. You have a rare gift as a teacher. Glad to have made the purchases.<\/em><\/p>\n\n\n\n<p><em>Paul<\/em><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>I want to congratulate you on the manuals you have created, they are the best of the best that I have seen in many years. (&#8230; ) Your explanations are very clear and very detailed, as if you were a teacher\u2026<\/em><\/p>\n<cite><em>Tino Fern\u00e1ndez<\/em><\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>I purchased all of your courses. I have completed the ESP32-CAM Projects and SMART Home courses and have never seen such great e-Books for Raspberry Pi, Arduino and ESP microcontrollers before. Your chosen modules show great possibilities and the step by step instructions are very clear, very useful. This saved me a lot of frustration and I could quickly achieve great results. Thank you very much.<\/em><\/p>\n<cite>Roland Branstaetter<\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Thank you for some incredibly useful eBooks and tutorials. I have learnet so much about ESP8266, NodeMCU etc and now Pi Pico. Such a valuable resource.<\/em><\/p>\n<cite><em>Paul Bartlett<\/em><\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>I want to thank you for the high quality of your projects. Too many others just list a series of tasks but not what to do when they do not go as planned. The detail that you have put into the writeups is amazing. I am working with my 10 year old grandson to help this interest in electronics and software. It would be much harder without your guides<\/em>.<\/p>\n<cite>Doug Hogg<\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Thank you. I&#8217;ve bought two of your course books and they really accelerate the learning curve with the result I wanted.<\/em><\/p>\n<cite>Paul Kroshko<\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Thank you! Your articles are always exactly what I need when I order a new board and want to get up-to-speed working with it right away.<\/em><\/p>\n<cite>David Mack<\/cite><\/blockquote>\n\n\n\n<p class=\"has-text-align-center\"><strong>AS SEEN ON&#8230;<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"120\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/11\/FEATURED-LOGOS.png?resize=800%2C120&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"FEATURED LOGOS\" class=\"wp-image-13911\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/11\/FEATURED-LOGOS.png?w=800&amp;quality=100&amp;strip=all&amp;ssl=1 800w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2015\/11\/FEATURED-LOGOS.png?resize=300%2C45&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=127338\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"500\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?resize=400%2C500&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Learn LVGL Build GUIs for ESP32 Projects new eBook cover\" class=\"wp-image-161317\" style=\"width:330px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?w=400&amp;quality=100&amp;strip=all&amp;ssl=1 400w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-image.jpg?resize=240%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 240w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><a class=\"button rntyellow\" href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=127338\">GET THE EBOOK | <strike>$47<\/strike> $37 USD \u00bb<\/a><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><a href=\"https:\/\/rntlab.com\/checkout\/?add-to-cart=127338\" title=\"\">Click here to get the eBook | <strike>$47<\/strike> $37 USD<\/a><\/strong><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn LVGL: Build GUIs for ESP32 Projects (eBook) Learn how to build Graphical User Interfaces (GUIs) for ESP32 Projects using LVGL (Light Versatile Graphics Library) with the Arduino IDE. GET &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Learn LVGL: Build GUIs for ESP32 Projects (eBook)\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/learn-lvgl-esp32-ebook\/#more-159279\" aria-label=\"Read more about Learn LVGL: Build GUIs for ESP32 Projects (eBook)\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":161318,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[266,224,242,314],"tags":[],"class_list":["post-159279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-no-ads","category-premium","category-premium-project","category-product"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2024\/08\/Learn-LVGL-Build-GUIs-for-ESP32-Projects-eBook-cover-featured-image.jpg?fit=1920%2C1080&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/159279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=159279"}],"version-history":[{"count":44,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/159279\/revisions"}],"predecessor-version":[{"id":167279,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/159279\/revisions\/167279"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/161318"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=159279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=159279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=159279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}