Memory Game Alarm Clock

IMG_8012

The Concept

I sometimes have trouble waking up in the morning, so I wanted to make a challenge for myself whenever I try to turn off my alarm clock. I already made a memory game, and I made a simple design for outputting to a 7-segment LED display, so I decided I wanted to integrate those designs into an alarm clock.

The Design

The box

I found an inexpensive aluminum project box online and decided to use it as the body for the alarm clock. I found some buttons with built-in LEDs for the memory game portion, and I decided to strategically drill holes in the front of the box to  allow the time display to shine through. Like I mention in the demo video, I didn’t do a great job of this.

The Circuit Board

The main electrical components I have on the PCB are:

  • ATMega328 – system logic and I/O
  • DS1307 – Real Time Clock
  • 3V coin cell for real time clock
  • LED Display
  • MAX7219 for LCD screen
  • Buzzer for alarm
  • Resistors, capacitors, and crystal oscillators

Alarm_Clock_Simon_Schematic_Stack_pcb

In order to fit everything into the small project box, I went with a stacking PCB design with two 2-layer boards.

The buttons and lights are connected by wires to the circuit board where they are directly soldered on. In future, I would like to modify this to a plug-in connection to make it easier to take the lid off for battery replacement.

Features

  • Requires a memory game to be beaten to turn off alarm
  • All functions of alarm clock are controlled by 4 memory game buttons
  • Buttons light up whenever pressed for feedback
  • Intuitive alarm and time setting
  • Adjustable brightness
  • Adjustable difficulty
  • 12/24 hour time display modes

Demo

Making Of

The code and PCB schematics can be found on my GitHub.

ESP8266 and DHT22 – Log room temperature to a Google Sheet

I recently discovered the ESP8266: a low-cost board with a WiFi chip that also has a microcontroller that you can program with the Arduino IDE. For less than $2, this was something I had to try! So I decided that I wanted to use the ESP8266 with a DHT22 temperature and humidity sensor to log the temperature of my room in Google drive.

I wired and set it up using this guide:

https://learn.adafruit.com/esp8266-temperature-slash-humidity-webserver

But instead of a USB to serial cable, I used a UART TTL module to communicate with the board. Since the 2 x 4 pin design doesn’t lend itself to use in a breadboard, I used an adapter board.

The complete circuit is shown below:

IMG_2665 IMG_2666

Once I got the module reading temperature values from the sensor, I added code to send the data to Adafruit IO using the getting started guide:

https://learn.adafruit.com/adafruit-io/arduino

I then used an IFTTT recipe to add any new Adafruit IO values to a google sheet. This is what the values look like as they come in:

Screenshot 2016-03-10 21.42.11

And here is a plot of the temperatures over time. It looks a bit jagged since the temperature is being sent over as an integer, which is fine for my purposes.

Screenshot 2016-03-10 21.35.01

The Arduino IDE code can be found on my repository: https://github.com/jerwil/ESP8266_DHT_to_Adafruit