Practice Exercise: Sensors to Action
Table of contents
- 1. Add a Piezo
- 2. Create an
if
statement to trigger actions. - 3. Link your code to IFTTT
- Going Further
Using the circuit you prepared in the last practice exercise, we’re going to modify the circuit as follows:
- Add a piezo element and trigger a sound alert
- Use an
if
statement to evaluate the sensor readings and trigger actions - Use IFTTT to map actions from your sensors onto actions in the cloud.
1. Add a Piezo
Start by adding a piezo element to your circuit. Test that you can play a sound using the piezo in your kits.
2. Create an if
statement to trigger actions.
To do this you’ll need to experiment with the values and readings you’re receiving from each sensor. Use the Particle Console to evaluate the sensor readings. Experiment and make a note of the readings that you find. You should find out where the minimum and maximum values are i.e the range of values you will receive from the component. Then establish a good threshold (or cut off) at which you should trigger your responses.
For example, if you were working with the Photocell and saw that you got a minimum value of 700 and a maximum value of 3181, you might decide that you might alert the use if the light drops below 1500.
Modify the code to include an if
statement and create three conditions to respond to:
- In the first condition, both sensors show bad readings at the same time. In this case play a sound alert.
- In the second condition, only the first sensor has poor readings. In this case, blink the LED to display the led for 1.5 seconds and off for 0.5 seconds.
- In the third condition, only the second sensor has poor readings. In this case, blink the LED such that it is on for 0.5seconds and off for 1.5 seconds.
- In the case that no condition is met, turn the piezo off and the led off.
Things to Try
If you want to get fancy, you could only play the piezo’s sound alert if the less than desirable sensor readings have been sustained for a while i.e. its really critical and the user sould know. You should also try not to drive them mad by playing the tones constantly. Try to modify the behavior to only play them every once in a while.
3. Link your code to IFTTT
Create an account on IFTTT and add the Particle Channel. You might also want to add channels for Google Drive/Sheets, for SMS messaging and push notifications (this will require you to add the IFTTT app to your smartphone)
Once you’ve set up IFTTT, create an applet to link your Particle project to online services.
Log to Spreadsheet
In your applet on IFTTT:
- set your if to be
New event published
from theParticle
channel.- Choose the
If (event name)
to be something likelog_to_spreadsheet
- Choose the Device Name that matches your Particle Argon from the dropdown list.
- Choose the
- Set it to Trigger the
Add Row to Spreadsheet
on theGoogle Sheets
channel- Add the formatted row as
|||||| |||
- Add the formatted row as
- Save and create your applet.
In your Particle project, add the following line to your code
// store the time when you last published
int last_published = -1;
void log_to_spreadsheet( ){
// check if 1 minute has elapsed
if( last_published + 60000 < millis() ){
Particle.publish( "log_to_spreadsheet", String( sensorValue ) );
last_published = millis();
}
}
In your loop()
, call the log_to_spreadsheet()
function above.
Trigger an Action
Modify the example above to trigger an SMS or Push Notification through IFTTT
Going Further
Once you’ve achieved the outcome, you can try some of the below and experiment to improve your coding skills
Exercise 1
Experiment with other IFTTT triggers and actions you can call.
Exercise 2
Modify the log to spreadsheet example to log multiple values to the spreadsheet. Gather some data and graph it to visualize your readings.
Exercise 3
Refine your barebones implementation into a working sensor platform that alerts you only when you need to know in-situ feedback and through push notifications/sms alerts.