Skip to content

Commit db2ec94

Browse files
authored
Merge pull request #4 from Sensirion/sen66_1.3.1_20241203_0956
Generate SEN66 driver from SEN66 model version 1.3.1
2 parents e896141 + 5525eee commit db2ec94

9 files changed

Lines changed: 172 additions & 86 deletions

File tree

.github/workflows/arduino_quality_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
uses: sensirion/.github/.github/workflows/driver.arduino.check.yml@main
1414
with:
1515
expect-arduino-examples: true
16-
lint-lib-manager-check: submit
16+
lint-lib-manager-check: update
1717

1818
todo-check:
1919
if: github.event_name == 'push' && github.ref != 'refs/head/main'

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
55

66
## [Unreleased]
77

8+
## [1.0.1] - 2024-12-1
9+
10+
### Fixed
11+
12+
- Fix naming from mass concentration to number concentration for read number concentration method (returned values were correct).
813
## [1.0.0] - 2024-11-25
914

1015
### Added
@@ -21,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2126
- Add interfaces to start, stop and read measurements.
2227
- Add interfaces to read product name, serial number and version
2328

24-
[Unreleased]: https://github.com/Sensirion/arduino-i2c-sen66/compare/1.0.0...HEAD
29+
[Unreleased]: https://github.com/Sensirion/arduino-i2c-sen66/compare/1.0.1...HEAD
30+
[1.0.1]: https://github.com/Sensirion/arduino-i2c-sen66/compare/1.0.0...1.0.1
2531
[1.0.0]: https://github.com/Sensirion/arduino-i2c-sen66/compare/0.1.0...1.0.0
2632
[0.1.0]: https://github.com/Sensirion/arduino-i2c-sen66/releases/tag/0.1.0

README.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,20 @@ manager or `Add .ZIP Library`
3535
#### Dependencies
3636
* [Sensirion Core](https://github.com/Sensirion/arduino-core)
3737

38-
## Sensor wiring
38+
## Connect the sensor
3939

4040
Use the following pin description to connect your SEN66 to the standard I²C bus of your Arduino board:
4141

4242
<img src="images/sen6x-pinout.png" width="300px">
4343

4444
| *Pin* | *Cable Color* | *Name* | *Description* | *Comments* |
4545
|-------|---------------|:------:|----------------|------------|
46-
| 1 | red | VDD | Supply Voltage | 3.3V ±10%
46+
| 1 | red | VDD | Supply Voltage | 3.3V ±5%
4747
| 2 | black | GND | Ground |
4848
| 3 | green | SDA | I2C: Serial data input / output | TTL 5V compatible
4949
| 4 | yellow | SCL | I2C: Serial clock input | TTL 5V compatible
50-
| 5 | | NC | Do not connect |
51-
| 6 | | NC | Do not connect |
50+
| 5 | | NC | Do not connect | Ground (Pins 2 and 5 are connected internally)
51+
| 6 | | NC | Do not connect | Supply voltage (Pins 1 and 6 are connected internally)
5252

5353

5454

@@ -90,7 +90,6 @@ You will find pinout schematics for recommended board models below:
9090
| SCL | 4 | yellow | A5 |
9191

9292

93-
9493
<img src="images/Arduino-Nano-i2c-pinout-3.3V.png" width="600px">
9594
</p>
9695
</details>
@@ -128,7 +127,6 @@ You will find pinout schematics for recommended board models below:
128127
| SCL | 4 | yellow | D21/SCL |
129128

130129

131-
132130
<img src="images/Arduino-Mega-2560-Rev3-i2c-pinout-3.3V.png" width="600px">
133131
</p>
134132
</details>
@@ -158,7 +156,7 @@ You will find pinout schematics for recommended board models below:
158156

159157
1. Install the libraries and dependencies according to [Installation of the library](#installation-of-the-library)
160158

161-
2. Connect the SEN66 sensor to your Arduino as explained in [Sensor wiring](#sensor-wiring)
159+
2. Connect the SEN66 sensor to your Arduino as explained in [Connect the sensor](#connect-the-sensor)
162160

163161
3. Open the `exampleUsage` sample project within the Arduino IDE:
164162

@@ -193,4 +191,4 @@ they are fixed.
193191

194192
## License
195193

196-
See [LICENSE](LICENSE).
194+
See [LICENSE](LICENSE).

examples/exampleUsage/exampleUsage.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Generator: sensirion-driver-generator 1.0.1
55
* Product: sen66
6-
* Model-Version: 1.3.0
6+
* Model-Version: 1.3.1
77
*/
88
/*
99
* Copyright (c) 2024, Sensirion AG

keywords.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,15 @@ getSerialNumber KEYWORD2
4242
readDeviceStatus KEYWORD2
4343
readAndClearDeviceStatus KEYWORD2
4444
deviceReset KEYWORD2
45-
signalMassConcentrationPm0p5 KEYWORD2
4645
signalMassConcentrationPm1p0 KEYWORD2
4746
signalMassConcentrationPm2p5 KEYWORD2
4847
signalMassConcentrationPm4p0 KEYWORD2
4948
signalMassConcentrationPm10p0 KEYWORD2
49+
signalNumberConcentrationPm0p5 KEYWORD2
50+
signalNumberConcentrationPm1p0 KEYWORD2
51+
signalNumberConcentrationPm2p5 KEYWORD2
52+
signalNumberConcentrationPm4p0 KEYWORD2
53+
signalNumberConcentrationPm10p0 KEYWORD2
5054
signalTemperature KEYWORD2
5155
signalHumidity KEYWORD2
5256
signalVocIndex KEYWORD2

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Sensirion I2C SEN66
2-
version=1.0.0
2+
version=1.0.1
33
author=Sensirion
44
maintainer=Sensirion
55
sentence=Library for the SEN66 sensor by Sensirion

metadata.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# driver generation metadata
22
generator_version: 1.0.1
3-
model_version: 1.3.0
3+
model_version: 1.3.1
44
dg_status: released
5-
is_manually_modified: true
5+
is_manually_modified: false
66
first_generated: '2024-10-30 08:14'
7-
last_generated: '2024-11-27 07:57'
7+
last_generated: '2024-12-03 09:56'

src/SensirionI2cSen66.cpp

Lines changed: 65 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Generator: sensirion-driver-generator 1.0.1
55
* Product: sen66
6-
* Model-Version: 1.3.0
6+
* Model-Version: 1.3.1
77
*/
88
/*
99
* Copyright (c) 2024, Sensirion AG
@@ -50,13 +50,6 @@ static uint8_t communication_buffer[48] = {0};
5050
SensirionI2cSen66::SensirionI2cSen66() {
5151
}
5252

53-
float SensirionI2cSen66::signalMassConcentrationPm0p5(
54-
uint16_t massConcentrationPm0p5Raw) {
55-
float massConcentrationPm0p5 = 0.0;
56-
massConcentrationPm0p5 = massConcentrationPm0p5Raw / 10.0;
57-
return massConcentrationPm0p5;
58-
}
59-
6053
float SensirionI2cSen66::signalMassConcentrationPm1p0(
6154
uint16_t massConcentrationPm1p0Raw) {
6255
float massConcentrationPm1p0 = 0.0;
@@ -85,6 +78,41 @@ float SensirionI2cSen66::signalMassConcentrationPm10p0(
8578
return massConcentrationPm10p0;
8679
}
8780

81+
float SensirionI2cSen66::signalNumberConcentrationPm0p5(
82+
uint16_t numberConcentrationPm0p5Raw) {
83+
float numberConcentrationPm0p5 = 0.0;
84+
numberConcentrationPm0p5 = numberConcentrationPm0p5Raw / 10.0;
85+
return numberConcentrationPm0p5;
86+
}
87+
88+
float SensirionI2cSen66::signalNumberConcentrationPm1p0(
89+
uint16_t numberConcentrationPm1p0Raw) {
90+
float numberConcentrationPm1p0 = 0.0;
91+
numberConcentrationPm1p0 = numberConcentrationPm1p0Raw / 10.0;
92+
return numberConcentrationPm1p0;
93+
}
94+
95+
float SensirionI2cSen66::signalNumberConcentrationPm2p5(
96+
uint16_t numberConcentrationPm2p5Raw) {
97+
float numberConcentrationPm2p5 = 0.0;
98+
numberConcentrationPm2p5 = numberConcentrationPm2p5Raw / 10.0;
99+
return numberConcentrationPm2p5;
100+
}
101+
102+
float SensirionI2cSen66::signalNumberConcentrationPm4p0(
103+
uint16_t numberConcentrationPm4p0Raw) {
104+
float numberConcentrationPm4p0 = 0.0;
105+
numberConcentrationPm4p0 = numberConcentrationPm4p0Raw / 10.0;
106+
return numberConcentrationPm4p0;
107+
}
108+
109+
float SensirionI2cSen66::signalNumberConcentrationPm10p0(
110+
uint16_t numberConcentrationPm10p0Raw) {
111+
float numberConcentrationPm10p0 = 0.0;
112+
numberConcentrationPm10p0 = numberConcentrationPm10p0Raw / 10.0;
113+
return numberConcentrationPm10p0;
114+
}
115+
88116
float SensirionI2cSen66::signalTemperature(int16_t temperatureRaw) {
89117
float temperature = 0.0;
90118
temperature = temperatureRaw / 200.0;
@@ -154,32 +182,37 @@ int16_t SensirionI2cSen66::readMeasuredValues(
154182
}
155183

156184
int16_t SensirionI2cSen66::readNumberConcentrationValues(
157-
float& massConcentrationPm0p5, float& massConcentrationPm1p0,
158-
float& massConcentrationPm2p5, float& massConcentrationPm4p0,
159-
float& massConcentrationPm10p0) {
160-
uint16_t massConcentrationPm0p5Raw = 0;
161-
uint16_t massConcentrationPm1p0Raw = 0;
162-
uint16_t massConcentrationPm2p5Raw = 0;
163-
uint16_t massConcentrationPm4p0Raw = 0;
164-
uint16_t massConcentrationPm10p0Raw = 0;
185+
float& numberConcentrationPm0p5, float& numberConcentrationPm1p0,
186+
float& numberConcentrationPm2p5, float& numberConcentrationPm4p0,
187+
float& numberConcentrationPm10p0) {
188+
uint16_t numberConcentrationPm0p5Raw = 0;
189+
uint16_t numberConcentrationPm1p0Raw = 0;
190+
uint16_t numberConcentrationPm2p5Raw = 0;
191+
uint16_t numberConcentrationPm4p0Raw = 0;
192+
uint16_t numberConcentrationPm10p0Raw = 0;
165193
int16_t localError = 0;
166194
localError = readNumberConcentrationValuesAsIntegers(
167-
massConcentrationPm0p5Raw, massConcentrationPm1p0Raw,
168-
massConcentrationPm2p5Raw, massConcentrationPm4p0Raw,
169-
massConcentrationPm10p0Raw);
170-
if (localError != NO_ERROR) {
171-
return localError;
172-
}
173-
massConcentrationPm0p5 = SensirionI2cSen66::signalMassConcentrationPm0p5(
174-
massConcentrationPm0p5Raw);
175-
massConcentrationPm1p0 = SensirionI2cSen66::signalMassConcentrationPm1p0(
176-
massConcentrationPm1p0Raw);
177-
massConcentrationPm2p5 = SensirionI2cSen66::signalMassConcentrationPm2p5(
178-
massConcentrationPm2p5Raw);
179-
massConcentrationPm4p0 = SensirionI2cSen66::signalMassConcentrationPm4p0(
180-
massConcentrationPm4p0Raw);
181-
massConcentrationPm10p0 = SensirionI2cSen66::signalMassConcentrationPm10p0(
182-
massConcentrationPm10p0Raw);
195+
numberConcentrationPm0p5Raw, numberConcentrationPm1p0Raw,
196+
numberConcentrationPm2p5Raw, numberConcentrationPm4p0Raw,
197+
numberConcentrationPm10p0Raw);
198+
if (localError != NO_ERROR) {
199+
return localError;
200+
}
201+
numberConcentrationPm0p5 =
202+
SensirionI2cSen66::signalNumberConcentrationPm0p5(
203+
numberConcentrationPm0p5Raw);
204+
numberConcentrationPm1p0 =
205+
SensirionI2cSen66::signalNumberConcentrationPm1p0(
206+
numberConcentrationPm1p0Raw);
207+
numberConcentrationPm2p5 =
208+
SensirionI2cSen66::signalNumberConcentrationPm2p5(
209+
numberConcentrationPm2p5Raw);
210+
numberConcentrationPm4p0 =
211+
SensirionI2cSen66::signalNumberConcentrationPm4p0(
212+
numberConcentrationPm4p0Raw);
213+
numberConcentrationPm10p0 =
214+
SensirionI2cSen66::signalNumberConcentrationPm10p0(
215+
numberConcentrationPm10p0Raw);
183216
return localError;
184217
}
185218

0 commit comments

Comments
 (0)