Introduction: Laundry Alert With the LinkIt One
Laundry can be a bit of a drag. The laundry in our house is on the 2nd floor. While that is nice for moving big piles of clothes from the bedroom to the washer (they are right next to one another), it is quite a pain when I can't hear the washer from downstairs. My clothes sit there and mildew for a while before I finally remember I put them in there and rush to go put them in the dryer.
Well, that all changes with the LinkIt One. The LinkIt One is like a super charged arduino. It has WiFi, Bluetooth, and even GSM capabilities. This allows me to insert a sim card and have the LinkIt One send me a text whenever the laundry is done. No more clothes sitting wet for hours on end!
Step 1: Gather Supplies
For this Instructable you'll need the following:
- LinkIt One Media Board
- Pre-paid Sim (or you can borrow from a friend just to test)
- SparkFun Triple Axis Accelerometer Breakout - MMA8452Q
- Two 330 ohm Resistors
- a few wires for some soldering
Step 2: Configure Your LinkIt One Board
We'll need to modify some of the switches on the LinkIt One board in order to make it work. Along with the image attached, make sure that you have done the following
1. Set the MS -- UART switch to UART
2. Set the USB -- BAT switch to USB
3. Set the SPI -- SD switch to SPI
Step 3: Insert Your SIM Card
I know that most people probably don't have a pre-paid SIM card laying around. If you are just prototyping and want to see a proof of concept, feel free to remove it from your current cell phone (or one of your friends) just to try it out. If you get serious and want to make this a full-time gig, you will have to pony up for a pre-paid SIM.
Inserting the SIM card is a fairly straight forward process. Flip over your LinkIt One and look at the smaller big metal piece. You can see in the figure where I inserted my SIM card if you are confused.
After you have inserted the SIM card, be sure to attach your GSM antenna that came with your LinkIt One kit. This will allow you to get a cell signal.
Step 4: Solder the MMA8452Q (Accelerometer )
The Accelerometer from Sparkfun comes without being actually connected to anything. We'll need to solder some header pins to make it easier to work with. In the picture included you'll see a picture of both the Accelerometer and the Header pin. Because it's difficult to hold a camera and a solder gun at the same time, I wasn't able to include any pictures of that process. If you're confused on how to solder, there are some excellent instructables that have great visuals.
Step 5: Wire Your Accelerometer to Your LinkIt One
Follow the attached diagram to connect your Accelerometer to your LinkIt One. Unfortunately, Frizting doesn't have a built in board for the LinkIt One yet, so I wasn't able to provide the concrete board in the schematic. Instead I just wrote "LinkIt One SDA" and "LinkIt One SCL". If you don't know where these connections are on your LinkIt One board, refer to the 2nd diagram which clearly labels them.
Step 6: Deploy Code to LinkIt One
Deploy the attached code to your LinkIt One. You will need to adjust certain parameters, such as the cell number to text when the laundry is done. If you need help deploying to your LinkIt One, I suggest you take a look at some of these resources.
The main logic of the code checks for the G-force, or change in acceleration. We basically want to check if the laundry machine is moving rapidly back and forth, compared to standing still. If it is moving back and forth, we assume it is 'ON'. Once we see that it goes from a positive acceleration to none (it stops moving), we send an alert text message to send the text message and notify you that it is time to get the laundry.
void loop()
{ if (accel.available()) { // First, use accel.read() to read the new variables: accel.read();//Use this to debug your Code printCalculatedAccels();
int curAccelDifference = accel.x - prevAccel;
//If we see large G-force (change in acceleration) // And we haven't sent a laundry text message, then send a text! if(curAccelDifference > 2.00 && !AlertLaundryFinished) { SendLaundryDoneAlert(); } else //Laundry sTarted { AlertLaundryFinished = false; }
Serial.println(); // Print new line every time. } delay(10000); //Put a significant delay in here so we know when Laundry is done moving }
Attachments
Step 7: Deployment
Tape that sucker onto your laundry machine and you're in business!
5 Comments
6 years ago
how come when the board is not moving after i upload the code, it still send the message to my phone? and how can we make it such that it will only send 1 message per g shock detected? because it has been sending the message non stop even if i didnt move my accelerometer.
7 years ago
Would it be possible to configure this to send a notification via Email instead, eliminating the need for the sim card, since the board has wifi capabilities?
Reply 7 years ago
if you have a raspberry pi at home or some kind of server etc. you can take it lots of steps further starting with sending notifications to your phone and even automating almost everything in your house. I think this board is overkill . esp8266+ attiny85 would be best combo
7 years ago
Better yet, have it text your kid every couple minutes to put them into the dryer. They have to hit a button to reset it. Instead of you having to bug them every few minutes, you can now go out and have fun.
7 years ago
nice project. Love the way you used the acceleration of the machine to detect if it is still running or not. Defenitly the best LinkIt Instructable I've seen so far.