mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 09:36:59 +00:00
[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
This commit is contained in:
+109
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
Signal Compensation
|
||||
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
|
||||
|
||||
if (mySensor.begin() == false)
|
||||
{
|
||||
Serial.println(F("Sensor not detected. Please check wiring. Freezing..."));
|
||||
while (1)
|
||||
;
|
||||
}
|
||||
|
||||
//We need to stop periodic measurements before we can change the sensor signal compensation settings
|
||||
if (mySensor.stopPeriodicMeasurement() == true)
|
||||
{
|
||||
Serial.println(F("Periodic measurement is disabled!"));
|
||||
}
|
||||
|
||||
//Now we can change the sensor settings.
|
||||
//There are three signal compensation commands we can use: setTemperatureOffset; setSensorAltitude; and setAmbientPressure
|
||||
|
||||
Serial.print(F("Temperature offset is currently: "));
|
||||
Serial.println(mySensor.getTemperatureOffset(), 2); // Print the temperature offset with two decimal places
|
||||
mySensor.setTemperatureOffset(5); // Set the temperature offset to 5C
|
||||
Serial.print(F("Temperature offset is now: "));
|
||||
Serial.println(mySensor.getTemperatureOffset(), 2); // Print the temperature offset with two decimal places
|
||||
|
||||
Serial.print(F("Sensor altitude is currently: "));
|
||||
Serial.println(mySensor.getSensorAltitude()); // Print the sensor altitude
|
||||
mySensor.setSensorAltitude(1000); // Set the sensor altitude to 1000m
|
||||
Serial.print(F("Sensor altitude is now: "));
|
||||
Serial.println(mySensor.getSensorAltitude()); // Print the sensor altitude
|
||||
|
||||
//There is no getAmbientPressure command
|
||||
bool success = mySensor.setAmbientPressure(98700); // Set the ambient pressure to 98700 Pascals
|
||||
if (success)
|
||||
{
|
||||
Serial.println(F("setAmbientPressure was successful"));
|
||||
}
|
||||
|
||||
//The signal compensation settings are stored in RAM by default and will reset if reInit is called
|
||||
//or if the power is cycled. To store the settings in EEPROM we can call:
|
||||
mySensor.persistSettings(); // Uncomment this line to store the sensor settings in EEPROM
|
||||
|
||||
//Just for giggles, while the periodic measurements are stopped, let's read the sensor serial number
|
||||
char serialNumber[13]; // The serial number is 48-bits. We need 12 bytes plus one extra to store it as ASCII Hex
|
||||
if (mySensor.getSerialNumber(serialNumber) == true)
|
||||
{
|
||||
Serial.print(F("The sensor's serial number is: 0x"));
|
||||
Serial.println(serialNumber);
|
||||
}
|
||||
|
||||
//Finally, we need to restart periodic measurements
|
||||
if (mySensor.startPeriodicMeasurement() == true)
|
||||
{
|
||||
Serial.println(F("Periodic measurements restarted!"));
|
||||
}
|
||||
}
|
||||
|
||||
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(500);
|
||||
}
|
||||
Reference in New Issue
Block a user