Files
OpenMQTTGateway/main/config_Touch.h

102 lines
4.1 KiB
C

/*
OpenMQTTGateway - ESP8266 or Arduino program for home automation
Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal and a MQTT broker
Send and receiving command by MQTT
This files enables to set your parameter for the esp32's touch buttons
Copyright: (c) Florian Xhumari
Uses work by Florian ROBERT
This file is part of OpenMQTTGateway.
OpenMQTTGateway is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenMQTTGateway is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef config_Touch_h
#define config_Touch_h
extern void setupTouch();
extern void touchToMQTT();
/*----------------------------USER PARAMETERS-----------------------------*/
/*-------------DEFINE YOUR MQTT PARAMETERS BELOW----------------*/
#define TOUCHTOPIC "/touchToMQTT"
// Time between readings of the touch sensor. Don't make it too short, as
// reading one touch sensor takes 0.5 ms.
#if !defined(TOUCH_TIME_BETWEEN_READINGS) || (TOUCH_TIME_BETWEEN_READINGS) < 10
# define TOUCH_TIME_BETWEEN_READINGS 30
#endif
// We take the average reading of the sensor, and consider as "touched" state
// any reading less than average * TOUCH_THRESHOLD / 100.
#if !defined(TOUCH_THRESHOLD)
# define TOUCH_THRESHOLD 75
#endif
// Minimum duration of "touched" state to generate a touch event. By default,
// we'll wait 3 readings indicating "touched" in order to generate a touch event.
#if !defined(TOUCH_MIN_DURATION) || (TOUCH_MIN_DURATION < 10)
# define TOUCH_MIN_DURATION 90
#endif
// After a touch was sensed, don't consider changes to "touched" status
// for this duration.
#if !defined(TOUCH_DEBOUNCE_TIME) || (TOUCH_DEBOUNCE_TIME < 100)
# define TOUCH_DEBOUNCE_TIME 200
#endif
/****************************************
*
* One can define TOUCH_GPIO, or TOUCH_GPIO_0 through TOUCH_GPIO_9 to
* include up to 10 sensors.
*
* By default there's only one sensor at TOUCH_GPIO, default to
* pin 4 (T0).
*
****************************************/
#if defined(TOUCH_GPIO) && !defined(TOUCH_GPIO_0)
# define TOUCH_GPIO_0 (TOUCH_GPIO)
#endif
#if !defined(TOUCH_GPIO_0)
// T0 == GPIO 4
# define TOUCH_GPIO_0 T0
#endif
#if defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3) && defined(TOUCH_GPIO_4) && defined(TOUCH_GPIO_5) && defined(TOUCH_GPIO_6) && defined(TOUCH_GPIO_7) && defined(TOUCH_GPIO_8) && defined(TOUCH_GPIO_9)
# define TOUCH_SENSORS 10
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3) && defined(TOUCH_GPIO_4) && defined(TOUCH_GPIO_5) && defined(TOUCH_GPIO_6) && defined(TOUCH_GPIO_7) && defined(TOUCH_GPIO_8)
# define TOUCH_SENSORS 9
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3) && defined(TOUCH_GPIO_4) && defined(TOUCH_GPIO_5) && defined(TOUCH_GPIO_6) && defined(TOUCH_GPIO_7)
# define TOUCH_SENSORS 8
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3) && defined(TOUCH_GPIO_4) && defined(TOUCH_GPIO_5) && defined(TOUCH_GPIO_6)
# define TOUCH_SENSORS 7
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3) && defined(TOUCH_GPIO_4) && defined(TOUCH_GPIO_5)
# define TOUCH_SENSORS 6
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3) && defined(TOUCH_GPIO_4)
# define TOUCH_SENSORS 5
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2) && defined(TOUCH_GPIO_3)
# define TOUCH_SENSORS 4
#elif defined(TOUCH_GPIO_1) && defined(TOUCH_GPIO_2)
# define TOUCH_SENSORS 3
#elif defined(TOUCH_GPIO_1)
# define TOUCH_SENSORS 2
#else
# define TOUCH_SENSORS 1
#endif
#endif