Introduction: Weasley-o-Meter

About: Geek and total tech head. My age is 1111111.

Merry Christmas everyone! :)

This project was inspired by the clock in the Weasley house that is seen in the second Harry Potter movie (thanks jordy.vlassembrouck for spotting my mistake of originally saying the first movie), and spurned into creation by a Spark Core build night hosted at my local Hack Space (www.makerspace.org.uk). The original idea was to use an Arduino Duemilanove, Ethernet Shield and a Servo, but I couldn't resist a modern Neopixel-based twist when I had access to a Spark Core and Internet Button.

Step 1: Parts and Tools

For the main part of the project you will need:

  1. Internet-enabled Android device
  2. Tasker app for Android
  3. RESTask plugin for Tasker
  4. Spark Core
  5. Spark Core 'Internet Button' Neopixel Light Ring
  6. USB 'A' to Micro USB lead
  7. USB power supply
  8. Access to Wifi and Internet

Optional Indicator Mounting Board

If you want to mount your Weasley-o-Meter in the same fashion as I have here, then you will need the items in the following list. I had also considered creating a drawing in LibreCAD/DraftSight and cutting a mounting board out of Laser Ply on a Laser Cutter, but in the circumstances, the following route is more accessible to everyone.

  1. Sticky Foam Pads
  2. Gold Marker Pen
  3. Multi-purpose Craft Glue
  4. Craft/Stanley Knife
  5. Black Foam Core Board
  6. Black (Thick) Sugar Paper

Step 2: Code Your Core

If you are new to the Spark Core, it is best to head over to http://docs.spark.io/start/ to get going with the initial setup of the Spark Core and the Internet Button. Once you are familiar with how to load firmware onto the Spark Core, then copy this code into a new App.

IMPORTANT:

You will need to click 'Libraries'>'Neopixel'>'Include in app'>[select the app name]>'Add to this app'. This will add the '#include "neopixel/neopixel.h"' line, which is already in the code. You can remove one of the two lines to neaten up your code. Once you have done this step, you shouldn't get any errors when you click the 'Verify' or 'Flash' button.

Step 3: Configure Tasker

Next you will need to install the Tasker app and RESTask plugin on your internet-enabled Android device, and then configure Tasker to set the position of the indicator. The following set of steps is quite lengthy and detailed, and I have also included a YouTube video to assist in the configuration.

  1. Open Tasker
  2. Press 'Menu'
  3. Select 'Preferences'
  4. Select the 'UI' tab
  5. Untick 'Beginner Mode'
  6. Exit 'Preferences' (press 'Back' button)
  7. Press the plus symbol
  8. Enter a new profile name
    (This would normally be your current/desired location e.g. 'Home')
  9. Press the tick symbol
    (You are now shown a list of Profile options)
  10. Select 'State'
    (You are now shown the Select State Category screen)
  11. Select 'Net'
    (You are now shown the Select Net State screen)
  12. Select 'Wifi Near'
    (You are now shown the State Edit screen)
  13. Press the magnifying glass on the SSID section
    (You will see a list of one or more Wifi Access Points - select yours from the list. The SSID name is now filled in.)
  14. Press Back
  15. Select 'New Task'
  16. Enter a new task name
    (This would normally be an action name e.g. 'Set Indicator Home')
  17. Press the tick symbol
    (You are now shown the Task Edit screen)
  18. Press the plus symbol
    (You are now shown the Select Action Category screen)
  19. Select 'Plugin'
    (You are now show the Action Plugin screen)
  20. Select 'RESTask'
    (You are now shown the Action Edit screen)
  21. Press the pencil symbol
    (You are now shown the RESTask edit screen)
  22. Change 'Request Type' to POST
  23. Change 'Host' to https://api.spark.io/v1/devices/{device_id}/{function_name}
    (Where {device_id} is the Device ID of your Spark Core and {function_name} is the exposed function in your Spark Core firmware)
  24. Swipe across to 'Parameters'
  25. Press 'Add More'
  26. In the 'name' box, type 'access_token'
  27. In the 'value' box, type the Access Token for your Spark Core
    (Your access token can be found in the Spark Build web IDE on the 'Settings' page)
  28. Press 'Save'
  29. Press 'Add More'
  30. In the 'name' box, type 'args'
  31. In the 'value' box, type the number of the position you want to light on the indicator
    (Remember that the position number is zero-based)
  32. Press 'Save'
  33. Press the save (floppy disk) symbol
  34. Keep pressing the back button to save and exit out of Tasker

Your first Tasker Profile and Task have now been set up to set the position of the Indicator :)

Step 4: Label the Mounting Board

For this part, I recommend using a font reference if you aren't savvy at sign writing. I did an image search on Google for different types of fonts until I found one that I liked and felt suited the style I was trying to achieve.

  1. Write out the title and labels onto the black sugar paper
  2. Cut out the title and labels
  3. Experiment with the positioning of the Spark Core, title and labels
  4. Glue the title and labels to the foam core board

I used a plastic bag to protect my worktop from glue. Note that the use of plastic bags for *anything* is a magnet to local cats. The cat did not improve the speed or efficiency of fixing the title or the labels, but it did improve cuteness.

Step 5: Mount the Core

Temporarily position the Spark Core in its final resting place, and then mark the position of the Micro USB socket on the Foam Core Board. Remove the Spark Core and cut a hole that is big enough to fit a Micro USB plug. Fix four double-sided foam pads to the underside of the Spark Core, and finally fix the Spark Core to the Foam Core Board in its final resting place.

Step 6: Finishing Notes

Mounting the Spark Core

As I mentioned in the introduction, I have currently mounted the Spark Core onto black Foam Core board, but feel free to interpret this part of the build in your own way. I am also planning on revising the Spark Core code and Tasker configuration so that more than one person's location/state can be shown on the 'Weasley-o-Meter'.

Helpful Videos

I've uploaded a couple of videos to YouTube (see embedded videos above) that show the various stages of development and configuration. I hope these are helpful in your own Spark Core projects, if not just informative/entertaining. The first one (Spark Core Tinkering) goes through stages of developing and testing code for the Spark Core, whilst the second one (Testing Tasker) focuses on checking that the final Tasker configuration I use is working correctly.

Enjoy!