Skip to content

Latest commit

 

History

History
115 lines (104 loc) · 5.57 KB

REQUIREMENTS.md

File metadata and controls

115 lines (104 loc) · 5.57 KB

MySoilSensorESP32 - Multi-channel soil moisture sensor

Objectives

  • get information about soil moisture, to drive decision when to water a plant
  • deal with variability in placement of sensor within a pot, resulting in differing range of measured values etc.

Use Case

  • monitor soil moisture of multiple pots using one gadget, with a durable sensor stuck in each pot

Requirements

Connectivity

  • R001 the device has a wireless connection to the home automation system, via WiFi.
    Rationale: decide against MySensors RF24 because of range concerns, and because it would not support MQTT
    • R001.1 when using Wifi, the SSID and password are configurable in source code
  • R002 the device communicates via MQTT
    • R002.1 the MQTT broker name and port are configurable in source code
  • R003 the device supports over-the-air software updates
  • `R004' device behavior can be configured over-the-air (details below, in configuration section)
  • R005 the device receives runtime configuration instructions via MQTT
    • R005.1 it is acceptable that the device polls for runtime configuration instructions only when it wakes up for measurements. This means that the configuration instructions must be published as retained messages.
    • R005.2 the device acknowledges receipt of runtime configuration information by deleting the MQTT topic

Hardware

  • R010 the device runs on batteries
  • R011 if non-rechargeable batteries are used, they must last for at least a year
  • R012 if rechargeable batteries are used, they must be rechargeable via a solar panel

Measurements

  • R020 the device connects to at least 4 soil sensors
  • R021 the device is compatible with capacitive soil sensors
  • R022 the device measures the absolute voltage output by each sensor, in millivolts
  • R023 the device detects when a sensor is disconnected
    • R023.1 when a sensor is disconnected, the device resets the range of observed voltages
    • R023.2 while a sensor is disconnected, measurement values do not contribute to the "observed range
  • R024 while a meaningful range of sensor voltages has been observed, the device also calculates relative moisture.
    • R024.1 Design decision: "meaningful" range is 5% of the maximum ADC
    • R024.2 relative moisture is calculated as a fraction of the observed voltage range, with smaller values indicating dry soil, and vice versa
  • R025 the device measures the battery voltage, which may be up to 4.7V

Reports

  • R030 all reports are made as MQTT messages, in a format the can be easily parsed by OpenHAB
  • R031 the device reports absolute voltage measurements of sensor outputs, in millivolts
  • R032 the device reports relative moisture measurements (see above), on a scale of 0 to 1000 (i.e.promille of observed range)
  • R033 the device reports relevant parameters of its internal status
  • R034 the device reports the battery voltage
  • R035 the device reports Wifi connection quality ("RSSI") on a scale of 0 to 100, with 100 being the best quality
  • R036 the device reports the number of times it has woken up from deep sleep
  • R037 the device reports the total time it has been operational since power-up, including sleep times
  • R038 the device reports the time it was awake to make a measurement, in milliseconds, after each wake period
  • R039 the device reports the time it took to connect to Wifi, in milliseconds, after each wake period

Configuration

  • R040 the interval between measurement reports is configurable in source code, between 1 min and 1 hour
  • R041 the interval between device status reports is configurable in source code, between the measurements report interval and 24h
  • R042 the interval between measurement reports can be changed at runtime
  • R043 the interval between device status reports can be changed at runtime
  • R044 the range for relative moisture calculation can be reset at runtime
    • R044.1 the range for relative moisture calculation can be reset independently for each channel

Architecture

  • R101 the device uses cheap Aliexpress sourced capacitive soil moisture sensors based on a 555 oscillator
  • R102 the device uses a Wifi-capable processor, i.e. ESP32.
    Rationale: ability to work outside MySensors range
  • R102 the device uses 2 AAA batteries.
    Rationale: only way to satisfy battery life requirements

Mechanical design

  • R103 the connection from sensor to device can be up to 60cm long. Rationale: balcony flower boxes are 60cm wide, and a device can sit between 2 flower boxes
  • R104 the connection from sensor to device is easy to disconnect "in the field"
  • R105 the connection from sensor to device uses cheap (<0.5€) connectors.
    Solution: RJ12 6P4C connectors
  • R106 the connector from sensor cable to device need not be waterproof.
    Rationale: rain protection is achieved by other means, protecting the entire device.