Once the Arduino library has been installed, the Example1_BasicReadings.ino example file can be accessed from the File > Examples > SparkFun STHS34PF80 Arduino Library > Example1_BasicReadings drop-down menu. This example reads the human presence detection values from the STHS34PF80 sensor through the I2C interface and displays them in the Serial Monitor.
Example1_BasicReadings.inoCode Verification
This code was last verified to be functional under the following parameters:
IDE: Arduino 2.2.1
Hardware Platform: SparkFun RedBoard Qwiic
SparkFun Human Presence and Motion Sensor - STHS34PF80 (Qwiic) Version: 1.0
SparkFun Qwiic Mini Human Presence and Motion Sensor - STHS34PF80 Version: 1.0
/****************************************************************************** Example1_BasicReadings.ino Read human presence detection values from the STHS34PF80 sensor, print them to terminal. Prints raw IR presence (cm^-1), if motion was detected, and temperature in degrees C. SparkFun STHS34PF80 Arduino Library Madison Chodikov @ SparkFun Electronics Original Creation Date: September 19th, 2023 https://github.com/sparkfun/SparkFun_STHS34PF80_Arduino_Library Development environment specifics: IDE: Arduino 2.2.1 Hardware Platform: SparkFun RedBoard Qwiic SparkFun Human Presence and Motion Sensor - STHS34PF80 (Qwiic) Version: 1.0 SparkFun Qwiic Mini Human Presence and Motion Sensor - STHS34PF80 Version: 1.0 Do you like this library? Help support SparkFun. Buy a board! SparkFun Human Presence and Motion Sensor - STHS34PF80 (Qwiic) https://www.sparkfun.com/products/22494 SparkFun Qwiic Mini Human Presence and Motion Sensor - STHS34PF80 https://www.sparkfun.com/products/23253 Hardware Connections: Use a Qwiic cable to connect from the RedBoard Qwiic to the STHS34PF80 breakout (QWIIC). You can also choose to wire up the connections using the header pins like so: ARDUINO --> STHS34PF80 SDA (A4) --> SDA SCL (A5) --> SCL 3.3V --> 3.3V GND --> GND This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.******************************************************************************/#include"SparkFun_STHS34PF80_Arduino_Library.h"#include<Wire.h>STHS34PF80_I2CmySensor;// Values to fill with presence and motion dataint16_tpresenceVal=0;int16_tmotionVal=0;floattemperatureVal=0;voidsetup(){Serial.begin(115200);Serial.println("STHS34PF80 Example 1: Basic Readings");// Begin I2Cif(Wire.begin()==0){Serial.println("I2C Error - check I2C Address");while(1);}// Establish communication with device if(mySensor.begin()==false){Serial.println("Error setting up device - please check wiring.");while(1);}delay(1000);}voidloop(){sths34pf80_tmos_drdy_status_tdataReady;mySensor.getDataReady(&dataReady);// Check whether sensor has new data - run through loop if data is readyif(dataReady.drdy==1){sths34pf80_tmos_func_status_tstatus;mySensor.getStatus(&status);// If presence flag is high, then print dataif(status.pres_flag==1){// Presence Units: cm^-1mySensor.getPresenceValue(&presenceVal);Serial.print("Presence: ");Serial.print(presenceVal);Serial.println(" cm^-1");}if(status.mot_flag==1){Serial.println("Motion Detected!");}if(status.tamb_shock_flag==1){mySensor.getTemperatureData(&temperatureVal);Serial.print("Temperature: ");Serial.print(temperatureVal);Serial.println(" °C");}}}
Hardware Connections
For this example, users simply need to connect their Qwiic Human Presence/Motion Sensor board to their microcontroller, utilizing the I2C interface. With the recommended hardware, users can easily connect their boards with the Qwiic connection system.
The Qwiic Human Presence/Motion Sensor boards are connected to a RedBoard Plus, with a Qwiic cable.
Pin Connections
For users with a development board without a Qwiic connector, the table below illustrates the required pin connections. Make sure that the logic-level of the sensor is compatible with the development board that is being connected.
Sensor Pin
Microcontroller Pin
RedBoard/Uno
SCL
I2C - Serial Clock
SCL/A5
SDA
I2C - Serial Data
SDA/A4
3V3
Power: 1.7 to 3.6V
3.3V
GND
Ground
GND
Serial Monitor
This example reads the human presence detection values from the STHS34PF80 sensor and displays them in the Serial Monitor. It prints the raw IR presence (cm-1), if the motion detection flag was triggered, and temperature (°C).
Tip
For this example wave different objects in front of the sensor, with varying ranges. Objects that emit black body radiation work the best and should trigger the motion detected flag.