mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 17:45:49 +00:00
[PIO] Update lib/default folder in Platformio.ini [PIO] Update lib/default folder in Platformio.ini [PIO] Add missing parts in library.properties files
82 lines
2.3 KiB
Arduino
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);
|
|
}
|