Connect ESP32 to WiFi (ESP32 + Arduino series)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
- [Lecturer] The ESP32 is an amazing chip for building IoT devices because it has WiFi built-in. But how do you use it? In this video, I'll show you how to connect the ESP32 to your WiFi network. The first step is to include the WiFi headers. I will do that at the top of my file, and I will say include WiFi dot H. Now to actually be able to connect to WiFi, we need to know two things, the name of the network that you want to connect to and the password of that network. So at the top of my file, I will define two constants. I will define WiFi underscore network with the name of my network, and I will define WiFi underscore password with the password of my network. Next, I will also define a timeout called WiFi underscore a timeout underscore, MS. And this will control how long the ESP32 can attempt to connect to a WiFi network. You don't want it to keep trying forever. Instead, when you fail to connect to WiFi, it might be better to restart the ESP or to send it into deep sleep mode to save the battery, if you have one. Now I will set this to 20 seconds. So in milliseconds, that becomes 20,000. Okay, now we're ready to start connecting. I will create a new function called, connect to WiFi, and this will take care of all the necessary steps. Now, before we do anything, I will print something to the serial so that we know what the ESP is doing. I'll say serial dot print, connecting to WiFi. Now the first step is to set the mode of the WiFi chip. There are basically two modes you can use, STA or station mode and AP or access point mode. Now, when you want to connect to an existing WiFi network, you have to use station mode. So that's what I'll do here. I'll say WiFi dot mode and I will pass it WiFi underscore STA. AP mode can be interesting if you want the ESB to create its own WiFi network. And this can be useful to let someone else configure it by connecting to it. But that's for another video. Now we can ask the ESB to connect to our WiFi network by calling WiFi dot begin, and passing along our network name, and password. So WiFi underscore network and WiFi underscore password. This will start the WiFi connection process. Next up, we want to keep track of how long the ESP has been trying to connect to WiFi so that we can enforce our timeout. I will do that by creating an unsigned long variable called, start attempt time. And I will set this to millis. Now millis is a function that will return the uptime of your ESP32. And so in the start attempt time variable, we will store the time at which we started our WiFi connection attempt. Now we're going to create a wild loop that keeps looping as long as we don't have a WiFi connection and as long as we haven't exceeded our timeout. Now we can check the WiFi status by calling WiFi dot status. And I'll say that we're gonna loop while it is not equal to WL underscore connected. Then to make sure that we're still within our timeout, I will take the current uptime of our board and I will subtract our start attempt time from it. And then we're gonna see and we're gonna make sure that this is still smaller than our WiFi timeout, MS variable. So once more, this will keep looping while the WiFi isn't connected and while we haven't reached our timeout yet. Now inside this loop, I'm going to print a single dot to the serial so that we can see some progress. And then I will also add a small delay to it so that this function or this loop doesn't run too fast. Now at the end of this while loop, we have one of two possible situations. Either we are connected to WiFi or we've timed out and we're not connected. So I will check the status again by calling WiFi status and I will check if it's now connected. So I will say, "If WiFi dot status "does not equal WL underscore connected," then I will print something to the serial. I will say, "Serial dot print line failed," to say that we've failed connecting to WiFi. And after this line, you probably want to take some action, like put the ESP into deep sleep for a while or rebooted it completely. Now, this depends a bit on your use case and whether or not your board is battery powered. If you're not worried about battery life, then you might not need to time out at all. And you can just let the ESP32 keep trying to connect to WiFi forever. So I will leave this up to you. Now, if the WiFi is connected, I want to print that to the serial as well. So I'm gonna say, "Serial dot print connected." And we can also print the current IP address of our board by printing WiFi dot local IP. And that is our connect to WiFi function, all done. The last thing we have to do before we can flash it is we have to call this function somewhere and I will call it in the setup function. I will say, when the ESP boots, we're gonna initialize our serial monitor, and I'm going to say, "Connect to WiFi." I'm gonna save the file, and let's now flash it to our board. Quick side note. Behind the scenes, I flashed this exact program to my board, but I did change the WiFi credentials so that they would match with my setup. Now, once the flashing is done, I'm gonna open up the serial monitor. I'm gonna attach it to my board. And as you can see, it says, "Connecting to WiFi," then it says, "Connected," followed by the IP address of our board. So that's how you establish a WiFi connection with the ESP32. Thanks for watching. Don't forget to subscribe and check out the rest of these series if you want to learn more about Arduino and the ESP32.
Info
Channel: Simply Explained
Views: 119,056
Rating: undefined out of 5
Keywords: chip, free, introduction, education, cpp, basics, best practices, vscode, programming, platformio, lesson, howto, educate, uno, espressif, dummies, tutorial, sketch, microcontroller, visual studio code, training, learn, beginner, connected, automation, sensors, iot, esp32, sensor, arduino, embedded, esp8266, gpio, fundamentals, smart, adafruit, wireless, understand, basic tutorial, getting started, internet of things, internet, pin, wifi, things, course, freertos
Id: 6zbEVAXVBjI
Channel Id: undefined
Length: 6min 55sec (415 seconds)
Published: Fri May 22 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.