Welcome to the Smart Alarm Project!

***check out the latest adafruit 3D-Hangouts, where we just got featured!***

smart_alarm is an open-source project about building and programming a Internet of Things alarm clock. This instructable provides all information you need to build the smart alarm clock on your own. Even though we wanted to leave a lot of space for your ideas and improvements, the smart alarm clock is designed to have the following "starting features".


  • text to speech synthesizer
  • three ways of wake-up sound:
    • play local mp3 files
    • play internet radio station and
    • play latest news as podcast (independent to the alarm time)
  • set alarm via smartphone or any other computer
  • running apache2 server
  • automatic display brightness adjustment
  • audio amplifier volume control
  • 3D-printalbe case
  • case built-in tactile switch
  • alphanumeric display shows text
  • 3W speaker definitely wakes you up
  • ... whatever you want to add ...

Check the images above and this youtube link for more information.

Also checkout github repository for the code, as well as the github wiki and the provided installation guide.

If you are looking for the 3D printable case, you might want to check out


Cloning the repository files to your Raspberry Pi Zero will enable you to check your soldering and finally run the main program easily. To complete this project you need basic knowledge in soldering and programming.

Consider this table of content as an overview of the steps you need to complete.

Table of Content

  1. Raspberry Pi Zero running Raspbian
  2. Display
  3. Clone Project Code

  4. Enable Audio

  5. Audio Amplifier

  6. Button

  7. Photocell

  8. Setup Apache Server

  9. Configure Setup

  10. WiFi Stick

  11. 3D-Printed Case

  12. Getting Started

Hardware Needed:

In order to complete the project you need the following (or similar) things:

  • Raspberry Pi Zero (with minor changes you might as well use a different Raspberry Pi)

  • Keyboard, Mouse and Screen (for initial setup)

  • Micro SD Card (8GB or more is recommended)

  • USB-WiFi-Stick (for example: EDIMAX EW-7811UN Wireless USB Adapter)

  • Audio Amplifier (PAM8403)

  • Hole Grid Board (70mm x 50mm x 1.2mm, 24x18 holes, plus one hole in each corner, can be found easily online)

  • Button (Tactile Switch)

  • Photocell (Photoresistor)

  • Speaker (3 Watt 4 Ohm 40mm diameter)

  • 14-Segment Alphanumeric Display

  • Screws: 4x M2 6mm, 4x M2.5 6mm, 4x M2.5 16mm

  • Resistors, Capacitors, Wires, ...

-> Let's start with Step 1

Step 1: Raspberry Pi Zero Running Raspbian

In order to complete this project you need to set up a Raspberry Pi running Raspbian (Lite), the Debian version of Raspberry Pi. Sure you might use different Raspberry Pis and a different OS, but therefore you might need to modify your system somewhat. For example if you want to use Raspberry Pi 3 you don't have to buy and use an additional WiFi-stick, might just use the on-board audio output, but might not be able to use the given 3D-printable case. So by changing some parts of this project you got to keep in mind that this instruction is based on using Raspberry Pi Zero.

1.1 Installing Raspbian

First visit the Raspberry Pi downloads page and download the latest Raspbian Lite image. We decided to work with the Lite version, since this project has no need for a graphical user interface. Now follow the instructions page of how to download and write the Raspbian image to your sd-card. Once your sd-card is set up, plug it into your Pi and connect mouse, keyboard and screen to the Pi.

1.2 Enabling SSH (Optional)

If you want to control your Pi via remote, navigate to the config menu of the Pi and enable ssh:

sudo raspi-config

select the Advanced Options menu and press enter. Now select the option SSH and press enable. After sudo rebooting your Pi the changes are applied. By typing:


the Raspberry Pi will tell you its ip-address. From your computer now, being in the same network, you are able to connect to the Pi via ssh like:

ssh pi@ip-address

enter the password and login to your Pi.

<p>Would you be able to use Lighttpd instead of Apache2, its footprint is much smaller than Apache.</p><p>https://redmine.lighttpd.net/projects/lighttpd/wiki/HowToPythonWSGI</p>
<p>Just made one! Brilliant project, very well described, excellent step-by-step instructions, with test routines along the way. Now starting to explore the various features (some of which I've found in the code - e.g., shutdown).</p>
<p>Awesome! Thanks for sharing! Let us know if you have any suggestions for improvement! We are currently planning to add some rgb leds for a colorful wake-up effect! ;)</p>
<p>In step 10.3 you don't show the pads to solder to - image 2 shows the topside of the Zero, not the underside.</p>
<p>yea you're right, I'm sorry. I added two additional photos showing the used test pads + a link to another tutorial, which explains this step in detail.</p>
Thanks for adding this so quickly! and for the general excellent level of detail! (I'm about to build one)
<p>I need this at my home!!</p>
What would you say is a ballpark guess as to total cost (understanding some is 3d printed and would not be costed in)?
<p>A rough guess about the total costs might look like this (assuming 1&euro; = 1$):</p><p>Raspberry Pi Zero 5.-<br>USB-WiFi-Stick 5.-<br>Audio Amplifier 2.-<br>Speaker 2.-<br>Alphanumeric Display 10.-<br>8GB SD Card 5.-<br>--&gt; SUM = 29.-<br>plus low cost parts like: button, photocell, screws, resistors, capacitors and the hole grid board; which you should get all for less than 1.-</p><p>So let's say more or less 30 depending on where you buy your stuff!</p>
<p>Thanks for sharing :)</p>

About This Instructable




More by fgebhart:IoT Smart Alarm Clock [Open Source Project] 
Add instructable to: