Environmental sensor
Components
CO₂ sensor
Sensirion SCD40, via the SCD41 dev kit
Using the Sensirion Arduino library
connector: JST PH 2.0mm 4 pin
- 1 SCL
- 2 GND
- 3 VDD
- 4 SDA
particulate sensor
Using the Sensirion Arduino library
connector: JST ZH 1.5mm 5 pin
- 1 VDD
- 2 SDA
- 3 SCL
- 4 SEL → GND (to select I₂C mode)
- 5 GND
main board
LILYGO® TTGO T5 V2.3.1 with 2.13 Inch E-Paper Screen
Using the same Arduino libraries as the LilyGo examples
battery connector: JST 1.25mm 2 pin
- 21 SDA
- 22 SCL
Software
Arduino +
ESP32 +
makeEspArduino + a bunch
of libraries; git submodule init && git submodule update
to get
them.
You'll probably need to adjust some paths in the
Makefile
, then you can make flash
to build and flash
the software.
Serial protocol
make monitor
(or make run
if you want to build+flash+monitor)
lets you interact with the serial line.
Lines starting with #
are debug information, lines starting with !
are errors / warnings.
You can send tagged commands, and get tagged responses. For example, you write:
1 logwipe
and you get back:
# reading
# 1 logwipe
# <1|logwipe>
# file: quality.csv
1 wiped
and the logged data has been removed from the SD card.
Then you write:
2 logcat
and get:
# reading
# 2 logcat
# <2|logcat>
2 begin
secs, co2, temp, humid, pm1, pm2.5, pm4, pm10, batt
162, 639, 18.1, 33.7, 1.1, 0.1, 0.0, 0.0, 4.26
168, 637, 17.8, 34.2, 1.1, 0.1, 0.0, 0.0, 4.26
174, 637, 17.8, 34.2, 1.1, 0.1, 0.0, 0.0, 4.26
180, 637, 17.8, 34.2, 1.1, 0.1, 0.0, 0.0, 4.26
187, 637, 17.8, 34.2, 1.1, 0.1, 0.0, 0.0, 4.26
193, 637, 17.8, 34.2, 1.1, 0.1, 0.0, 0.0, 4.26
2 end
which is the whole contents of the data log from the SD card.
There's also setco $int
, to force-calibrate the CO₂ sensor, but I
haven't tested it yet.
Helper programs
If you install Path::Tiny
and IO::Termios
on your Perl, you can
use utils/get-data
to get the logged data off the
sensor.
Enclosure
Render with OpenSCAD, then print.
I printed on a Prusa MK3S, with PLA, sliced with PrusaSlicer:
- setting "0.20mm speed"
- variable layer height
- "adaptive cubic" fill pattern
- bottom layer of the enclosure:
- 4 bottom solid layers
- 2 top solid layers
- middle layer of the enclosure:
- 2 bottom solid layers
- 2 top solid layers
- top layer of the enclosure:
- 4 bottom solid layers (which are, in fact, the top layers of the enclosure, because the top is upside-down)
- 2 top solid layers