Arduino Wifi Modules: Which one to use?
Introduction to Wifi Modules
When it comes to WiFi Modules, everyone should have heard about the ESP8266; a self-contained SOC with integrated TCP/IP protocol stack that allows for any microcontroller to access your WiFi network.
In this blog today, I’ll be walking you through three WiFi Modules, namely the ESP8266, ESP32, and Grove UART WiFi v2. All of them are Arduino compatible as well.
ESP8266
ESP8266 is undoubtedly the most known WiFi module solution in the market. Offering a complete and self-contained WiFi networking solution, it allows users to either host the application or to offload all WiFi networking functions from another application processor.
Its on-board processing and storage capabilities allow for ease of integrating it with sensors and other application-specific devices through GPIOs.
Product Features:
- 802.11 b / g / n
- Wi-Fi Direct (P2P), soft-AP
- Built-in TCP / IP protocol stack
- Built-in TR switch, balun, LNA, power amplifier and matching network
- Built-in PLL, voltage regulator, and power management components
- 802.11b mode + 19.5dBm output power
- Built-in temperature sensor
- Support antenna diversity
- off leakage current is less than 10uA
- Built-in low-power 32-bit CPU: can double as an application processor
- SDIO 2.0, SPI, UART
- STBC, 1×1 MIMO, 2×1 MIMO
- A-MPDU, A-MSDU aggregation and the 0.4 Within the wake
- 2ms, connect and transfer data packets
- standby power consumption of less than 1.0mW (DTIM3)
Supports:
- APSD for VoIP applications
- Bluetooth co-existence interfaces
Product Applications:
- Smart Power Plug
- Home Automation
- Mesh network
- Industrial wireless control
- Baby Monitor
- Network Camera
- Sensor networks
- Wearable electronics
- Wireless location-aware devices
- Security ID tag
- Wireless positioning system signals
Pros:
- Low Power Consumption with high-end patented power management technology
- A plethora of information/guide available due to its popularity
- Relative low price range
- Can be programmed using Arduino IDE programming environment
Cons:
- Limited GPIO pins may cause restrictions when it comes to GPIO mapping
For a full overview of the ESP8266, you can head here
GeekNet ESP32 Development Board
This is not a standalone Wroom32 WiFi module but it’s integrated into this development board.
The ESP32 is a single 2.4 GHz WiFi and Bluetooth module that integrates the TSMC ultra-low power technology. It’s designed for performance, versatility, and reliability in a wide array of applications.
Product Details:
- Voltage: 5V
- Current: 80mA
- Battery: 3.7V
- Dimension: 59.76mmx28.05mmx12.60mm
Key WiFi Features:
- 802.11 b/g/n/e/i
- 802.11 n (2.4 GHz), up to 150 Mbps
- 802.11 e: QoS for wireless multimedia technology
- WMM-PS, UAPSD
- A-MPDU and A-MSDU aggregation
- Block ACK
- Fragmentation and Defragmentation
- Automatic Beacon monitoring/scanning
- 802.11 security features: pre-authentication and TSN
- WiFi Protected Access (WPA)
/WPA2/WPA2-Enterprise/Wi-Fi Protected Setup (WPS) - Infrastructure BSS Station mode/Soft AP mode
- WiFi Direct (P2P), P2P Discovery, P2P Group Owner mode and P2P Power Management
- UMA compliant and certified
- Antenna diversity and selection
Product Applications:
- Low-power IoT Sensor Hub
- Low-power IoT Data Loggers
- Home Automation
- Smart Building
- Audio Applications
- Healthcare Applications
- Wearable Electronics
- Retail and Catering Applications
Pros:
- Low-Power
- Bluetooth v4.2 BR/EDR compliant
Cons:
- Bugs are still being found and fixed as not all of the peripherals are fully documented with example code
- Not targeted towards everyone, more suited for developers
Grove: UART WiFi V2 (ESP8285)
This Seeed WiFi module is a serial transceiver module that features the ESP8285 IoT SOC. With the integration of TCP/IP protocol stack, this module only requires a few lines of code for your microcontroller to interact with the WiFi.
ESP8285?
ESP8285 is an updated version of the ESP8266, adding a built-in 1MB flash. Apart from that, they’re almost identical.
Product Features:
- 3V/5V Input Voltage
- 115200 Baud Rate
- Grove 4-pin connector (RX,TX,VCC,GND)
- 802.11 b/g/n protocol (2.4GHz)
- WiFi Direct (P2P), soft-AP
- Supports three modes: AP, STA and AP+STA coexistence mode
- Integrated TCP/IP protocol stack
- LwIP (lightweight IP)
- Integrated low power 32-bit CPU could be reprogrammed as an application processor
- Integrated temperature sensor
- Serial UART Interface
- Multi-queue QoS management
- Wake up and transmit packets in < 2ms
- Metal shielding
- On-board ceramic antenna
- Reset switch
Product Applications:
- Home automation
- Sensor networks
- Mesh networking
- Wearable electronics
- Baby monitor
- Network camera
- Industrial wireless control
- WiFi beacons
- Smart power plug
- Location-aware applications
Pros:
- Low power consumption with the usage of ESP8285
Cons:
- Limited GPIO pins, ESP8285 share the same number as the ESP8266
ESP8266 VS ESP32 VS ESP8285
GPIO Pins:
The ESP32 has the most GPIO pins, and you can decide which pins are UART, I2C, SPI as the chip multiplexing feature allows for multiple functions to be assigned to the same pin.
ESP8285 found in the Grove UART WiFi V2 shares the same number of GPIO pins as the ESP8266.
Arduino IDE programming capability:
All three can be programmed using the Arduino IDE programming environment.
Pricing:
The cheapest option is the ESP8266.
Functionality:
ESP32 contains the most functions, and also supports Bluetooth. The ESP8285 in the Grove UART wifi V2 now contains flash and SRAM when compared to the older ESP8266.
Which should you pick?
If you’re planning to work on IoT/bigger scale projects:
ESP32 due to its versatility and added functionalities. It is more suited for developers as well.
Simpler IOT Projects/Upgraded version of ESP8266:
Grove UART wifi v2
Suitable Pairings
If you’re planning on getting the Grove UART wifi V2, you can pair it with the following:
Seeduino Lite is Seeed version of the Arduino Leonardo, which can be used to pair with ESP8266 and ESP32 as well.
Hardware configuration:
- Step 1. Connect Grove-UART Wifi to port SERIAL of Seeeduino Lite.
- Step 2. Connect Grove-OLED to port I2C of Seeeduino Lite.
- Step 3. Connect Seeeduino Lite to PC via a Micro-USB cable.
Software configuration and further details can be viewed here