Quer um jeito fácil de acompanhar quantos seguidores você tem no Instagram? Então confira neste post como montar um contador de seguidores do Instagram usando o módulo WiFi ESP32 com display Oled que vai se conectar na sua página a cada minuto e mostrar o número de seguidores no display.

Como essa é a primeira vez que o módulo ESP32 com display Oled aparece aqui no blog, vamos dar uma olhada no hardware antes de seguir para o projeto.

Módulo WiFi ESP32 com display Oled

O módulo que vamos usar é este com o ESP32 da Espressif, que tem CPU Xtensa® Dual-core de 32 bits e roda com clock máximo de 240MHz. A memória flash é de 4MB e RAM de 520Kbytes, além do wifi padrão 802.11 b/g/n e bluetooth BLE 4.2.

Contador de seguidores do Instagram Módulo Wifi ESP32 com display Oled

É um módulo bem completo, contando com 11 portas de entrada e saída (GPIO) e as interfaces de comunicação mais comuns como I2C, SPI e serial, além de conversor analógico digital (ADC).

O display OLED tem resolução de 128×64 pixels e permite a apresentação de gráficos e textos, como veremos mais adiante. A alimentação do módulo é feita basicamente através do conector micro USB, que serve tanto para alimentação como para transferência de dados e que no nosso caso será usado para programação através da IDE do Arduino.

Neste exemplo de uso do contador Instagram, não é necessário ligar nenhum componente adicional no módulo ESP32. Usaremos apenas as funções de WiFi e o display Oled para apresentação dos dados.

Configurando a IDE Arduino para ESP32

Para utilizar este módulo ESP32 com IDE Arduino, vamos primeiro habilitar a placa. Para isso, entre na IDE do Arduino no menu Arquivo -> Preferências. Na janela de configurações da IDE, coloque o seguinte endereço no campo URLs Adicionais para Gerenciadores de Placas:

https://dl.espressif.com/dl/package_esp32_index.json

Sua tela deve ficar assim:

IDE Arduino - Preferencias

Feito isso,  acesse o menu Ferramentas -> Placa -> Gerenciadores de Placas e procure por “ESP32”, instalando o pacote esp32 by Espressif Systems:

IDE Arduino - Gerenciador de Placas

Por último, selecione a placa WEMOS LOLIN32 no menu Ferramentas -> Placa e a porta serial (COM) detectada pela IDE. 

Um detalhe importante é que você deve ter algum versão do Python instalada na sua máquina para que esse procedimento funcione corretamente ou instalar a biblioteca pyserial no seu computador. A versão mais atual do Python pode ser encontrada neste link

Programa contador de seguidores Instagram com ESP32

Para montar o programa do contador de seguidores Instagram com ESP32 serão utilizadas 3 bibliotecas: a ESP8266 and ESP32 Oled Driver for SSD1306, que como o próprio nome diz é responsável pela comunicação com o display, a InstagramStats, que faz a conexão com o Instagram e busca os dados referentes ao número de seguidores e por último a Json Streaming Parser, obrigatória para que a InstagramStats funcione. 

Todas elas podem ser instaladas à partir da própria IDE do Arduino, no menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas.

Vamos instalar primeiro a biblioteca do display OLED, que usa o controlador SSD1306. No Gerenciador de bibliotecas, procure por SSD1306 e selecione a ESP8266 and ESP32 Oled Driver for SSD1306, conforme imagem abaixo:

Instalação da biblioteca SSD1306 para ESP32 na IDE Arduino

Faça o mesmo com a biblioteca InstagramStats:

Biblioteca InstagramStats IDE Arduino

Por último, faça a procura por JSON e instale a Json Streaming Parser:

Instalação biblioteca Json Streaming Parser

Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.

Finalizada a instalação das bibliotecas, vamos carregar o programa que vai ler as informações do Instagram e apresentar no display.

O programa abaixo faz a conexão com a rede wifi e em seguida acessa a página do Instagram procurando o perfil do usuário configurado na linha 26 (username). O nome do usuário pode ser encontrado no link da página no Instagram, como no exemplo abaixo da página do Arduino e Cia:

http://www.instagram.com/arduinoecia

A parte destacada em vermelho é a que você vai colocar na linha 26.

Não esqueça de configurar também o nome da sua rede wifi e a senha nas linhas 11 e 12 do programa, respectivamente.

//Programa: Contador de seguidores do Instagram com ESP32
//Autor: Arduino e Cia

#include <InstagramStats.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <SSD1306Wire.h>
#include <JsonStreamingParser.h>

//Configuracoes da rede WiFi
char ssid[] = "NOME DA REDE WIFI";
char password[] = "SENHA DA REDE WIFI";

WiFiClientSecure client;
InstagramStats instaStats(client);

//Inicializa o display oled nas portas 5 e 4
SSD1306Wire  display(0x3c, 5, 4);

//Tempo entre leituras
unsigned long delayBetweenChecks = 60000;
unsigned long whenDueToCheck = 0;

//Nome do usuario Instagram, conforme URL
//https://www.instagram.com/arduinoecia/
String userName = "arduinoecia";

void setup()
{
  Serial.begin(115200);

  //Conecta na rede wifi
  Serial.print("Conectando a rede Wifi: ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi Conectado!");
  Serial.println("Endereco IP: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);

  //Inicializa o display
  display.init();
  display.flipScreenVertically();
}

void mostra_num_seguidores()
{
  //Mostra os dados no serial monitor
  Serial.println("Obtendo dados do Instagram para o usuario " + userName );
  InstagramUserStats response = instaStats.getUserStats(userName);
  Serial.print("Numero de seguidores: ");
  Serial.println(response.followedByCount);

  //Mostra os dados no display Oled
  display.clear();
  display.setTextAlignment(TEXT_ALIGN_LEFT);

  //Parte superior - Logo Instagram
  display.drawHorizontalLine(7, 5, 15);
  display.drawVerticalLine(5, 7, 15);
  display.drawVerticalLine(23, 7, 15);
  display.drawHorizontalLine(7, 23, 15);
  display.setPixel(6, 6);
  display.setPixel(6, 22);
  display.setPixel(22, 6);
  display.setPixel(22, 22);
  display.setPixel(19, 9);
  display.drawCircle(14, 14, 4);
  display.drawCircle(19, 9, 1);
  display.setFont(ArialMT_Plain_16);
  display.drawString(30, 5, "INSTAGRAM");
  display.drawString(31, 5, "INSTAGRAM");

  //Mostra o numero de seguidores
  display.setFont(ArialMT_Plain_24);
  display.drawString(38, 32, String(response.followedByCount));
  display.display();
}

void loop()
{
  unsigned long timeNow = millis();
  if ((timeNow > whenDueToCheck))
  {
    mostra_num_seguidores();
    whenDueToCheck = timeNow + delayBetweenChecks;
  }
}

Você pode acompanhar o progresso da conexão e mensagens do módulo acessando o serial monitor na IDE do Arduino, que vai mostrar também o endereço IP do ESP32:

Serial Monitor contador de seguidores do Instagram ESP32

Fácil não? Agora que você já sabe como criar um contador de seguidores Instagram usando ESP32 com display OLED embutido, siga o Arduino e Cia no Instagram!

Confira também outros posts usando ESP32 aqui mesmo no Arduino e Cia!

Avalie este post!