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!