Skip to content

jduanen/SensorNet

Repository files navigation

SensorNet

Collection of ESPHome-based ESP8266 and ESP32 devices managed by Home Assistant

TBD

  • finish documentation
  • update the HA Dashboard screencapture
  • select better pictures to be used as example devices
  • finish adding files to sensors/*
    • files to be added
      • add cad files for enclosures to 'cad/'
      • add images for devices to 'assets/'
      • add spec sheets and pinouts for components to 'docs/'
    • sensors
      • AirQualityPMS
      • AirQualitySPS
      • HomeEnvironment
      • KittyCam
      • KittyCamV2
      • LedSign
      • Radiation
      • Temperature
      • TemperatureDisplay
      • WaterHeater
      • WaterHeaterLeak
    • controllers
      • FeederDoor
    • voice assistants
      • ReSpeakerV2
      • ReSpeakerXVF3800
      • VoiceAssistantPE
      • WaveshareVoice

Devices

The SensorNet devices are grouped into three major types -- Sensors, Controllers, and Voice Assistants -- each of which are described below.

For each SensorNet device there is an ESPHome yaml file that contains the configuration information for that device. ESPHome provides an, essentially, zero-code environment where all that is required is to declare the type of controller and peripherals that are used and the connections between them, and the device can then be managed by Home Assistant. Home Assistant provides compilation, dependency-management, download, and logging services for the devices, stores data generated by the devices in a database, provides support for visualization of the data, interaction with the devices, and automations using the devices.

YAML configuration declarations that are common across multiple instances of a type of device are stored in a subdirectory called 'packages/' and included into YAML config files that contain the instance-specific information.

A 'secrets.yaml' must also be provided to Home Assistant. This file contains information such as encryption keys and WiFi credentials that should be protected and kept locally.

Example sensors are the (alpha, beta, and gamma) radiation detectors and the (PMS and SPS) air quality detectors shown here: Radiation and AirQuality Sensors

Here is an example of the Home Assistant dashboard used to monitor the status of the sensors: Home Assistant and ESPHome

Links to ESPHome and Home Assistant:

As a general rule, I have each device emit its RSSI to help ensure good WiFi connections between the devices and the Home Assistant server. The signal strength of the devices is reported in dBm. As a reference, here is a rough way to interpret these measurements:

  • -30 dBm: amazing
    • max value, not necessary
  • -67 dBm: very good
    • min required for reliable streaming
  • -70 dBm: okay
    • min for reliable packet delivery
  • -80 dBm: not good
    • barely usable, not reliable
  • -90 dBM: unusable
    • near the noise floor, not usable

Most SensorNet devices use the ESP8266 boards' microUSB (or the ESP32 boards') connectors to power the entire device (and to do the initial ESPHome firmware load).

Sensors

These devices, their enclosures, and functionality have evolved over time; e.g., I used ESP8266 controllers, micro-USB power, and the cases were held together with screws, more recently I use ESP32 controllers, USB-C for power, and the cases snap together.

In general, I'm focusing on the US Air Quality Index (AQI) values. AQI values run from 0-500 and are grouped into six (color-coded) health categories.

AQ Range Color Label Interpretation
0-50 Green Good Air is clean
51-100 Yellow Moderate Acceptable overall
101-150 Orange Unhealthy for Sensitive Groups Kids, elderly, those with heart/lung disease should limit exertion
151-200 Red Unhealthy Everyone may start to feel effects
201-300 Purple Very Unhealthy Health alert: higher risk for everyone
301-500 Maroon Hazardous Emergency conditions: everyone at risk

AirQualityPMS

This sensor device uses the Plantower PMS7003 (aka PMS) to detect amount and size of particulate matter in the air. The PMS sensors have been shown to provide long-term accurate results, have low power consumption, and are self-cleaning. I have multiple instances of the same type of device and so they all share a common base config file.

Air Quality PMS

Air Quality PMS

Air Quality PMS

Related Links:

AirQualitySPS

This device uses a different type of sensor, the Sensirion SPS30 (SPS) to measure airborne particulate matter of different sizes.

Air Quality SPS

Related Links:

HomeEnvironment

TBD

KittyCam

TBD

KittyCamV2

TBD

LedSign

TBD

Radiation

Measure alpha, beta, gamma radiation.

TBD

Radiation Monitor

Radiation Monitor

Notes:

  • ESP8266 Board
    • rx: GPIO3
    • tx: GPIO?
    • sleep: GPIO?
    • reset: GPI04

#define GK_RESET 2 // GPIO0 aka D4, active low

  • GK Board
    • Settings
      • controlled by menus/LCD/buttons or IR remote control
      • saved in on-board persistent memory
    • I/O Connector
      • 1: GND (N.C.)
      • 2: GND
      • 3: UC_PWR (+5V)
      • 4: TXD
      • 5: RXD
      • 6: RST
    • Logging
      • output rate defined by "Log Period Menu" setting
      • serial port: 9600 8N1
      • example output:
        • "36,0.2052,4.79/" -- i.e, (36 CPM, 0.2052 dose, 4.79V)
    • display options
      • DogM LCD uses SPI interface
      • can use 2x8 (aot 2x16) LCD instead
    • battery power
      • Pololu 2119: LiPo boost to 5VDC
      • 9V battery: ~16hrs of use
      • ~35mA current draw steady state (~24mA w/o display)
      • runs ~22 hrs on 1200mAh LiPo
  • Radiation Sensors
    • CBT11(A)
      • alpha, beta, and gamma
      • mica window
      • 'A' means thinner mica window, so more sensitive
      • starting voltage: 260-320V, operating voltage: 390V
      • 44-49 cps/uR/sec
        • 318 CPM/uSv/hr
  • Annual human exposure
    • natural US: 3.10 mSv/year -- mostly inhalation of air (indoor radon accumulation)
    • artificial US: 3.14 mSv/year -- mostly medical (CT scans and nuclear medicine)
    • total: 6.24 mSv/year
    • ROW: half this amount
  • mRem: milliroentgens
    • REM = 0.1 Sievert
    • 1 uSv = 0.1 mRem

Related Links:

Temperature

TBD

TemperatureDisplay

TBD

WaterHeater

Measure temperature at the outlet of water heater and ambient temperature.

TBD

Water Heater Temperature

pins (starting from side with usb connector): 1: +5V 2: D4/GPIO2 2.2KOhm pullup 3: GND

WaterHeaterLeak

TBD

Controllers

FeederDoor

TBD

Home Assistant Voice Assistants

ReSpeakerV2

TBD

ReSpeakerXVF3800

TBD

VoiceAssistantPE

TBD

WaveshareVoice

TBD

About

Collection of ESPHome-based ESP8266 and ESP32 devices managed by Home Assistant

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors