IoT e Makers

10 abr, 2017

Os primeiros passos com o ESP32

Publicidade

O ESP8266 mudou completamente o cenário maker no mundo. Antes, o que era dominado pelo Arduino e suas variações, passou a dividir espaço com o ESP, que tem WiFi e custa menos de US$ 2. Sendo assim, o Arduino perde para o ESP quando se trata de especificações.

Não demorou muito para que esse universo fosse expandido, o que é um ponto bem positivo, já que temos mais opções e a concorrência faz os preços caírem. Um exemplo disso foi RTL8710 e o MT7681, muito similares ao ESP e com preço baixo, entre US$ 2 a US$ 5.

Mas a Espressif, fabricante do ESP8266, não deixaria essa briga evoluir, trazendo com o maior barulho possível o ESP32.

O tão esperado ESP32

Quando o ESP32 foi anunciado, uma enorme onda de especulações se iniciou. Varias informações iam surgindo e os rumores se tornando mais fortes, mas nada oficial vinha da Espressif. Até que em janeiro deste ano, a Espressif lançou oficialmente as vendas do ESP32 e o primeiro manual de uso do chip, para o grande delírio dos makers.

Os diferenciais

Primeiro, devo deixar claro que o ESP32 não é um substituto ao ESP8266, tão pouco custa tão baixo, já que eles têm diferenças grandes em relação ao hardware.

O grande e principal diferencial do ESP32 em relação ao ESP8266 é o fato dele possuir bluetooth, além do já conhecido WiFi, e de mais periféricos, como os listados abaixo:

Características:

  • Bluetooth 4.2 BLE
  • Dual core 32bits LX6 Xtensa
  • 448KB ROM
  • 520KB SRAM
  • 16KB SRAM no RTC

O ESP32 possui 48 GPIOS, sendo que os pinos analógicos podem ser configurados como digitais. Os periféricos nativos, com compartilhamento de pinos em alguns casos, são:

  • 3x SPI
  • 2x I2C
  • 2x I2S
  • SDIO/SD/MMC
  • 3x UART
  • CAN
  • Ethernet 10/100Mbps
  • IR (Infrared)
  • 16x PWM
  • Sensor de Temperatura interno
  • Sensor touch de 10 canais
  • ADC de 12bits e suporte para até 18 canais (multiplexado)
  • DAC de 8bits e 2 canais

Outro diferencial do ESP32 é o fato dele possuir acelerador em hardware para algoritmos de criptografia, incluindo AES, SHA, RSA e ECC.

A tensão de trabalho do ESP32 varia de 2.2V a 3.6, e quando operado por bateria (VBAT), pode variar entre 2.8V e 3.6. O consumo pode chegar até 225mA de pico nas transmissões. Isso torna o ESP32 uma boa alternativa para uso de pilhas alcalinas (2x 1.5V).

Preparando o ambiente de desenvolvimento

A Espressif disponibiliza um framework de desenvolvimento chamado de IDF (IoT Development Framework) para o desenvolvimento de aplicações com o ESP32. Para um detalhamento de como fazer a instalação, siga o documento disponibilizado pela própria Espressif neste link.

Neste momento, vamos usar o já conhecido platformIO para o desenvolvimento do primeiro “hello world” com o ESP32 e com a plataforma Arduino.

Para maiores detalhes sobre a plataforma Arduino para o ESP32, acesse.

Instalando o platformIO

Para quem ainda não conhece o platformIO, veja este artigo para uma breve introdução.

O platformIO já fez a integração com o ESP32, inclusive com cerca de dez placas de desenvolvimento disponíveis para iniciar um projeto, incluindo a ESP32 Thing.

Demo:

#include <WiFi.h>
 
const char* ssid     = "ssid";
const char* password = "senha";
 
void setup()
{
    Serial.begin(115200);
    delay(10);
 
    pinMode(5, OUTPUT);
    digitalWrite(5, LOW);
 
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);
 
    WiFi.disconnect(true);
    WiFi.mode(WIFI_MODE_STA);
    WiFi.begin(ssid, password);
 
    while (WiFi.status() != WL_CONNECTED) {
        digitalWrite(5, HIGH);
        delay(250);
        digitalWrite(5, LOW);
        delay(250);
        Serial.println(WiFi.status());
    }
 
    digitalWrite(5, HIGH);
 
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
}
 
int value = 0;
 
void loop()
{
 
}

O código, é exatamente igual ao do ESP8266, mudando apenas o nome da biblioteca de WiFi.

Kit de desenvolvimento

A placa utilizada é da SparkFun, a ESP32 Thing:

Pinout da ESP32 Thing:

Conclusão

O ESP32 é muito superior ao ESP8266 em diversos aspectos. Parece que a Espressif ouviu muitos pedidos dos usuários do ESP8266 e implementou no ESP32.

Ele atende muitas necessidades, inclusive em projetos onde um processador seria muito e um ESP8266, pouco, ficando no meio termo.

O valor, mesmo que não seja o mesmo que o ESP (nem acho que deveria), é ainda inferior aos processadores mais baratos do mercado, sendo uma boa escolha neste segmento.