We are placing the final touches on a new course, titled “ESP32 Unleashed”.
In this course, I’ll show you how to use the ESP32 dev kit to make a gadget that contains sensors, a touch screen, a custom PCB (no loose wires!), and Cloud services (you can even speak to it!).
The real “kick” is that I also show you how to use PlatformIO and MS Code instead of the Arduino IDE. This project is really a platform (no pun intended) from where you can kickstart your own projects.
This video is the first lecture of the first section of the course and is packed with the details.
We hope to have this course published within June.
Please leave your comments/questions below.
(To turn on the captions, click on the CC button)
Full lecture transcript
[00:00:00] Hi, in this lecture I’m going to talk about what is this course about and how it’s organized.
[00:00:07] And by the end of it, in a few minutes from now, you’ll have a very good understanding of what to expect as you are embarking into this new course.
[00:00:15] So let’s begin by having a look at the two major objectives of this course.
[00:00:21] The first one is to introduce you to PlatformIO.
[00:00:26] And the second one is to give you experience working with the ESP32 on a real life comprehensive project.
[00:00:36] Let’s drill into these two objectives.
[00:00:39] First of all, an introduction to PlatformIO.
[00:00:52] But for now I just want to say that PlatformIO is an integrated development environment not just for the Arduino or the ESP32 but for many many embedded systems.
[00:01:03] And you can use it actually for many other purposes, programming purposes.
[00:01:08] So it’s a very good environment that makers in general would benefit knowing.
[00:01:15] It’s going to help you create and work on a much more complicated projects compared to what you’ve been able to do with the Arduino IDE.
[00:01:25] And I believe in learning by doing, so the best way to become familiar with PlatformIO and build up your skills with it is hands on.
[00:01:37] So we needed a project. And I’ll talk about the project in the next slide.
[00:01:42] What you will achieve by completing this course in relation to PlatformIO:
[00:01:45] Of course, to be able to install it and set it up using MS Code as the editor, you will learn how to create and configure a new project, and then as we’re going through the multiple iterations of the ESP32 IoT project, you will learn all the most important and most frequently used features and capabilities of PlatformIO.
[00:02:07] And by the end of it you will be a very capable user of PlatformIO.
[00:02:13] You’ll be able to just use these skills in your own projects.
[00:02:28] It will give you the tools that you need in order to create amazing projects around the ESP32 and other microcontrollers of course.
[00:02:38] Now the second objective is to learn how to create full projects around the ESP32. If you have completed my previous course “ESP32 For Busy People“, or you have some basic working knowledge of the ESP32, you properly have already completed small projects with one or two components perhaps.
[00:03:02] What I want to do with this objective in this course is to take those skills and extend them so that you can end up at the end of the course with a gadget that has a comprehensive array of features.
[00:03:19] As you’ll see, it’s going to be multiple components, there’s a PCB there, the software is written in a much more systematic and appropriate way for larger projects using PlatformIO and proper C++ methodologies.
[00:03:35] Even using source control which we haven’t really done much in previous courses.
[00:03:41] So by the end of this course, in relation to the comprehensive project around the ESP32, you will have applied and you will have extended your knowledge to create a gadget that combines what I believe a fascinating Cloud technologies.
[00:03:59] And of course you’ll be able to use several new hardware modules that we haven’t covered in the “ESP32 For Busy People” course.
[00:04:06] In particular, for example, the TFT display.
[00:04:12] Now let’s have a look at the organization of this course.
[00:04:14] You can see a summary here in a flow diagram.
[00:04:18] In the first section, which is what you’re going through right now, we’re going to talk about the course in general with the components organization and so on.
[00:04:29] So you’re going through it right now.
[00:04:32] After that I’m going to walk you through the working project.
[00:04:36] I’m going to show you what the end project looks like.
[00:04:39] But I’m going to show you that in the Arduino IDE since we haven’t really spoken at that point still a PlatformIO.
[00:04:47] I should say here that I developed the first iteration of the first prototype of the firmware for the ESP32 IoT gadget on the Arduino IDE.
[00:05:00] And I did that because I wanted to see how I can convert a comprehensive and large Arduino IDE-based project into PlatformIO because I believe that that would give me the ability and the opportunity to actually compare the two side by side so that I can achieve the same end result, the same functional result.
[00:05:23] So that’s why in the next section where I’m going to walk you through the project I’m going to use the Arduino IDE to show you the firmware, and then of course I’m going to talk about the hardware as well.
[00:05:41] So, I’ve got a section dedicated to show you how to install these tools and your computer and set them up and get them ready for action.
[00:05:51] Now a very important section in this course is the one where I’m going to present you and explain three very important features of C++ that when we use the Arduino IDE we don’t really need to worry too much about.
[00:06:10] You can actually do a lot without having to worry about them at all.
[00:06:14] But when we move into a PlatformIO and MS Code, I believe that because we are going to be working with more complicated comprehensive projects, that is a very good opportunity to understand those concepts.
[00:06:27] And I’m talking in particular here about pointers, and how to split programs into smaller files using appropriate C++ methods, and talking about name spaces.
[00:06:43] After that the real action begins.
[00:07:00] We are going to go through 13 prototyping iterations.
[00:07:06] I’m going to talk about what’s inside each of those iterations very very shortly in this lecture, but for now just know that you’re not going to just code this application in one go.
[00:07:17] We’re going to take steps.
[00:07:18] And that’s a total of 13 steps.
[00:07:23] So in each step we’ll be learning something new.
[00:07:25] We’ll be adding a new feature in our application.
[00:07:34] And in that way we can break down the learning load across these 13 iterations.
[00:07:44] So we’ll be progressing programmatically.
[00:07:46] We’ll be using more features on the hardware and even on the Cloud and cloud services.
[00:07:55] By the end of this course, you will have unlocked some seriously awesome new skills.
[00:07:59] But I’ll let you be the judge of that.
[00:08:04] Now let’s have a look at what happens inside each prototyping iteration.
[00:08:10] So I’ve broken into the prototyping iteration box, expanded it into another flowchart as you can see here.
[00:08:19] And these are the steps that typically consist of each iteration.
[00:08:24] So first we’ll be doing a little bit of planning.
[00:08:26] We’ll set the objectives for the iteration.
[00:08:29] Most often we’ll have to do a little bit of additional learning.
[00:08:33] So for example when we introduce touch capability on the TFT screen we’ll have to spend first a little bit of time to learn how to use the touch capability programmatically.
[00:08:46] And once we have that done we’ve got our objectives, we’ve got a plan set, and we understand the new technology or the new feature that we are about to use, we go into execution.
[00:08:55] And execution has to do with the programming component.
[00:09:00] We’re go into MS Code and then enter the code needed to implement a new feature.
[00:09:05] After that we are going to test.
[00:09:08] So we never move on to the next iteration until the current iteration is successfully completed.
[00:09:14] And that’s what the testing is about.
[00:09:17] If testing reveals bugs and problems we’ll go back to execution, fix them and then retest.
[00:09:36] I’m also going to show you how to use git, of course.
[00:09:23] If our test is completed without any error messages, without any bugs then we’ll commit those changes to our revision control system, source control system which is git.
[00:09:39] You’ll see me using git in action in every one of those iterations.
[00:09:46] Okay so I hope that this is exciting and you’re eager to start.
[00:09:50] Let’s move on to the next lecture really quickly we’ll have a look at the software requirements for this course, which is going to be followed by a couple of other introductory lectures that I strongly advise you two and a look and have a listen to before you actually move to the next section.
[00:10:10] Let’s go.