Introduction: Social Circle Relationship Manager

What is it?

Keeping in touch with all the important people in your social circle can be tough, especially when you are living in a big city, a workaholic, a student, or all of the above. Social Circle offers a way to keep all your loved ones in one place, tracking how often you are in contact with one another and who might need some extra love! Nobody likes to ignore their friends, and now - you'll never be that person again! This product is perfect for people who do not find phone notifications urgent and would like a visual representation to monitor their relationships.

Social Circle is an Arduino powered device that connects your text messages to a set of independent LEDs, each representing one person and measuring the frequency with which you talk to one another, indicated by the brightness of each LED. Using some intermediate Arduino code, you can personalize how Social Circle functions, including how many relationships you want to manage, and control how quickly or slowly the LEDs dim.

What You'll Need

  • IFTTT (If This Then That) Account
  • Adafruit IO Account
  • Laptop with Arduino software downloaded
  • Arduino Breadboard
  • Feather HUZZAH w/ ESP8266 WiFi
  • Soldering Iron
  • Solder
  • Wire Strippers
  • Resistors
  • Electric Wire
  • LEDs
  • 1/8" Acrylic
  • Laser Cutter or Scrollsaw
  • Belt Sander
  • 3/4" Plywood
  • CNC Machine or Multi Router
  • Micro USB Cable
  • Wall Charger

When working with power tools, don't forget to wear eye and face protection!

Step 1: Software & Hardware Setup

Before we begin, you'll need to set up a few quick things. First, create your free Adafruit IO account. Here is where you will set up feeds that you will implement into your Arduino code. You'll want to create feeds before you set up your IFTTT account.

  • Once you have created an account, click Feeds on the left Dashboard.
  • Click the Actions drop-down menu and select Create a New Feed. Choose a name for your feed and select create. Your feed is now added to the Adafruit IO library and you will be able to send data to this feed using IFTTT (next step!) For each LED, you will need to create a new feed. For this project, I have created 5 feeds, each named after the person I want to represent on the device.

Second, make an IFTTT account . We will be using IFTTT to set up our text message/Adafruit IO. These functions will initiate data collection that will communicate with your Arduino code.

  • Once you have created an account, you will create a new applet. Click New Applet. Select This and choose SMS. You can either choose to trigger your applet whenever you send any SMS to your IFTTT phone number or trigger the applet whenever you send a tagged (with hashtag e.g #mom) message to your IFTTT phone number. For this project, we will choose to send tagged messages so we have a way to distinguish our different LEDs.
  • The next step asks for you to create this designated tag. In this example, I chose to tag mom, but this tag can be whatever you like as long as it's easy for you to remember. Click Create Trigger.
  • Click That and choose Adafruit. Select the option Send data to Adafruit IO and select your feed name. For our first LED, we will ask Adafruit to save data as 1. When we add more LEDs, we will use different numbers to distinguish our feeds and LEDs so they all act independently.
  • Click Create Action and we are almost there! Here is where you will change your phone number. Try substituting the numbers for Me. Because the applets are public, you want to make sure you are protecting your information. Make sure your applet is turned on (indicated by the green switch) and click Finish.

Congratulations you have just made your applet! You can always change the settings of your applet at any time by selecting the white gear in the top-right corner of the applet.

Step 2: Code & Circuit

Before you start with any code, make sure to download the following libraries within the Arduino software:

  • ESP8266WiFi
  • AdafruitIO
  • Adafruit_MQTT
  • ArduinoHttp

You can download these libraries in the Arduino toolbar by selecting Sketch > Include Library > Manage Libraries and search each by their title.

Download the attached code and open in Arduino. Make sure that you change your personal information including your unique username, AIO Key (which you can find by clicking View AIO Key in the Dashboard), and WiFi credentials.

I recommend using the following Instructable to create your first LED circuit. Once you have created a complete circuit, you will be able to add LEDs and resistors without adding any extra wires. This tutorial provides the correct circuit for what we need. Remove the button from this circuit, as it will not be needed for this project. Adding LEDs going forward will be simple, keeping each one oriented the same (short side in negative breadboard bed and long end at the Huzzah board pin (5, 12, 13, 14,16). Now, let's test how IFTTT and Adafruit IO connect with our code!

Step 3: Sending a Text Message

Now, grab your IFTTT phone number from your applet and send your hashtag to the phone number. Check your Adafruit IO feed to see there is any incoming data. The feed should be tracking the activity of your text messages. Make sure your LED is connected to the pin you have designated in your code, and the text message will trigger the LED to turn on.

Step 4: Soldering

For this project, I have chosen to use 5 LEDs. To increase the length of the wires and make the task of putting the breadboard inside a wooden form, we will need to do some soldering. Head to the top of this tutorial to review what materials you will need. If you are unfamiliar with soldering, check out this great video.

After you solder your resistors (on the negative/short side of the LED) and wires, you should have some pieces that look like the photo above. Make sure to use shrink tubing to protect all your exposed wiring. Because we will be folding our setup into a form, it's important that no wires are touching.

Step 5: Holding Your Pieces

Now you have all these pieces and wires, but nowhere to put them! Here comes the really fun part, because there are no rules (well, only that your breadboard must fit!).

For me, this product represents a visual sense of passing time. This theory led me to create a form that resembled a clock. But, you can choose to design anything that fits your home, work, or school environment. Fortunately, my status as a student grants me access to a laser cutter, CNC machine, and woodshop. However, this form can be easily created with a bandsaw and belt sander. Here's how I did it:

1. Before using any machinery, you'll need to set up some Illustrator files. You will use these files to communicate with both the machines. Remember to make cut lines for your LEDs in your Illustrator file so that you do not need to use the drill press to create these cutouts (like me!) I chose to create a cutout at the back for my micro USB cable to fit.

2. This time I chose not to add names on the acrylic in case I wanted to adjust my social circle later, but go wild and personalize your acrylic with words, pattern, even using a fun color!

3. Remember to tell the CNC machine to leave tabs (portions along the outline that are not cut all the way through) so that your piece does not shift on the table.To prepare your CNC job, you must secure your board to the CNC table. Because the form is small, I used about 6-8 screws, about a foot apart from one another. Here, I am using 3/4" plywood with a 1/2" pocket cut on each piece (this gives me a full inch of space to fit the breadboard and wiring).

4. When the machine has finished, use a chisel and hammer to break through the tabs. Now, you will have two free-standing pieces that need some love from the belt sander. Run the pieces gently against the sander to create a smooth edge.

5. Cut a short dowel that can be inserted through the center of both the CNC form and acrylic piece. This is a basic solution to connect the pieces together and gives you the opportunity to create new acrylic pieces to swap out.

Step 6: Putting It Together!

Almost there! We have all our components and are ready to seal this thing together. First, you can stack the acrylic circle on top of the wooden face and fit the LED wire legs through each of the holes.

Then, place your breadboard inside the form (I used some masking tape to hold mine secure) and place your LEDs in their designated pins. If you don't have your code open, these pins should be 5, 12, 13, 14, and 16. Since the sides of the LEDs with resistors are negative, these are the sides that will fit in the (-) bed of the breadboard.

Next, situate your Micro USB cord in the Huzzah Wifi board and through your CNC cutout. Now, you can match the two sides together and create a standing, enclosed object! If you plan to use your Arduino components again, I recommend finding a temporary solution for keeping your wooden form together. In this case, I used strong double-sided tape.

Step 7: Using Your Social Circle

Congratulations! You've made a working Arduino relationship manager! Now, fate is in your hands. You can choose where you want your text message tracker to go, paint your product, and even use the acrylic face as a white-board surface for writing names!

Enjoy, and happy relationship-ing!