diff options
author | dakkar <dakkar@thenautilus.net> | 2022-01-28 15:16:38 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2022-01-28 15:16:38 +0000 |
commit | cdd4f766759f8a8e1ea36c6524895714099d2f38 (patch) | |
tree | a6a2345093e2b7df7dc1b4f49cfb3357133e96c1 | |
parent | start (diff) | |
download | env-sensor-cdd4f766759f8a8e1ea36c6524895714099d2f38.tar.gz env-sensor-cdd4f766759f8a8e1ea36c6524895714099d2f38.tar.bz2 env-sensor-cdd4f766759f8a8e1ea36c6524895714099d2f38.zip |
sensirion example, works
-rw-r--r-- | .gitmodules | 9 | ||||
-rw-r--r-- | Makefile | 11 | ||||
m--------- | arduino-core | 0 | ||||
m--------- | arduino-i2c-scd4x | 0 | ||||
m--------- | arduino-sps | 0 | ||||
-rw-r--r-- | main.ino | 94 |
6 files changed, 114 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ad61b56 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "arduino-sps"] + path = arduino-sps + url = https://github.com/Sensirion/arduino-sps +[submodule "arduino-i2c-scd4x"] + path = arduino-i2c-scd4x + url = https://github.com/Sensirion/arduino-i2c-scd4x +[submodule "arduino-core"] + path = arduino-core + url = https://github.com/Sensirion/arduino-core diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..72d8f7e --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +SKETCH = main.ino +CUSTOM_LIBS = arduino-core arduino-i2c-scd4x arduino-sps + +UPLOAD_PORT = /dev/ttyUSB0 +# maybe board with eink? +BOARD = ttgo-t1 + +ESP_ROOT = $(HOME)/Arduino/hardware/espressif/esp32/ +CHIP = esp32 + +include $(HOME)/src/makeEspArduino/makeEspArduino.mk diff --git a/arduino-core b/arduino-core new file mode 160000 +Subproject 38907b450c15b6920cd35123d8d6495875f56eb diff --git a/arduino-i2c-scd4x b/arduino-i2c-scd4x new file mode 160000 +Subproject 59aaa4d9ce9eae00865f398c31e2a38f0832d81 diff --git a/arduino-sps b/arduino-sps new file mode 160000 +Subproject 44645f656b93bcd6842c5f2f7ef7b2911460a1b diff --git a/main.ino b/main.ino new file mode 100644 index 0000000..bc27deb --- /dev/null +++ b/main.ino @@ -0,0 +1,94 @@ +#include <Arduino.h> +#include <SensirionI2CScd4x.h> +#include <Wire.h> + +SensirionI2CScd4x scd4x; + +void printUint16Hex(uint16_t value) { + Serial.print(value < 4096 ? "0" : ""); + Serial.print(value < 256 ? "0" : ""); + Serial.print(value < 16 ? "0" : ""); + Serial.print(value, HEX); +} + +void printSerialNumber(uint16_t serial0, uint16_t serial1, uint16_t serial2) { + Serial.print("Serial: 0x"); + printUint16Hex(serial0); + printUint16Hex(serial1); + printUint16Hex(serial2); + Serial.println(); +} + +void setup() { + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + Wire.begin(21,22); + + uint16_t error; + char errorMessage[256]; + + scd4x.begin(Wire); + + // stop potentially previously started measurement + error = scd4x.stopPeriodicMeasurement(); + if (error) { + Serial.print("Error trying to execute stopPeriodicMeasurement(): "); + errorToString(error, errorMessage, 256); + Serial.println(errorMessage); + } + + uint16_t serial0; + uint16_t serial1; + uint16_t serial2; + error = scd4x.getSerialNumber(serial0, serial1, serial2); + if (error) { + Serial.print("Error trying to execute getSerialNumber(): "); + errorToString(error, errorMessage, 256); + Serial.println(errorMessage); + } else { + printSerialNumber(serial0, serial1, serial2); + } + + // Start Measurement + error = scd4x.startPeriodicMeasurement(); + if (error) { + Serial.print("Error trying to execute startPeriodicMeasurement(): "); + errorToString(error, errorMessage, 256); + Serial.println(errorMessage); + } + + Serial.println("Waiting for first measurement... (5 sec)"); +} + +void loop() { + uint16_t error; + char errorMessage[256]; + + delay(5000); + + // Read Measurement + uint16_t co2 = 0; + float temperature = 0.0f; + float humidity = 0.0f; + error = scd4x.readMeasurement(co2, temperature, humidity); + if (error) { + Serial.print("Error trying to execute readMeasurement(): "); + errorToString(error, errorMessage, 256); + Serial.println(errorMessage); + } else if (co2 == 0) { + Serial.println("Invalid sample detected, skipping."); + } else { + Serial.print("Co2:"); + Serial.print(co2); + Serial.print("\t"); + Serial.print("Temperature:"); + Serial.print(temperature); + Serial.print("\t"); + Serial.print("Humidity:"); + Serial.println(humidity); + } +} |