Found the following product SwitchDocLabs Bluetooth sensors
Simple Arduino script to monitor the moisture level of a potted plant. Sensor telemetry data is published using MQTT. MQTT data is consumed by Node-RED and published to Blynk. Additionally, AWS Simple Notification Service (SNS) is utilized to trigger SMS messages to subscribers when low moisture conditions are recorded by the sensor.
ESP32 WiFi-enabled capacitive soil moisture and temperature and humidity sensor link
The lower limit of the sensor was measured in a container of dirt dried in an oven at 250°F for several days and was equal to ~3200. Based on the formula below, the lower limit of the sensor is 0.31 The upper limit of the sensor was measured in a glass of water and was equal to 1360. Based on the formula below, the upper limit of the sensor is 0.74. Because the measurement from the sensor is inversely proportional to the moisture level of the soil, the inverse of the moisture reading multiplied by 1000 is utilized. The formula is as follows:
Instructions for adding ESP32 boards to the Arduino IDE can be found here.
ESP32 board documentation can be found here.
Because the sensor can be battery-powered, the script leverages the ESP32 deep sleep function. Therefore, all code is in the setup function instead of the loop function.
The script performs the following actions:
Node-RED relies upon the following node collections:
Node-RED performs the following actions:
There are a few Node-RED node collections available for working with Amazon Web Services(AWS), and the Simple Notification Service(SNS), in particular. None appear to be actively under development. As a result, a local API was built to handle the interaction with SNS when a low moisture condition occurs. The API is written in Python3 using aiohttp and leverages the AWS Python SDK. The API exposes a single endpoint, /plants/moisture/low_alert/, in order to publish a message to an SNS topic. Subscribers to the SNS topic will receive an SMS message on their mobile phone altering them to the low moisture condition.
The Python3 API relies has the following dependencies: