Instagram Live Follower Counter Using ESP32

by Rau7han in Circuits > Gadgets

162 Views, 4 Favorites, 0 Comments

Instagram Live Follower Counter Using ESP32

thumbnail instagram counter.png
VID_20260824_003340308-ezgif.com-speed.gif
ezgif.com-video-to-gif-converter(1).gif
IMG_20260824_002249391.jpg
IMG_20260824_002118356.jpg

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

step2_04_power_adapter_jack_detail.jpg
step1_11_main_case_back_view.jpg
step1_09_bezel_frame_flat.jpg
step1_13_case_screws_mounting_holes.jpg
step1_06_diffuser_grid_zoomed_detail.jpg
step2_01_bill_of_materials_overview.jpg

For this project I used:

Electronics

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

3D printed parts

  1. Main enclosure
  2. 32x8 LED partition grid
  3. Front frame

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

How the Follower Counter Works!

how it works.png
Screenshot from 2026-08-25 22-46-18.png
IMG_20260824_002223345.jpg

he 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.

Preparing the 3D-Printed Enclosure

step1_06_diffuser_grid_zoomed_detail.jpg
step1_15_grid_fit_test_in_case.jpg
step1_15_grid_fit_test_in_case.jpg
step1_01_3d_printed_main_case_top_view.jpg
step1_02_3d_printed_case_and_accessories.jpg
step1_03_3d_printed_case_angled_view.jpg
step1_04_diffuser_grid_partition.jpg
step1_05_diffuser_grid_diagonal.jpg

The enclosure I used has three main printed parts

  1. Main case
  2. 32x8 LED grid
  3. 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

: Preparing the Power Wiring

step3_02_case_and_dc_jack_comparison.jpg
step3_09_power_connector_assembled.jpg
step3_11_insulating_wires.jpg
step4_10_routing_wires_into_case_channels.jpg
step4_07_esp32_soldered_pins_detail.jpg

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

step4_02_soldered_connections_matrix_detail.jpg
step4_08_esp32_and_matrix_wiring_overview.jpg
step4_14_led_matrix_back_insulation_check.jpg
step4_20_checking_led_matrix_alignment.jpg

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

For power:

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

Final Hardware Assembly

step4_23_aligning_grid_with_leds.jpg
step4_24_pressing_grid_onto_led_matrix.jpg
step4_28_grid_and_diffuser_fitting.jpg
step4_30_securing_front_bezel_screws.jpg

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

01_meta_developer_home_1.png
02_meta_developer_get_started_2.png
03_account_registration_verify_account_3.png
04_enter_mobile_number_sms_verification_4.png
05_select_developer_role_complete_registration_5.png
06_apps_dashboard_click_create_app_6.png
07_create_app_intro_modal_7.png
08_enter_app_name_and_contact_email_8.png
09_browse_app_use_cases_9.png
10_select_other_use_case_type_10.png
11_select_business_app_type_11.png
12_confirm_app_details_and_create_12.png
13_select_instagram_product_setup_13.png
14_instagram_api_setup_overview_14.png
15_navigate_app_roles_add_people_15.png
16_add_people_modal_select_role_16.png
17_add_instagram_tester_account_17.png
18_instagram_tester_invite_pending_18.png
19_instagram_account_settings_19.png
20_instagram_website_permissions_20.png
21_instagram_accept_tester_invite_21.png
22_meta_roles_tester_invite_accepted_22.png
23_meta_app_roles_verified_23.png
24_api_setup_click_generate_token_24.png
25_instagram_oauth_allow_permissions_25.png
26_instagram_access_token_generated_26.png

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

  1. Create a Meta Developer account
  2. 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.
  3. Create a new app
  4. Open My Apps and click Create App. Give your app a name and continue.
  5. Choose Other as the use case.
  6. Select Business as the app type.
  7. You can leave Business Portfolio empty.
  8. Add Instagram
  9. After creating the app, find Instagram under Available Products and click Set up.
  10. Add your Instagram account as a tester
  11. Go to App roles > Roles, click Add People, select Instagram Tester, and add your Instagram account.
  12. Accept the tester invite
  13. Log in to Instagram and go to:
  14. Website permissions
  15. Apps and websites
  16. Tester Invites
  17. Accept the invite from your Meta app.
  18. Generate the access token
  19. 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.
  20. Copy the token
  21. 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.

Testing the Instagram API

Screenshot from 2026-08-20 23-39-31.png
Screenshot from 2026-08-20 23-39-46.png

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

Software and Libraries

IMG_4376.JPG
Screenshot from 2026-08-24 01-17-30.png

I used Arduino IDE to program the ESP32

  1. Install Arduino IDE.
  2. Open Boards Manager and install the ESP32 board package.
  3. Open Library Manager.
  4. Search for FastLED and install it.
  5. Open the follower counter sketch.
  6. 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:

  1. Select your ESP32 board.
  2. Select the correct COM port.
  3. Click Upload.
  4. 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.

Working

FFMRMO2MST9FJN0.gif
Screenshot from 2026-08-25 22-46-18.png
IMG_20260824_002215158.jpg
IMG_20260824_003015944.jpg

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.