Instagram Live Follower Counter Using Esp32

Photo of rau7han

Made by rau7han

About the project

I built this small desk display using an ESP32 and a 32x8 WS2812B LED matrix to show my Instagram follower count.

Items used in this project

Hardware components

Seeed Studio WS2812B Digital RGB LED Flexi-Strip 144 LED - 1 Meter Seeed Studio WS2812B Digital RGB LED Flexi-Strip 144 LED - 1 Meter x 1
Espressif ESP32 Espressif ESP32 x 1

Software apps and online services

Autodesk Fusion Autodesk Fusion
Arduino IDE Arduino IDE

Hand tools and fabrication machines

3D Printer (generic) 3D Printer (generic) x 1

Story

I built this small desk display using an ESP32 and a 32x8 WS2812B LED matrix to show my Instagram follower count.

The ESP32 connects to Wi-Fi and checks the Instagram API every 30 seconds for the latest follower count. I wanted the number change to look a little more interesting, so I added a rolling animation that only moves the digits that actually change.

For the enclosure, I downloaded an STL model from MakerWorld that includes a grid and space for a diffuser. The grid keeps the light from spreading between pixels and makes the numbers easier to read.

Below I’ll go through the wiring, enclosure assembly, Instagram API setup, Arduino code, and final testing

Supplies

For this project I used:

1 / 4

Electronics
  • ESP32 development board
  • 32x8 WS2812B flexible LED matrix
  • 5V 3A DC power supply
  • 5.5mm x 2.1mm female DC barrel jack with screw terminal
  • 22 AWG or 24 AWG hookup wire
  • Heat shrink tubing
  • Small screws for the front frame

3D printed parts
  • Main enclosure
  • 32x8 LED partition grid
  • Front frame

I’ve also attached the Arduino sketch I used for the project

Step 1: How the Follower Counter Works!

The ESP32 connects to Wi-Fi and checks Instagram every 30 seconds for the current follower count. It then shows that number on the 32x8 LED matrix.

Instead of redrawing the whole number, I made only the digits that need to change animate. Only the digit that needs to change rolls to the new value. For example, if the count changes from 2305 to 2306, only the last digit moves.

For a change like 2309 to 2310, multiple digits need to update, so the animation carries across them. If someone unfollows, the digit rolls in the opposite direction.

The Instagram logo stays on the left side of the display, and the follower count uses the remaining space.

Step 2: Preparing the 3D-Printed Enclosure

1 / 15

The enclosure I used has three main printed parts

  • Main case
  • 32x8 LED grid
  • Front frame

The main case holds the ESP32, LED matrix, power connector, and wires.

The 32x8 grid sits on top of the LED matrix. Each opening lines up with one LED, which helps stop light from bleeding into the neighboring pixels.

I printed the grid with opaque filament.

The front frame holds the grid and diffuser in place. Before installing the electronics, I test-fitted everything to make sure the matrix, grid, and frame lined up properly

Step 3: : Preparing the Power Wiring

1 / 3

The code limits the LED current to 2500 mA, so I’m not running the full matrix at unrestricted brightness, I split the same 5V input so one pair of wires powers the matrix and another pair powers the ESP32.

First, cut the power wires to the needed length and strip the ends.

Connect the positive wire from the DC barrel jack to 5V and the negative wire to GND.

From the same power input, run one pair of wires to the LED matrix and another pair to the ESP32.

Keep the power disconnected while making the connections.

Connecting the ESP32 and LED Matrix

Next I connected the LED matrix to the ESP32

First, find the input side of the matrix. It should be marked 5V, GND, and DIN.

Connect the data wire like this:

  • ESP32 GPIO 13 -> Matrix DIN
  • 5V supply -> Matrix 5V
  • GND -> Matrix GND

Both the ESP32 and the matrix must share the same ground for the data signal to work properly.

5V -> ESP32 VIN

GND -> ESP32 GND

The ESP32 and LED matrix need to share the same ground.

After soldering, cover the exposed joints with heat shrink tubing.

Before powering it up, I checked 5V and GND with a multimeter to make sure I hadn’t accidentally created a short

Step 5: Final Hardware Assembly

Once the wiring was working, I mounted the ESP32 inside the case and arranged the wires so they wouldn’t get pinched.

Next, I placed the 32x8 LED matrix in the front of the case and fitted the printed LED grid over it. I checked that each LED matched one opening in the grid.

Then I placed the white diffuser sheet on top and fixed the front frame with small screws.

With the front frame screwed in place, the hardware side was finished.

Setting Up the Instagram API

To read the follower count, I needed to create a Meta Developer app and generate an Instagram access token.

Create a Meta Developer account

  • Go to Meta for Developers and sign in with your Facebook account. If you're using it for the first time, complete the registration and verify your account.

  • Create a new app

  • Open My Apps and click Create App. Give your app a name and continue.

  • Choose Other as the use case.

  • Select Business as the app type.

  • You can leave Business Portfolio empty.

  • Add Instagram

After creating the app, find Instagram under Available Products and click Set up.

  • Add your Instagram account as a tester

  • Go to App roles > Roles, click Add People, select Instagram Tester, and add

  • your Instagram account.
  • Accept the tester invite

  • Log in to Instagram and go to:
  • Website permissions
  • Apps and websites
  • Tester Invites

  • Accept the invite from your Meta app.

  • Generate the access token
  • Go back to Meta for Developers and open Instagram > API setup with Instagram login. Click Generate token, sign in to Instagram, and allow the requested permissions

  • Copy the token
  • Check I understand and copy your access token.
Important: Keep the access token private. Don't show it in screenshots or upload it with your public Arduino code.
These screenshots are from August 2026, so Meta may move or rename some of these options later.

Step 7: Testing the Instagram API

Before working on the ESP32 side, I tested the API request in my browser to make sure the token was working.

Open this URL in your browser:

https://graph.instagram.com/me?fields=followers_count&access_token=YOUR_ACCESS_TOKEN

Replace YOUR_ACCESS_TOKEN with your real access token.

If the API is working, you should get a response like this:

{
"followers_count": 2305
}

if you see followers_count in the response, the API side is working.

If you get an error, check the access token and make sure your Instagram account is connected correctly. I only moved on to the ESP32 code after this test worked

Step 8: Software and Libraries

I used Arduino IDE to program the ESP32

  • Install Arduino IDE.
  • Open Boards Manager and install the ESP32 board package.
  • Open Library Manager.
  • Search for FastLED and install it.
  • Open the follower counter sketch.
  • Select your ESP32 board and the correct COM port.

https://github.com/Rau7han/instagram-live-follower-counter-esp32

These three libraries are already included with the ESP32 Arduino package

#include <WiFi.h>

#include <HTTPClient.h>

#include <WiFiClientSecure.h>

These libraries come with the ESP32 board package, so you don't need to install them separately.

Add WiFi and Instagram details

Open the sketch and find these lines near the top:

const char* WIFI_SSID =
"YOUR_WIFI_NAME";
const char* WIFI_PASSWORD =
"YOUR_WIFI_PASSWORD";
const char* INSTAGRAM_ACCESS_TOKEN =
"YOUR_INSTAGRAM_ACCESS_TOKEN";

I replaced these placeholders with my Wi-Fi name, password, and Instagram token before uploading

The main display settings are already set:

#define DATA_PIN 13
#define BRIGHTNESS 70
#define MAX_MILLIAMPS 2500
The ESP32 checks the Instagram follower count every 30 seconds:
const uint32_t API_POLL_INTERVAL = 30000;

Keep your access token private and remove it before sharing the code publicly.

Upload the code

Connect the ESP32 to your computer with a USB data cable.

In Arduino IDE:

  • Select your ESP32 board.
  • Select the correct COM port.
  • Click Upload.
  • Wait for the upload to finish.

After the ESP32 connects to WiFi and gets the first follower count from the API, the number should appear on the LED matrix.

Step 9: Working

1 / 2

After the upload finished, I disconnected USB and powered the display from the 5V supply.

The Instagram logo should appear first. The ESP32 then connects to WiFi and checks the Instagram API.

When the first follower count comes in, the digits play a short two-second startup animation before settling on the current number. After that, the current follower count stays on the display.

The rolling digits are my favorite part of the finished display because the number changes without the whole screen flashing. The printed grid and diffuser also made the LEDs much easier to read than when I first tested the bare matrix. Once the Wi-Fi and token are configured, I can just plug it in and leave it running on my desk.

Schematics, diagrams and documents

Schematic

CAD, enclosures and custom parts

Code

Source Code

Credits

Leave your feedback...