Compare commits
10 Commits
dcf195e161
...
a095936f3f
Author | SHA1 | Date | |
---|---|---|---|
a095936f3f | |||
547983173b | |||
2145d4eff1 | |||
9fc8ad7318 | |||
66573f2346 | |||
a2ff9491a3 | |||
1ef3ba2e57 | |||
97dd3a9a90 | |||
993c3407ea | |||
ae4713969d |
13
README.md
13
README.md
@ -1,7 +1,7 @@
|
|||||||
# SuperSensor v2.x
|
# SuperSensor v2.x
|
||||||
|
|
||||||
The SuperSensor is an all-in-one voice, motion, presence, temperature/humidity/
|
The SuperSensor is an all-in-one voice, motion, presence, temperature/humidity/air
|
||||||
air quality, and light sensor, built on an ESP32 with ESPHome, and inspired
|
quality, and light sensor, built on an ESP32 with ESPHome, and inspired
|
||||||
heavily by the EverythingSmartHome Everything Presence One sensor and the
|
heavily by the EverythingSmartHome Everything Presence One sensor and the
|
||||||
HomeAssistant "$13 Voice Assistant" project.
|
HomeAssistant "$13 Voice Assistant" project.
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ it bare if you like the "PCB on a wall" aesthetic.
|
|||||||
|
|
||||||
To Use:
|
To Use:
|
||||||
|
|
||||||
* Install the ESPHome configuration `supersensor-2.x.yaml` to a compatible ESP32 devkit (below).
|
* Install the ESPHome configuration `supersensor.yaml` to a compatible ESP32 devkit (below).
|
||||||
* Install the ESP32 and sensors into the custom PCB (if desired).
|
* Install the ESP32 and sensors into the custom PCB (if desired).
|
||||||
* [Optional] 3D Print the custom case.
|
* [Optional] 3D Print the custom case.
|
||||||
* Power up the SuperSensor, connect to the WiFi AP, and connect it to your network.
|
* Power up the SuperSensor, connect to the WiFi AP, and connect it to your network.
|
||||||
@ -69,7 +69,6 @@ and [my update post on version 2.0](https://www.boniface.me/the-supersensor-2.0)
|
|||||||
|
|
||||||
## Parts List
|
## Parts List
|
||||||
|
|
||||||
|-------|--------------------|----------------------------------|-------|
|
|
||||||
| Qty | Component | Cost (2025/05 CAD, ex. shipping) | Links |
|
| Qty | Component | Cost (2025/05 CAD, ex. shipping) | Links |
|
||||||
|-------|--------------------|----------------------------------|-------|
|
|-------|--------------------|----------------------------------|-------|
|
||||||
| 1 | GY-SGP30 | $5.73 | [AliExpress](https://www.aliexpress.com/item/1005008473372972.html) |
|
| 1 | GY-SGP30 | $5.73 | [AliExpress](https://www.aliexpress.com/item/1005008473372972.html) |
|
||||||
@ -84,12 +83,12 @@ and [my update post on version 2.0](https://www.boniface.me/the-supersensor-2.0)
|
|||||||
| 1 | Female pin header† | $1.59 ($15.99/10) | [Amazon](https://www.amazon.ca/dp/B08CMNRXJ1) |
|
| 1 | Female pin header† | $1.59 ($15.99/10) | [Amazon](https://www.amazon.ca/dp/B08CMNRXJ1) |
|
||||||
| 1 | Custom PCB (JLC) | $0.69 ($6.89/10) | [GitHub](https://github.com/joshuaboniface/supersensor) |
|
| 1 | Custom PCB (JLC) | $0.69 ($6.89/10) | [GitHub](https://github.com/joshuaboniface/supersensor) |
|
||||||
| 1 | 3D Printed case | $?.??‡ | [GitHub](https://github.com/joshuaboniface/supersensor) |
|
| 1 | 3D Printed case | $?.??‡ | [GitHub](https://github.com/joshuaboniface/supersensor) |
|
||||||
|-------|--------------------|----------------------------------|-------|
|
| **TOTAL** | | **$33.64** | |
|
||||||
| TOTAL | | $33.64 | |
|
|
||||||
|-------|--------------------|----------------------------------|-------|
|
|
||||||
|
|
||||||
`*` Ensure you select the correct device on the page as it shows multiple options.
|
`*` Ensure you select the correct device on the page as it shows multiple options.
|
||||||
|
|
||||||
`†` This is optional and only required if you don't want to directly solder the ESP32 to the board, but I recommend it.
|
`†` This is optional and only required if you don't want to directly solder the ESP32 to the board, but I recommend it.
|
||||||
|
|
||||||
`‡` Providing a price is impossible due to the wide range of possible fillament types and brands, but should be negligible.
|
`‡` Providing a price is impossible due to the wide range of possible fillament types and brands, but should be negligible.
|
||||||
|
|
||||||
## Configurable Options
|
## Configurable Options
|
||||||
|
50554
board/supersensor.dxf
50554
board/supersensor.dxf
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -53,7 +53,7 @@ esphome:
|
|||||||
- switch.turn_on: voice_support_active
|
- switch.turn_on: voice_support_active
|
||||||
|
|
||||||
dashboard_import:
|
dashboard_import:
|
||||||
package_import_url: github://joshuaboniface/supersensor/supersensor-2.x.yaml
|
package_import_url: github://joshuaboniface/supersensor/supersensor.yaml@2.x
|
||||||
|
|
||||||
esp32:
|
esp32:
|
||||||
board: esp32dev
|
board: esp32dev
|
||||||
@ -364,7 +364,8 @@ interval:
|
|||||||
}
|
}
|
||||||
|
|
||||||
micro_wake_word:
|
micro_wake_word:
|
||||||
model: hey_jarvis
|
models:
|
||||||
|
- model: hey_jarvis
|
||||||
on_wake_word_detected:
|
on_wake_word_detected:
|
||||||
then:
|
then:
|
||||||
- voice_assistant.start:
|
- voice_assistant.start:
|
||||||
@ -491,13 +492,13 @@ light:
|
|||||||
output:
|
output:
|
||||||
- platform: ledc
|
- platform: ledc
|
||||||
id: rgb_r
|
id: rgb_r
|
||||||
pin: GPIO32
|
pin: GPIO23
|
||||||
- platform: ledc
|
- platform: ledc
|
||||||
id: rgb_g
|
id: rgb_g
|
||||||
pin: GPIO33
|
pin: GPIO22
|
||||||
- platform: ledc
|
- platform: ledc
|
||||||
id: rgb_b
|
id: rgb_b
|
||||||
pin: GPIO25
|
pin: GPIO21
|
||||||
|
|
||||||
ld2410:
|
ld2410:
|
||||||
id: ld2410_radar
|
id: ld2410_radar
|
||||||
@ -513,6 +514,15 @@ sensor:
|
|||||||
name: "SGP30 TVOC"
|
name: "SGP30 TVOC"
|
||||||
id: sgp30_tvoc
|
id: sgp30_tvoc
|
||||||
accuracy_decimals: 1
|
accuracy_decimals: 1
|
||||||
|
eco2_baseline:
|
||||||
|
name: "SGP30 Baseline eCO2"
|
||||||
|
id: sgp30_baseline_ec02
|
||||||
|
tvoc_baseline:
|
||||||
|
name: "SGP30 Baseline TVOC"
|
||||||
|
id: sgp30_baseline_tvoc
|
||||||
|
compensation:
|
||||||
|
temperature_source: sht45_temperature
|
||||||
|
humidity_source: sht45_humidity
|
||||||
store_baseline: yes
|
store_baseline: yes
|
||||||
update_interval: 15s
|
update_interval: 15s
|
||||||
|
|
||||||
@ -559,7 +569,7 @@ sensor:
|
|||||||
if (tvoc > 2200 || eco2 > 2000) return 1; // Unhealthy
|
if (tvoc > 2200 || eco2 > 2000) return 1; // Unhealthy
|
||||||
if (tvoc > 660 || eco2 > 1200) return 2; // Poor
|
if (tvoc > 660 || eco2 > 1200) return 2; // Poor
|
||||||
if (tvoc > 220 || eco2 > 800) return 3; // Moderate
|
if (tvoc > 220 || eco2 > 800) return 3; // Moderate
|
||||||
if (tvoc > 65 || eco2 > 600) return 4; // Good
|
if (tvoc > 65 || eco2 > 500) return 4; // Good
|
||||||
return 5; // Excellent
|
return 5; // Excellent
|
||||||
update_interval: 15s
|
update_interval: 15s
|
||||||
|
|
||||||
@ -690,7 +700,7 @@ binary_sensor:
|
|||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "PIR GPIO"
|
name: "PIR GPIO"
|
||||||
id: pir_gpio
|
id: pir_gpio
|
||||||
pin: GPIO13
|
pin: GPIO32
|
||||||
internal: false
|
internal: false
|
||||||
device_class: motion
|
device_class: motion
|
||||||
on_press:
|
on_press:
|
||||||
@ -1070,6 +1080,7 @@ text_sensor:
|
|||||||
name: "CO2 Level"
|
name: "CO2 Level"
|
||||||
lambda: |-
|
lambda: |-
|
||||||
int eco2 = id(sgp30_eco2).state;
|
int eco2 = id(sgp30_eco2).state;
|
||||||
|
if (eco2 < 500) return {"Excellent"};
|
||||||
if (eco2 < 800) return {"Good"};
|
if (eco2 < 800) return {"Good"};
|
||||||
if (eco2 < 1200) return {"Moderate"};
|
if (eco2 < 1200) return {"Moderate"};
|
||||||
if (eco2 < 2000) return {"Poor"};
|
if (eco2 < 2000) return {"Poor"};
|
Reference in New Issue
Block a user