Files
ESPEasy/lib/SparkFun SCD4x Arduino Library/examples/Example2_LowPowerReadings/Example2_LowPowerReadings.ino
T
TD-er 24cd5a2d74 [PIO] Add all used libraries in lib folder
[PIO] Update lib/default folder in Platformio.ini


[PIO] Update lib/default folder in Platformio.ini


[PIO] Add missing parts in library.properties files
2022-11-07 16:01:28 +01:00

82 lines
2.3 KiB
Arduino

/*
Reading CO2, humidity and temperature from the SCD4x in Low Power mode
By: Paul Clark
Based on earlier code by: Nathan Seidle
SparkFun Electronics
Date: June 3rd, 2021
License: MIT. See license file for more information but you can
basically do whatever you want with this code.
Feel like supporting open source hardware?
Buy a board from SparkFun! https://www.sparkfun.com/products/18365
This example prints the current CO2 level, relative humidity, and temperature in C.
Hardware Connections:
Attach RedBoard to computer using a USB cable.
Connect SCD40/41 to RedBoard using Qwiic cable.
Open Serial Monitor at 115200 baud.
*/
#include <Wire.h>
#include "SparkFun_SCD4x_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_SCD4x
SCD4x mySensor;
void setup()
{
Serial.begin(115200);
Serial.println(F("SCD4x Example"));
Wire.begin();
//mySensor.enableDebugging(); // Uncomment this line to get helpful debug messages on Serial
//.begin will start periodic measurements for us (see the later examples for details on how to override this)
if (mySensor.begin() == false)
{
Serial.println(F("Sensor not detected. Please check wiring. Freezing..."));
while (1)
;
}
//By default, the SCD4x has data ready every five seconds.
//We can enable low power operation and receive a reading every ~30 seconds
//But first, we need to stop periodic measurements otherwise startLowPowerPeriodicMeasurement will fail
if (mySensor.stopPeriodicMeasurement() == true)
{
Serial.println(F("Periodic measurement is disabled!"));
}
//Now we can enable low power periodic measurements
if (mySensor.startLowPowerPeriodicMeasurement() == true)
{
Serial.println(F("Low power mode enabled!"));
}
//The SCD4x has data ready every thirty seconds
}
void loop()
{
if (mySensor.readMeasurement()) // readMeasurement will return true when fresh data is available
{
Serial.println();
Serial.print(F("CO2(ppm):"));
Serial.print(mySensor.getCO2());
Serial.print(F("\tTemperature(C):"));
Serial.print(mySensor.getTemperature(), 1);
Serial.print(F("\tHumidity(%RH):"));
Serial.print(mySensor.getHumidity(), 1);
Serial.println();
}
else
Serial.print(F("."));
delay(1000);
}