Sensory Bookmark
This bookmark is designed to make reading an immersive, multisensory experience. Upon opening your book, this bookmark turns into a reading light, automatically illuminating to light up your page. A customizable scent profile enhances the moment. Close the book, and the light turns off while the system enters low-power sleep mode to save battery.
If you'd like to take on an additional challenge, this bookmark has the potential to take on IoT features. Built on the Arduino Nano ESP32 with WiFi capabilities, you can program it to automatically start your favorite reading playlist on Spotify when you open your book, and even enable Do Not Disturb mode on your phone. It allows you to create a distraction-free reading environment and truly get lost in your latest literary escape.
Supplies
Electronics Components:
- Arduino Nano ESP32: the computer; has WiFI capabilities
- Normally Open (NO) tactile switch: detects when the book opens/closes (for this prototype I am using a NO switch)
- Normally Closed (NC) tactile switch: detects when the book opens/closes (use for final product and reverse the logic)
- Yellow/White LED: reading light
- 100Ω Through Hole Resistor: protects the LED
- USB-C cable: for programming and power
- USB power bank: portable power source
- Jumper wires: for breadboard prototyping
- Hook-up wire: for final soldered connections
Tools & Supplies:
- Solderless breadboard: for prototyping
- Soldering iron & solder: for permanent connections
- Wire strippers
- Hot glue gun/Glue: for protecting solder joints and mounting components
- E600 craft glue: useful for mounting components, an alternative to hot glue
- Heat shrink tubing: protects connections
Bookmark Materials:
- 3D printed enclosure: to house the electronics and scent pad
- Ping pong ball: to diffuse and enclose the LED
- Small felt pad + essential oil (optional): to hold scent inside enclosure for the multisensory experience
Software:
- Arduino IDE (free download)
- ESP32 board support (installed through Arduino IDE)
Set Up Your Arduino IDE
The Arduino Software (IDE) makes it easy to write code and upload it to the Arduino board offline
Follow along with the official Arduino guide found here.
Test Components Using Breadboard
- Insert your Arduino Nano ESP32 across the center channel of your breadboard (it should straddle the gap)
- Connect the NO switch: one terminal to pin D9, the other terminal to GND
- Build the LED circuit: D2 → 100Ω resistor → LED long leg (anode, (+)), LED short leg (cathode (+)) → GND
- Double-check all connections against the circuit diagram
Note: The pins in the above image are switched; so refer to the Tinkercard for reference!
Upload and Test Code
- Copy the Arduino Code into Arduino IDE
- Read through the code comments for context
- Click the Upload button (right arrow icon) in Arduino IDE
- Wait for "Done uploading" message
- LED should turn on when tactile button is in the default state, and turn off when the button is pushed
Downloads
Create Bookmark Enclosure
- You can find the 3D Tinkercad and Autocad Fusion design files here
- You can download the 3D files here
Solder Final Circuit
- Cut wires to appropriate lengths (wire should fit nicely within enclosure to ensure nothing is pinched or stressed)
- Use wire strippers to strip about 5mm of insulation from each wire end
- Tin the wire ends and component leads (LED, NO switch) with solder
- Solder the NO switch: one wire to opposite terminals, then connect one to Arduino D9 and one to GND
- Solder the LED circuit: resistor to D2, resistor to LED positive leg, LED negative leg to GND
- Use heat shrink tubing to insulate all exposed connections
- Test everything prior to using hot glue to protect soldered joints
Mount Everything in the Enclosure
- Carefully place the Arduino inside the 3D enclosure
- Position the NO switch so the button is accessible through the hole in the back
- Mount the LED
- Secure components using a small amount of hot glue or E6000 craft glue
- Route the USB cable through the designated opening
- Make sure nothing is pinched or stressed when you close the enclosure
- Test the switch and LED before sealing
Optional Features
Olfactory Feature
Making scent pads: Cut small rectangles of felt or thick fabric (about 1" x 1.5" or sized to fit your pocket)
- Add 2-3 drops of essential oil to each pad and let it absorb for a minute
- Slide the scent pad into the pocket you created in your bookmark
- You can swap scent pads based on your mood, book genre, or time of day!
WiFi Features (for distraction-free reading)
- Modify the code to connect to your home WiFi
- Trigger Spotify API to start a pre-selected reading playlist when you open the book
- Use IFTTT or similar automation platform to enable Do Not Disturb mode on your phone upon opening book
- Track reading time and sync to a reading log app
- Send yourself gentle reminders to take breaks every 30 minutes
- Create different "reading modes": deep focus (DND + ambient music), casual (no DND, light background music), study mode (timer + breaks)
Congratulations!
That's it, nice work! I would love to see how others extend this project. I've gotten as far as the prototype with the scent feature, but if you give the WiFi features a try, I'd be really interested in hearing about your process. There are already things I'd like to adjust if I continue to iterate on this design. One major area for improvement is the NO switch, as I realized the one I used isn't sensitive enough for the weight of most book pages. In the future, I would need to utilize a sensor that requires less weight or pressure to turn on.
I am still a beginner when it comes to Arduino and 3D product design, as I'm just finishing up the first semester of my MFA in product design MFA. I'm sure many of you with more experience will have helpful commentary. Please share any thoughts and/or feedback. I'm excited to see what you create!