ESP8266 is one of the most popular IoT device of its own type. It took the IoT sector advance to what it is today as many could work with it due to its cheap price(just $3). The ESP8266 has a successor the ESP32 which has WiFi and Bluetooth too. What more could we ask for when we had to design an IoT system.
The development board has the ESP-WRoom-32 Module containing a dual core 32 bit LX6 microprocessor (Tensilica Xtensa). These two processors can be controlled individually and operate at 80 to 240MHz adjustable clock frequency and performs upto 600 DMIPS (Dhrystone Million Instructions Per Second).
Its also has SRAM – 520KB, ROM – 448KB and Flash Memory – 4MB. The flash memory is for the code and the data storage. This storage is enough for al the large strings that make webpages, JSON/XML data, and other data. (We might think its is very little for now. But in the embedded systems we are always like to have development boards with small memory sizes.)
|Xtensa Dual Core 32-bit LX6|
|Upto 240MHz Clock Frequency|
|520kB internal SRAM|
|4MB External Flash|
|802.11b/g/n WiFi Transceiver|
|Dual Bluetooth (BLE and 4.2 )|
The ESP32 has the 802.11b/g/n HT40 WiFi Transceiver so it can connect to the WiFi and also communicate over the internet which makes it all the more easier for the IoT developers to work with one device. The ESP32 aslo has the capability of setting up its own network and can allow other devices to connect to it. The WiFi Direct is easy to setup and its data transfer speeds is better than bluetooth. The Dual Bluetooth makes the devices compatible with the old and the new devices. Hence this devices is the best for small IoT projects.
ESP32 Pin Out
The ESP32 has 48 Pins but not all the pins are physically available for the user.
Power Pins : There are 2 power pins on the ESP32. The VIN (Voltage Input) can be directly be used to power the ESP32 board. This pin has a 5V voltage regulator connected to it.
The 3.3V pin is and output pin from an on-board voltage regulator. This pin is used to power up peripheral devices connected to the ESP32.
GND : This pin is the ground of the ESP32. (Without this pin everything is incomplete)
GPIO : ESP32 has 25 GPIO (General Purpose Input/Output) which can be programmed to do many functions. All the GPIO pins can be pulled up or pulled down or set ot high-impedence depending on the user requirements. These pins can also be used as interrupts in two forms which are edge trigger and level trigger.
ADC Channels : ESP32 has 12-bit SAR ADC’s and has 15 channels that can measure it. All these pins are analog enabled pins. Some of the pins can be used to program and gain amplifier which can be used to measure small signals. ESP32 is desgined to measure voltages even in its sleep mode.
EN Pin : The chip is enabled when pulled HIGH. When pulled LOW the chip works at minimum power.
DAC Channels : ESP32 has two 8bit DAC to convert digital to analog and drive other circuits.
UART Pins : ESP32 works on two interfaces UART0 and UART2 which provide asynchronous communication. This communication speed goes upto 5Mbps. UART provides hardware management of the CTS and RTS signals and software flow control (XON and XOFF) too.
- Low Cost – Hence makes it accessible to many users.
- WiFi – ESP32 can connect to a wireless network or create its own WiFi network. This makes the ESP32 more efficient with most projects.
- Bluetooth – Its supports BLE (Bluetooth Low Energy) and Classic Bluetooth which makes it compatible with new and old devices.
- Low Power – The ESP32 can go into deep sleep inorder to save power.
- Dual Core – Can process more information compared to other microcontrollers
- Arduino Language Compatibility : Makes it more popular and easier for enthusiasts to shift from arduino to the ESP32.
- MicroPython – Python being extensively used makes ESP32 more accessible among existing python users.