Video, how to implement basic ot programming in the sparkfun ESP 32 thing. In this video, we will look at various ways of implementing an OT update, and then implement the basic way to do the OT update directly from the Arduino ID. There are mainly three ways to implement OTL functionality in the ESP 32. They are categorized based on the ways the OTA update reaches the ESP 32. One, the basic way is to do the OTA update directly from the Arduino IDE a two. The second way is to do an OT update via a web server created by the ESP 32 itself.
Three, the advanced way to update your code is to use any ot a cloud management system, like the mongoose OS. Let's look at how to implement OTF programming directly from the Arduino IDE. The steps on implementation are as follows. The first step is to install any version of Python 2.7 if not already installed on your machine. When installing Python, make sure that you enable the add python.xc to path option in the installation setup. The second step is to upload the base ot routine serially.
The factory image in ESP 32 doesn't have an OT upgrade capability. So you need to load the OTF firmware on the ESP 32 through USB connection first, it's a mandatory step to update the firmware so that you're able to do the next updates over the air. The final step is to upload the new sketch over the air. Remember, you need to add the code for ot functionality in every sketch you upload. Otherwise, you lose ot capability and will not be able to do next upload over the air. Assuming that you have done the first tab, we are moving on to the second one.
First, download the basic ot codes dot zip file from the resources section of this video and extract it to get all the codes used in this video. Open the Enable underscore ot a.io file in the Arduino IDE, he makes sure that you are on the latest Arduino ID and the most recent package of ESP 32 Arduino code is installed. This is already covered in our previous course. First, let's discuss how this code works. Initially, we will import four important libraries for this feature to work. The Wi Fi dot h library is used here so that we can enable, configure and use the Wi Fi functionality.
The espm DNS dot h library is used to implement the mdns protocol for iOS Managing several networks. Whenever you create a web server by making the ESP 32 as an access point, the router which it connects to will assign an IP address. In most cases, this IP address will be dynamically set, meaning every time you reconnect the router, a new IP address will be allocated. Now imagine that you have half a dozen ESP 32 hosts connected to the network. It will be a pain to manage and find the ESP 32 we want to use or have access to in such a situation. Here comes the mdns protocol to the rescue mdns abbreviated as multicast Domain Name System is the protocol that map's the IP addresses of the devices to its host names.
Thus, by just knowing the host name, we can access a device directly instead of using IP addresses, which are harder to remember. This will come in handy when we are flashing an OT later in this video, coming back to the code. The final library we will input is, of course, the Arduino ot dot h library. This library gives us access to ot methods that allows us to configure the OTA updates, return error codes, track, update, progress, and so on. The next set of instructions are used to set the credentials of the Wi Fi network. Please edit this and add your wife and network credentials before uploading the code.
All Arduino programs should have one void setup and one void loop. Inside void setup loop. We first enable the serial monitor and then set the ESP 32 Wi Fi to station mode so that it can connect to the Wi Fi network. If the board was not able to connect to the WiFi network, it would show that the connection has failed in the serial monitor and will Restart the ESP 32 again to reinitiate the connection. This is done by this while loop. Once connected, the following instruction will show the IP address of the ESP 32 on the serial monitor.
The Arduino RTA dot set host name function is used to set the hostname of the ESP 32 as we have included mdns Library in this code, the IP address will be mapped to this hostname, making it easy for us to find the ESP 32 and flash new code over the air. Similarly, to avoid unauthorized ot updates, we set a password using the Arduino ot a dot Set password function. Here the password is set as pass. Once it is set to Arduino ot a dot begin function prepares the partition in the flash memory to accept OTA updates. The following codes will be escaped as There are callback functions that are invoked during different phases of the OT update. Inside the void loop, there is only a single instruction called add we know ot a dot handle.
This function starts the OTS service and updates the codes wirelessly. Any new updates to the code must be added after this instruction inside the void loop. When an OT update starts, the dot handle functions initiates a call back to the.on stat function, which prints out the started updating in a serial port. Similarly, on the end of an OT update, it calls back this function to print out the string and during the OT update the.on progress callback will keep on printing out the update progress in percentage. The progress callback uses the total available bytes and the number of bytes being written to print the current progress in percent. Also, if any errors happened during the OTA update the.on error callback will return any of the following errors.
Remember that while uploading a new code over the air, the ID will be using the network port and not the compote. Thus, you won't be able to see those odious statuses in Arduino ID, you will have to use any other serial monitor tool to view it. Usually we use it only when an IoT update has failed and we need to debug the error. Now connect your ESP 32 to your PC. After selecting the appropriate board name and port number in the Tools tab, upload the Enable underscore o ta code. Now open the serial monitor and you can see that it shows an IP address once it is connected.
If nothing is shown, press the reset button on the boat. You can now detach your ESP 32 from your PC and powered with a power bank, or a compatible battery, as the audio feature is now enabled. Make sure you're connected to the same network as the ESP 32. Now in the Arduino IDE II go to the port's tab, and you can see that a new port is open under the heading network ports. Here you can see the hostname ot ESP 32, which we defined using the mdns library, then the IP address of the device and finally the board name. You have now successfully created a pathway to update your ESP 32 over the air from your Arduino ID.
For now, the code we have uploaded does not do anything other than add the audio functionality. So let's move on to the final step which is flashing our code over the air. We are using a simple blink code so that you will know How to incorporate your own project code with ot functionality. Load the OT underscore program underscore one dot i n o code in Arduino ID. Now, scroll down to the end of the program. At the end of the word setup loop, we can see that the LED setup is done by defining the GPIO pin of the ESP 32 as an output pin, the sparkfun ESP 32 thing has an onboard led attached to GPIO five.
Now, inside the word loop, you can see that the blink code is inserted just after the Arduino ot a dot handle function. So basically, you must insert all the setup commands of your project to the end of the Void setup lobe and your main code inside the word loop after the dot handle function after making sure that the network port is set to the proper ESP 32 host name Click Upload. After compile ation, a pop up will ask you to enter the board password. Once when the authentication is successful, the OTA update starts. Here. We enter the password as pass.
Wait till the ID shows done uploading. Now you can see that the LED is blinking. Congratulations on doing your first auto update on the ESP 32. Let me ask you a question. Can you guess on which partition the OT underscore program underscore one code recites? Yes, it's the OT underscore zero partition.
Now modify the OT underscore program underscore one code to change the delay to let's say 2.5 seconds. And again, do an OT upload. This new code will recite in the OT underscore one partition. If we do yet another ot update, the OT underscore Zero partition will be overwritten, and the boot loader will be directed to boot from ot underscore zero instead of the OT underscore one partition. This is how a basic ot update can be done directly through the Arduino ID summary. In this video, we have covered the following topics, ways to implement ot updates in the ESP 32 and implementing basic ot updates through Arduino IDE II.
In the next video, we will look at how to implement an OT update through a web server created by the ESP 32.