The Interactive Book

A children’s book that will allow you to discover different sensors.

Public Chat
Similar projects worth following
Last semester we worked on the Interactive Story Lamp, which was a project in which we worked with LED's, arduino, button sensors, a speaker, we used the lazer cutter and a SD card to hold the recordings.
For this semester, we decided to go an other step further with our project, parting from the same idea of a story telling lamp. This time, to make things more interesting, we decided to add different sensors to make the lamp even more interactive with the user.


Our first idea was to keep the idea of a lamp, but we had to remake the story in order to use more sensors. We also had to decide what sensors we wanted to use, so that way we could adapt our story to the sensor we were using. We knew that with the knowledge we had and with a little bit of help, we could use:

  • Touch sensor
  • Big sound sensor
  • Small sound sensor
  • Motion sensor
  • Temperature sensor

The next step was to determine the design of the lamp, and for this we also had to establish the possible user. We decided that kids on ages 6-10 would be our perfect user. Because of this, we made a mood-board to brainstorm a possible design. 

As our lamp is supposed to be used by little kids, we wanted it to be the most interactive, fun and attractive. We opted for a book design with a fun cutout on the cover that had to do with the story, this way the little kids could imagine the story more and have fun while using the lamp as it would be 100% interactive. 

Story & Design

After deciding the types of sensors we wanted to use, we had to create a story. We parted by the fact that it had to be a children's story and that the story had to have different outcomes along the story line, in which each outcome had to make the listener choose between two options. The main idea of the project is that the user has to interact with the book either making a sound, shaking the book, blowing to it , etc. for the story to continue in the direction they want.

We created a story with 14 different outcomes, in which the user had to have different interactions with the book to keep the story going, all depending on what they choose.

For the cover of the book, we decided to make it fun and easy to understand for the users. The main idea of the story it has to do with a balloon, so the cover has a big balloon cutout in it. Also, we decided to decorate the cover with different symbols were the sensors are placed, so the user knows where exactly they have to interact with the book when it comes to the different decision making along the story.

Here the code of our project, the different elements of our code work individually but once assembled the code no longer works :

// ** Librairies **
#include <Wire.h>

#include "SoftwareSerial.h"
#include "DFPlayer_Mini_Mp3.h"
#include "DHT.h"
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket

// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN    6
#define LED_COUNT 56

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip

#define DHTPIN 12
#define DHTTYPE DHT11


// ** Pins **
int micPin = A3;      // Big sound sensor
int tempPin = A4;     // Temperature sensor
int buttonPin = 5;    // Tilt sensor
int SENSOR_PIN = 8;   // Touch sensor

// Le capteur de pression a deux sorties : A4 et A5.

// ** Variables **
int currentState;
int lastState = LOW;
int val;
float tempValue;
float voltageOut;
float temperatureC;
float sensorValue2;
float voltageOut2;
float temperatureC2;
int micValue1 = 0;
int micValue2 = 0;

int blowValue1 = 0;
int blowValue2 = 0;

SoftwareSerial mySerial(10, 11); // RX, TX

// ** Conditions **
bool touchActivated = false;
bool motionActivated = false;
bool bigActivated = false;
bool smallActivated = false;
bool tempActivated = false;

bool tempChanged = false;
bool bigChanged = false;
bool smallChanged = false;
bool touchChanged = false;
bool motionChanged = false;

void setup() {
  #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)

  Serial.println(F("DHT11 test!"));


  // Touch sensor :

  // Motion sensor :
Read more »

Adobe Portable Document Format - 4.89 MB - 06/01/2023 at 20:42


  • 1 × LED lights We decided to use the NeoPixel Digital RGB LED strip we used last time. With the new project, we still needed to light up the lamp with different colors, so this LED was our best option.
  • 1 × Touch sensor The touch sensor, also known as a touch button or touch switch, is commonly employed for device control, such as touchable lamps. It functions similarly to a button but is increasingly replacing traditional buttons in modern devices due to its sleek appearance.
  • 1 × Temperature sensor LM35 We are using the LM35 sensor. It has a supply voltage of 4-20V, a temperature sensitivity of -55°C up to 155°C. It also has an accuracy of ±0.5°C to +25°C and ±1°C from -55°C to +150°C.
  • 1 × Motion sensor For this sensor, we are using SE059. The sensor detects when the module is tilted via a switch closure activated by a metallic rolling ball. It has a digital output and a 3.3V-5 V supply voltage.
  • 1 × Big sound sensor We are using the sound sensor v1.1, this sensor can detect sound waves. The main goal was to use this to detect loud noises made along the story, like voice noises or clapping sounds. It operates with a voltage of 3.3-5V. This sensor is capable of determining noise levels within 100 dB.

View all 8 components

  • 1

    1. The first thing we had to do was to brain storm a topic for our story and the design of the book. We got inspiration on Pinterest on different lamp designs to get a better idea of what we wanted our project to look like, and based on that, the storyline of the book. 

  • 2

    2. Now, we had to investigate and decide which sensors we wanted to use for our project and what sensors we could work with. Once we established our 5 different types of sensors, we ordered them online. 

  • 3
    Working on the code

    3. One of the hardest parts of the project was working on the code on Arduino, as we had to make sure each and every sensor worked. 

View all 6 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates