Skip to content

Commit 7e24889

Browse files
committed
Updated documentation and STL for SPS30
1 parent 52f6b7d commit 7e24889

File tree

5 files changed

+155
-80
lines changed

5 files changed

+155
-80
lines changed

README.md

+125-51
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ Once wifi credentials have been configured pressing the `Boot` button on the ESP
7676

7777
Sensor readings can be published via MQTT for centralised storage and visualition. Each node is configured with its own id and will then publish under `co2monitor/<id>/up/sensors`. The top level topic `co2monitor` is configurable. Downlink messages to nodes can be sent to each individual node using the id in the topic `co2monitor/<id>/down/<command>`, or to all nodes when omitting the id part `co2monitor/down/<command>`
7878

79+
SCD3x/SCD4x
80+
7981
```
8082
{
8183
"co2": 752,
@@ -84,17 +86,51 @@ Sensor readings can be published via MQTT for centralised storage and visualitio
8486
}
8587
```
8688

89+
BME680
90+
91+
```
92+
{
93+
"iaq": 19,
94+
"temperature": "19.2",
95+
"humidity": "75.6",
96+
"pressure": 1014
97+
}
98+
```
99+
100+
SPS30
101+
102+
```
103+
{
104+
"pm0.5": 16,
105+
"pm1": 19,
106+
"pm2.5": 19,
107+
"pm4": 19,
108+
"pm10": 19
109+
}
110+
```
111+
87112
Sending `co2monitor/<id>/down/getConfig` will triger the node to reply with its current settings under `co2monitor/<id>/up/config`
88113

89114
```
90115
{
116+
"appVersion": 1,
91117
"altitude": 10,
92-
"yellowThreshold": 800,
93-
"redThreshold": 1000,
94-
"darkRedThreshold": 2000,
118+
"yellowThreshold": 700,
119+
"redThreshold": 900,
120+
"darkRedThreshold": 1200,
95121
"ledPwm": 255,
96-
"mac": "xxxxyyzz",
97-
"ip": "192.168.1.2"
122+
"mac": "xxyyzz",
123+
"ip": "1.2.3.4",
124+
"scd40": true,
125+
"scd30": true,
126+
"bme680": true,
127+
"lcd": true,
128+
"leds": true,
129+
"sps30": true,
130+
"sps30AutoCleanInt": 604800,
131+
"sps30Status": 0,
132+
"neopxl": 3,
133+
"tempOffset": "7.0"
98134
}
99135
```
100136

@@ -103,9 +139,9 @@ A message to `co2monitor/<id>/down/setConfig` will set the node's configuration
103139
```
104140
{
105141
"altitude": 10,
106-
"yellowThreshold": 800,
107-
"redThreshold": 1000,
108-
"darkRedThreshold": 2000,
142+
"yellowThreshold": 700,
143+
"redThreshold": 900,
144+
"darkRedThreshold": 1200,
109145
"ledPwm": 255
110146
}
111147
```
@@ -116,14 +152,28 @@ A message to `co2monitor/<id>/down/setTemperatureOffset` will set the SCD3x/SCD4
116152
7.0
117153
```
118154

155+
A message to `co2monitor/<id>/down/calibrate` will manually calibrate the SCD3x/SCD4x sensor to the given value:
156+
157+
```
158+
412
159+
```
160+
161+
A message to `co2monitor/<id>/down/setSPS30AutoCleanInterval` will set the SPS30 fan auto-clean interval in seconds to the given value:
162+
163+
```
164+
604800
165+
```
166+
167+
A message to `co2monitor/<id>/down/cleanSPS30` will run a fan clean on the SPS30.
168+
119169
A message to `co2monitor/<id>/down/reboot` will trigger a reset on the node.
120170

121171
## Supported sensors
122172

123173
- [SCD3x CO2, temperature and humidity sensor](https://www.sensirion.com/en/environmental-sensors/carbon-dioxide-sensors/carbon-dioxide-sensors-scd30/)
124174
- [SCD4x CO2, temperature and humidity sensor](https://www.sensirion.com/en/environmental-sensors/carbon-dioxide-sensors/carbon-dioxide-sensor-scd4x/)
125175
- [BME680 IAQ, VOC, temperature and humidity sensor](https://www.bosch-sensortec.com/products/environmental-sensors/gas-sensors/bme680/)
126-
- [SPS30 Small Particulate matter sensor](https://sensirion.com/products/catalog/SPS30/) (coming soon)
176+
- [SPS30 Small Particulate matter sensor](https://sensirion.com/products/catalog/SPS30/)
127177

128178
## Supported displays
129179

@@ -152,7 +202,15 @@ A BME680 sensor can be directly soldered onto the dedicates footprint or connect
152202

153203
## SPS30 Particulate matter sensor
154204

155-
Coming soon
205+
The SPS30 sensor can be connected to the I2C and 5V JST connectors of the pcb.
206+
207+
| fn | I2C | 5V | SPS30 |
208+
| --- | --- | --- | ----- |
209+
| VDD | | +5V | 1 |
210+
| SDA | SDA | | 2 |
211+
| SCL | SCL | | 3 |
212+
| SEL | GND | | 4 |
213+
| GND | | GND | 5 |
156214

157215
## other
158216

@@ -170,40 +228,45 @@ When an ESP32 is used the feather footprint can be used to drive feather wings.
170228

171229
A feather controller can be used to drive the sensors and LEDs, but unfortunately not the RFM96.
172230

173-
## Pin mapping (first generation)
174-
175-
| ESP32 Devkit (30 pin) | fn | Feather pin | fn | LEDs | SCD3x/4x/BME680 | RFM96 |
176-
| --------------------- | -------- | ----------- | ----- | ------ | --------------- | ------- |
177-
| 1 | EN | | | | | |
178-
| 2 | VP-D36 | 9 | A4 | | | |
179-
| 3 | VN-D39 | 8 | A3 | | | |
180-
| 4 | D34 | 7 | A2 | | | |
181-
| 5 | D35 | | | | RDY (SCD3x) | |
182-
| 6 | D32 | 20 | D6 | | | (RESET) |
183-
| 7 | D33 | 22 | D10 | | | |
184-
| 8 | D25 | 6 | A1 | Red | | |
185-
| 9 | D26 | 5 | A0 | Yellow | | |
186-
| 10 | D27 | 23 | D11 | Green | | |
187-
| 11 | D14 | 19 | D5 | | | RESET |
188-
| 12 | D12 | 24 | D12 | | | |
189-
| 13 | D13 | 25 | D13 | | | |
190-
| 14 | GND | | | | | |
191-
| 15 | V_in | | V_USB | | | |
192-
| 16 | 3V3 | | | | | |
193-
| 17 | GND | | | | | |
194-
| 18 | D15 | 21 | D9 | | | |
195-
| 19 | D2 | | | | | |
196-
| 20 | D4 | 10 | A5 | | | |
197-
| 21 | D16 | | | | | DIO1 |
198-
| 22 | D17 | | | | | DIO0 |
199-
| 23 | D5/CS0 | | | | | NSS |
200-
| 24 | D18/SCK | 11 | SCK | | | SCK |
201-
| 25 | D19/MISO | 13 | MISO | | | MISO |
202-
| 26 | D21/SDA | 17 | SDA | | SDA | |
203-
| 27 | D3/Rx | 14 | Rx | | | |
204-
| 28 | D1/TxD | 15 | Tx | | | |
205-
| 29 | D22/SCL | 18 | SCL | | SCL | |
206-
| 30 | D23/MOSI | 12 | MOSI | | | MOSI |
231+
## Pin mapping
232+
233+
| ESP32 Devkit (30 pin) | fn | Feather pin | fn | LEDs | SCD3x/4x/BME680/SPS30 | Neopixel |
234+
| --------------------- | -------- | ----------- | ----- | ------ | --------------------- | -------- |
235+
| 1 | EN | | | | | |
236+
| 2 | VP-D36 | 9 | A4 | | | |
237+
| 3 | VN-D39 | 8 | A3 | | | |
238+
| 4 | D34 | 7 | A2 | | | |
239+
| 5 | D35 | | | | RDY (SCD3x) | |
240+
| 6 | D32 | 20 | D6 | | | |
241+
| 7 | D33 | 22 | D10 | | | |
242+
| 8 | D25 | 6 | A1 | Red | | |
243+
| 9 | D26 | 5 | A0 | Yellow | | |
244+
| 10 | D27 | 23 | D11 | Green | | |
245+
| 11 | D14 | 19 | D5 | | | |
246+
| 12 | D12 | 24 | D12 | | | |
247+
| 13 | D13 | 25 | D13 | | | |
248+
| 14 | GND | | | | | |
249+
| 15 | V_in | 26 | V_USB | | | |
250+
| 16 | 3V3 | 2 | 3V3 | | | |
251+
| 17 | GND | 4 | GND | | | |
252+
| 18 | D15 | 21 | D9 | | | |
253+
| 19 | D2 | | | | | |
254+
| 20 | D4 | 10 | A5 | | | |
255+
| 21 | D16 | | | | | DIN |
256+
| 22 | D17 | | | | | |
257+
| 23 | D5/CS0 | | | | | |
258+
| 24 | D18/SCK | 11 | SCK | | | |
259+
| 25 | D19/MISO | 13 | MISO | | | |
260+
| 26 | D21/SDA | 17 | SDA | | SDA | |
261+
| 27 | D3/Rx | 14 | Rx | | | |
262+
| 28 | D1/TxD | 15 | Tx | | | |
263+
| 29 | D22/SCL | 18 | SCL | | SCL | |
264+
| 30 | D23/MOSI | 12 | MOSI | | | |
265+
| | | 1 | RST | | |
266+
| | | 3 | AREF | | |
267+
| | | 16 | aux | | |
268+
| | | 27 | En | | |
269+
| | | 28 | VBat | | |
207270

208271
## LEDs
209272

@@ -213,37 +276,48 @@ The board has room for 3 x 5mm LEDs for traffic light style indication. Each is
213276
- [Yellow, 9.3cd, 30°, 20 mA, 2.1 V](https://nz.element14.com/broadcom-limited/hlmp-el3g-vx0dd/led-amber-9-3cd-590nm-th/dp/2900814) (use 60Ω resistor)
214277
- [Red, 9.3cd, 30°, 20 mA, 2.1 V](https://nz.element14.com/broadcom-limited/hlmp-eg3a-wx0dd/led-5mm-alingap-red-30deg/dp/1706677) (use 60Ω resistor)
215278

279+
In `config.h` uncomment `HAS_LEDS` and check the `GREEN_LED_PIN`, `YELLOW_LED_PIN` and `NEOPRED_LED_PINIXEL_NUM` settings
280+
281+
```
282+
#define HAS_LEDS
283+
#define GREEN_LED_PIN 27
284+
#define YELLOW_LED_PIN 26
285+
#define RED_LED_PIN 25
286+
```
287+
216288
## Neopixel
217289

218-
in `config.h` uncomment
290+
In `config.h` uncomment `HAS_NEOPIXEL` and check the `NEOPIXEL_PIN` and `NEOPIXEL_NUM` settings
219291

220292
```
221-
#define NEOPIXEL_PIN 4 // pin
222-
#define NEOPIXEL_NUM 8 // number ofNeopixels
293+
#define HAS_NEOPIXEL
294+
#define NEOPIXEL_PIN 3 // pin
295+
#define NEOPIXEL_NUM 16 // number ofNeopixels
223296
```
224297

225298
## Feather wings
226299

227300
### [6 x 12 DotStar](https://www.adafruit.com/product/3449)
228301

229-
in `config.h` uncomment
302+
In `config.h` uncomment `#define HAS_FEATHER_MATRIX` and check the `FEATHER_MATRIX_DATAPIN` and `FEATHER_MATRIX_CLOCKPIN` settings
230303

231304
```
305+
#define HAS_FEATHER_MATRIX
232306
#define FEATHER_MATRIX_DATAPIN 27
233307
#define FEATHER_MATRIX_CLOCKPIN 13
234308
```
235309

236310
### [128x32 OLED](https://www.adafruit.com/product/2900)
237311

238-
in `config.h` set
312+
In `config.h` change
239313

240314
```
241315
#define SSD1306_HEIGHT 32
242316
```
243317

244318
### [128x64 OLED](https://www.aliexpress.com/wholesale?SearchText=128X64+SSD1306)
245319

246-
in `config.h` set
320+
In `config.h` set
247321

248322
```
249323
#define SSD1306_HEIGHT 64
@@ -269,6 +343,6 @@ in `config.h` set pin mappings as needed, e.g.
269343
#define HUB75_OE 33
270344
```
271345

272-
## RFM96
346+
## RFM96 (first generation)
273347

274348
This allows adding a LoRa modem when no WiFi is available to transmit measurements.

case/Case v0.3_10mmSPS30.STL

4.06 MB
Binary file not shown.

case/README.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ The case consists of a 3d printed body and a laser cut transparent acrylic front
77
There are 2 versions of the main body available, with either 10mm or 15mm clearance over the PCB.
88
The 15mm version is recommended for a little more room inside.
99

10-
| file | standoff length | screw length |
11-
| ------------------ | --------------- | ------------ |
12-
| Case v0.3_10mm.STL | 10mm | 20mm |
13-
| Case v0.3_15mm.STL | 15mm | 25mm |
10+
| file | description | standoff length | screw length |
11+
| ------------------- | ----------------------- | --------------- | ------------ |
12+
| Case v0.3_10mm.STL | flat case | 10mm | 20mm |
13+
| Case v0.3_15mm.STL | normal case | 15mm | 25mm |
14+
| Case v0.3_10mmSPS30 | includes room for SPS30 | 10mm | 25mm |
1415

1516
The body should be printed in the following orientation
1617

case/SCD40 breakout.STL

-2.33 MB
Binary file not shown.

0 commit comments

Comments
 (0)