From 8ad568ea1ba830d7f44553778a1e6fec508c7b55 Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Mon, 29 Jun 2020 15:34:23 +0200 Subject: [PATCH] improvements --- src/capacitiveSoilMoistureSensor.cpp | 15 ++++++++++++++- src/header.h | 9 +++++---- src/main.cpp | 24 +++++++++++++++++------- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/capacitiveSoilMoistureSensor.cpp b/src/capacitiveSoilMoistureSensor.cpp index b5184f9..ff6ff1d 100644 --- a/src/capacitiveSoilMoistureSensor.cpp +++ b/src/capacitiveSoilMoistureSensor.cpp @@ -4,12 +4,25 @@ #include +const int numReadings = 20; + void setupCapacitiveSoilMoistureSensor() { // pinMode(PIN_MS, INPUT); } int readCapacitiveSoilMoistureSensor() { - int measurement = analogRead(PIN_MS); + int total = 0; // the running total + // read from the sensor: + for (int readIndex = 0; readIndex < numReadings; readIndex++) + { + total = total + analogRead(PIN_MS); + delay(2); + } + int measurement = total / numReadings; + Serial.print("soil moisture raw: "); + Serial.println(measurement); + // add the reading to the total: + //int measurement = analogRead(PIN_MS); return map(measurement, VALUE_AIR, VALUE_WATER, 0, 100); } \ No newline at end of file diff --git a/src/header.h b/src/header.h index 7eab5cf..564f019 100644 --- a/src/header.h +++ b/src/header.h @@ -26,8 +26,8 @@ // MOISTURE SENSOR // A7 #define PIN_MS 35 -#define VALUE_WATER 275 -#define VALUE_AIR 430 +#define VALUE_WATER 1650 +#define VALUE_AIR 3500 // Ventil #define PIN_VENTIL 26 @@ -41,8 +41,9 @@ #define MQTT_HOST "mqtt.timovolkmann.de" #define MQTT_PORT 1883 #define MQTT_DEVICE_ID "esp-timo" -#define MQTT_TOPIC_BASE_SUBSCRIBE "smartgarden/commands" -#define MQTT_TOPIC_BASE_PUBLISH "smartgarden/updates" +#define MQTT_TOPIC_BASE_SUB "smartgarden/commands" +#define MQTT_TOPIC_BASE_PUB "smartgarden/updates" +#define MQTT_PATH_PUB MQTT_TOPIC_BASE_PUB "/" MQTT_DEVICE_ID "/" // PUBLISH FREQUENCY (MS) #define FREQUENCY 3000 diff --git a/src/main.cpp b/src/main.cpp index 198940a..b94c19a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,11 +3,19 @@ */ #include +#include +//using namespace std; + +#define MQTT_MOISTURE MQTT_PATH_PUB "moisture" +#define MQTT_TEMPERATURE MQTT_PATH_PUB "temperature" +#define MQTT_HUMIDITY MQTT_PATH_PUB "humidity" +#define MQTT_BRIGHTNESS MQTT_PATH_PUB "brightness" unsigned long pingTimer = 0; char buffer[16]; -void setup() { +void setup() +{ Serial.begin(115200); pingTimer = millis(); setupConnections(); @@ -19,32 +27,34 @@ void setup() { Serial.println(); } -void loop() { - if (millis() - pingTimer >= FREQUENCY) { +void loop() +{ + if (millis() - pingTimer >= FREQUENCY) + { float lxValue = readLightSensorValue(); Serial.print("Light intensity: "); Serial.print(lxValue); Serial.println(" lx"); sprintf(buffer, "%f", lxValue); - publishMessage("smartgarden/updates/esp-N2Ff4kaDgs45/brightness", buffer); + publishMessage(MQTT_BRIGHTNESS, buffer); int mstValue = readCapacitiveSoilMoistureSensor(); Serial.print("Soil moisture: "); Serial.println(mstValue); sprintf(buffer, "%i", mstValue); - publishMessage("smartgarden/updates/esp-N2Ff4kaDgs45/moisture", buffer); + publishMessage(MQTT_MOISTURE, buffer); float humidityValue = readHumidity(); Serial.print("Humidity: "); Serial.println(humidityValue); sprintf(buffer, "%f", humidityValue); - publishMessage("smartgarden/updates/esp-N2Ff4kaDgs45/humidity", buffer); + publishMessage(MQTT_HUMIDITY, buffer); float temperatureValue = readTemperature(); Serial.print("Temperature: "); Serial.println(temperatureValue); sprintf(buffer, "%f", temperatureValue); - publishMessage("smartgarden/updates/esp-N2Ff4kaDgs45/temperature", buffer); + publishMessage(MQTT_TEMPERATURE, buffer); Serial.print("\n"); pingTimer = millis();