smart_garden/src/header.h

78 lines
1.6 KiB
C

/*
Header file for the SmartGarden project
*/
#define HEADER_H
#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
#include <BH1750.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <WiFi.h>
#include <WebServer.h>
#include <AutoConnect.h>
#include <AsyncMqttClient.h>
// fix for core panic during wifi initialization
// #define configMINIMAL_STACK_SIZE 2048
// #define CONFIG_TIMER_TASK_STACK_SIZE 8192
// DHT11
#define PIN_DHT11 14
// MQ-135
#define PIN_MQ135_A 12
#define PIN_MQ135_D 13
// MOISTURE SENSOR // A7
#define PIN_MS 35
#define VALUE_WATER 1650
#define VALUE_AIR 3500
// Ventil
#define PIN_VALVE 32
#define MAX_VALVE_TIMEOUT 10000
// LED
#define PIN_LED_R 2
#define PIN_LED_G 0
#define PIN_LED_B 4
// MQTT
#define MQTT_HOST "mqtt.timovolkmann.de"
#define MQTT_PORT 1883
#define MQTT_DEVICE_ID "esp-timo"
#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 "/"
#define MQTT_PATH_SUB MQTT_TOPIC_BASE_SUB "/#"
// MQTT_DEVICE_ID "/#"
// PUBLISH FREQUENCY (MS)
#define FREQUENCY 3000
// moisture
extern void setupCapacitiveSoilMoistureSensor();
extern int readCapacitiveSoilMoistureSensor();
// light
extern void setupLightSensor();
extern float readLightSensorValue();
// temperature & humidity
extern void setupTemperatureSensor();
extern float readHumidity();
extern float readTemperature();
// mqtt & wifi
extern void setupConnections();
extern void publishMessage(const char *topic, const char *msg);
// sensors
void readSensors();
void toggleValve();
void setSoilProperties(int FC, int PWP, int SAT);