Introduction: Kids Photo Album With Flashcard Commercial

This instructables show how to make an WiFi auto update photo album in addition with kids flash card commercial features.

Step 1: Why Photo Album for Kids?

My kid love to play all clicky things such as fidget, Portable WiFi Analyzer, TV remote, iPhone home button (^o^);

My kid love to view photos of herself, she always take the iPad or mobile to us and ask for view photos (^_^)a;

My kid is not interested in flashcard (~_~).

How about making a little digital photo album that can auto download latest photos, at the same time it will random display flashcard "commercial"?

It seems interesting, let's try it!

Step 2: Preparation

Battery Powered IoT Device


There are various flashcard on the web, here are the one I am using in this example:

Step 3: Design

An auto update photo album is separated into 2 parts:

Photo Server

It aims to collect the latest photo, resize, crop and then serve to the IoT device.

In this demo I am using a Node.js HTTP server with sharp library. Simply drag the new photo to the photo folder, it auto resize and crop the image on the fly and then serve to the IoT device.

It is a passive method to get the lastest photo. If you are familiar with Node.js, you can make it more active, e.g. auto download photos from your social media or web photo album.

IoT Photo Album

It aims to synchronize the latest photo with local storage and display it.

In this demo I reuse the IoT device in my previous instructables. The ESP32 module have 4 MB flash storage, around 3 MB space can be used to store the photos. For 320x240 JPEG files, it is around 100 - 200 pieces. It is good enough in most case.

For power saving reason, every power on trigger only show a few random photos and then fall into deep sleep again. WiFi also turned off if cannot connect to presented WiFi or finished synchronization.

Step 4: Setup Photo Server

Source Code

I have written a thirty lines simple HTTP server to meet this requirement, you may find it at GitHub:

if you are not familiar with GitHub, simply click the green button at the right middle then select Download ZIP.


  1. Unzip the source
  2. Download and install Node.js, if not yet
  3. Download related package by following command:
cd nodejs-sharp-http-server
npm install


node app.js


  1. Put some photos in the photo folder
  2. Browser to: http://localhost:3200/
  3. You can see a comma separated file list
  4. Browser to: http://localhost:3200/ONE_OF_YOUR_PHOTO_FILE_NAME
  5. You can see a 320x240 resized and cropped photo

Step 5: IoT Photo Album


Follow my previous instructables to make the IoT device.

Source Code

Download the ESP32 Photo Album source code at GitHub:

Again, if you are not familiar with GitHub, simply click the green button at the right middle then select Download ZIP.


If you are not yet setup ESP-IDF, please see the setup guides for detailed instructions to set up the ESP-IDF:

Windows Setup Guide

Mac OS Setup Guide

Linux Setup Guide



make menuconfig

select "serial":

  • port

select "Photo Album Configuration", fill your own value:

  • WiFi SSID
  • WiFi Password
  • Web server
  • Web server port


make all


make flash


make monitor

The first time require some times for format the SPIFFS and download photos. After that every trigger button pressed will show 5 photos at 5 seconds interval and then enter deep sleep.

Step 6: Flash Card Commercial

I would like to show some alphabet flashcard while my kid viewing the photo album. Assume the ratio is 4:1, so I can put 5 flashcards to the photo folder for every 20 photos. Photos and flashcards show in random basis.

Step 7: Happy Learning!

It's time to give the Photo Album to your kids. Once you have downloaded the first batch of photos, it is ready to bring it alone with your kids!

Step 8: Something About Battery

This IoT device designed for battery saving.

In my measurement, the power usage is around 0.0 - 0.1 mA while deep sleep.

I am doing a further measurement by counting how many photo can be displayed for one full charge of battery.

You may follow my twitter to know the latest news.

Homemade Gifts Contest 2017

Participated in the
Homemade Gifts Contest 2017

Design For Kids Challenge

Participated in the
Design For Kids Challenge

Epilog Challenge 9

Participated in the
Epilog Challenge 9