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