Contador de seguidores do Instagram com ESP32

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.

É 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:

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

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:

Faça o mesmo com a biblioteca InstagramStats:

Por último, faça a procura por JSON e instale a 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:

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!

Related posts

Upgrade de firmware do ESP8266 ESP-07

by Arduino e Cia
8 anos ago

Como usar o touch capacitivo do ESP32

by Arduino e Cia
3 anos ago

Controlando um servo motor utilizando Android e Bluetooth

by Arduino e Cia
11 anos ago
Sair da versão mobile