Introduction: DIY "Money" Button
The “Money!” Button is an Internet of Things device designed to make saving toward a goal as easy as pressing a button while creating a sense of joy, excitement, and badassness. Saving can be difficult and often requires a significant amount of self-discipline. The “Money!” Button’s goal is to flip the way people think about saving while developing confidence and empowerment in the process! When one would like to deposit a predetermined amount of money into the predetermined savings account on Qapital, all one needs to do is hit the “Money!” button. The reward for taking another step toward the saving goal is Cardi B’s voice chanting “money” from her hit song, “Money”. Upon hearing this, the saver will feel a sense of pride and confidence, knowing that they are one deposit closer to being as rich and fabulous as Cardi.
- Arduino Huzzah
- Adafruit Audio FX Soundboard
- Adafruit 1” Speaker
- Adafruit Perma-Proto 1/2 Sized Breadboard
- Battery pack with switch
- 1 Lithium-Ion Battery for Arduino
- Single-stranded wire
- Wire Stripper
- Soldering Iron
- Third Hand
- Magnifying Glass
- Soldering Fan
- Safety Goggles
- Adafruit IO Feed
- Arduino IDE
- Voice Recorder
- Audio/Video Editing Software (iMovie, After Effects, etc.)
- 3D Modeling Software (Fusion 360, Rhino, etc.)
- 3D Printer
- Plastic (3D printed material)
- 1 inch of 1/16 inch wire
- Hot Glue Gun
- Hot Glue
- Compression springs of medium tension
Step 1: Solder the Circuit
The first step in creating the "Money" Button is to solder the circuit in place. Using the soldering iron, soldering fan, solder, third hand, magnifying glass, wire cutter, and wire stripper we will begin to assemble the circuit with the two boards.
Starting with and unsoldered Arduino Feather Huzzah, remove the header pins and Huzzah from the packaging. Aligning the header pins to fit the number of pins on the board itself, remove the additional header pins with a wire cutter, or simply snap them off if possible. Then, solder the header pins to each side of the Feather Huzzah, beginning with soldering only the first and last pin of the row. Once the first and last pins on each row are soldered, solder the remaining header pins to the Arduino Huzzah. Note that the proper alignment is such that the shorter side of the header pins is inserted into the bottom of the Feather Huzzah.
Now that all of the header pins are soldered to the Arduino Huzzah, we will solder the Arduino Huzzah to the Perma-Proto 1/2 Sized Breadboard. Align the Arduino Huzzah (with soldered header pins) in the center of one end the Perma-Proto Breadboard, pushing the bottom tips of the header pins through the holes of the breadboard. Using the third-hand tool, solder the header pins of the Arduino Huzzah to the Perma-Proto Breadboard, beginning with the first and last header pin of each row and then continuing with all of the header pins. Once the Huzzah is soldered to the breadboard. Take your button and solder it to the opposite end of the breadboard, just below the Huzzah.
Now, let's solder the speakers onto the Adafruit Soundboard. Using the third-hand tool to secure the Soundboard, solder the two wires of the 1-inch speaker to either the L or R amp pins on the Soundboard. If the wires on the speaker are specified as either power or ground, solder the ground wire to the pin with the minus sign and the power wire to the pin with the plus sign. If the wires on the speaker are not specified, simply solder one wire to each pin.
Now that the Huzzah is soldered to the breadboard and the Soundboard is ready to go. we will solder the wiring required to connect the button, the Huzzah, and the Soundboard. This circuit will be powered by the lithium-ion battery to be plugged into the Huzzah board. For wiring, we will be using black wires for ground, red wires for power, and yellow wires for connections. Solder the appropriate wires as follows:
- Solder a black wire from the GND pin on the Feather Huzzah to a nearby pin on the ground bus of the breadboard
- At one end of the breadboard, solder a black wire from one pin on the ground bus to another pin on the ground bus across the breadboard
- Solder a black wire from a pin next to one of the legs of the button to a pin on the nearest ground bus
- Solder a yellow wire from the leg diagonal from the grounded leg of the button to pin 4 of the Huzzah
- Solder a black wire from the GND pin of the Soundboard to a pin on the ground bus of the breadboard
- Solder a red wire from the VIN pin of the Soundboard to the BAT pin of the Huzzah
- Solder a yellow wire from pin 3 of the Soundboard to pin 13 of the Huzzah
Once the wires are connected appropriately, the circuit is ready to be tested!
Step 2: Create the Applet
The next step in creating the "Money" Button is creating an applet on If This Then That to connect the circuit to an account on Qapital. This applet is the foundation of this Internet of Things device and is the aspect of the button that actually makes it possible for the user to save.
Note: If not already completed, create accounts on Adafruit.IO, IFTTT.com, and Qapital to get started. Additionally, prerequisite information on IoT techniques and setup required to make this device can be found in the Internet of Things Class.
Navigate to Adafruit.IO and create a new feet titled "Money Button" or "Money". Logically, we will be creating an applet where an action happens (money is deposited into a saving account) when the button in pressed. This feed will connect to your Arduino Huzzah board and the button on your circuit to record the state of the button. When the button state is 1, when the button is pressed, the Arduino Huzzah will send a message to the Adafruit.IO feed. The information in that feed will then be used in an applet to trigger a monetary deposit based on the button state.
Navigate to IFTTT.com and create a new applet using the "Create" option in the upper right hand menu. On the "Create your own" screen. Click the "+" sign and then type in "Adafruit" in the search services bar. Select the Adafruit button and on the next screen select the option to "Monitor a feed on Adafruit.IO". The next screen will ask you to set up a series of instructions. In the first field, select the "Money" feed created earlier. Next, set the relationship as "equal to" and the value as "1". This setup means that when there is a value of 1 recorded on the money feed, some action will happen. Click "create trigger" and on the following screen, click the "+" sign.
The following screen will prompt you to select the service that will implement an action when the value on the "Money" feed is equal to "1". Type "Qapital" into the service search bar and select the Qapital icon. On the following screen, select the "Save toward a goal" option. Select the goal that you would like to save toward and the amount that you would like transferred to that goal every time you push the button. Click "create action". On the final screen, opt in to receive notification whenever the applet is run and click "finish". The following screen summarizes the functionality of the applet. Be sure that the applet is "Connected".
Step 3: Create and Upload the Media File
Nos that we have soldered our circuit and created the applet to deposit money into our savings account, let's create the sound file that we would like played every time we press our "Money" Button. For this demonstration, I will be using a single clip from Cardi B's hit song, "Money", but please feel free to use any song(s) that makes you feel empowered and motivated to save! I will only be uploading one clip to the Soundboard, but the same instructions can be used to upload more than one sound clip.
If you do not already have a sound clip in either the .OGG or the .WAV format, please proceed through the following steps. If you already have your sound clip properly formatted, please skip ahead to the portion of this step where we upload the sound clip(s).
To create your sound clip from scratch, open your music player of choice and a mobile phone voice recording app. The higher quality the recording is, the better your button will sound. For iPhone users, I recommend the built-in Voice Memos application.
Opening your music player of choice, select the song or sound clip that you would like the button to play. Using the recorder, record and save the desired portion of the song or clip. Upload the sound clip to your computer, if it is not already there, are open the clip in the audio editor of your choosing. Using the audio editor, edit the sound clip to the desired length and composition.
Once the sound clip is of the desired length and composition, connect the Adafruit Soundboard to your computer using the USB cord. Using your Finder or File Explorer, transfer the desired sound clip to the Soundboard.
Step 4: Write the Code
The code we will use for the "Money" Button is largely derived from Lesson 4 of the Internet of Things Class and from a Sample Soundboard Trigger found on GitHub. Upload the attached code to your Arduino Feather Huzzah, taking care to fill in your Adafruit.IO username and key, as well as your wifi credentials.
Step 5: Print the Model
The final step to creating the money button is to model and print the button shell itself using the 3D modeling software and 3D printer of your choice. For an introduction to 3D modeling and printing in Fusion 360, please follow along with the Introductory Modeling in Fusion 360 course.
After getting an understanding of the modeling techniques, create two pieces for the outer shell: the button bottom and the button top. The bottom button in this tutorial is 5 inches long, 4 inches wide, and 1.5 inches deep. You can make your button any size and shape that you would like, just ensure that the circuit boards, battery, and speaker can fit comfortably in the shell.
The button top may be hollow or solid, depending on your preferences. I have modeled my button top in a solid construction to add weight to the overall object. Additionally, the solid button top is less complex for beginners in 3D modeling, like myself, who may not be able to seamlessly craft connections. The solid top also helps when it comes to adding springs to the button for a more satisfying user experience.
Once the button base and top are modeled and printed, move on to final construction where we pull it all together!
Step 6: Pull It All Together
Now that the circuit has been soldered, the applet had been activated, the shell has been printed, and the code has been uploaded, it is time to pull everything together to complete the "Money" Button.
Beginning with the button top, affix (with hot glue) four 1 inch springs to each of the four edges of the button top, ensuring that the springs are not too close to the edges of the button top. Next, affix a 1 inch segments of 1/8 inch metal wire to the top an ensure that it aligns with the button on the circuit. This piece of metal will manually push the button every time the "Money" button is pushed. Finally, insert the circuit and battery into the bottom of the button outer shell. The last step is to place the button top, complete with springs, into the button bottom on top of the circuit. You may need to align the circuit to sit within the springs of the button top, as shown in the third image above, to ensure that the button aligns with the metal piece that will physically push the buttons. Once the button top has been aligned with the circuit, the "Money" button is complete! Ensure that your Qapital applet created in step 2 is connected to begin saving now!