first working version

This commit is contained in:
Wolfgang Hottgenroth 2018-04-26 11:18:35 +02:00
parent 91c2841ef5
commit 78370e34dd
Signed by: wn
GPG Key ID: B586EAFCDF2F65F4
6 changed files with 48 additions and 13 deletions

View File

@ -184,10 +184,10 @@ environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.DT
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.DTS/value=3600 environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.DTS/value=3600
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.LOCAL/delimiter=\: environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.LOCAL/delimiter=\:
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.LOCAL/operation=replace environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.LOCAL/operation=replace
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.LOCAL/value=1524433102 environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.LOCAL/value=1524511581
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.UTC/delimiter=\: environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.UTC/delimiter=\:
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.UTC/operation=replace environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.UTC/operation=replace
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.UTC/value=1524425902 environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.UTC/value=1524504381
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.ZONE/delimiter=\: environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.ZONE/delimiter=\:
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.ZONE/operation=replace environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.ZONE/operation=replace
environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.ZONE/value=3600 environment/project/io.sloeber.core.toolChain.release.1856809793/A.EXTRA.TIME.ZONE/value=3600
@ -469,7 +469,7 @@ environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.COM_PORT
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.COM_PORT/value=/dev/ttyUSB5 environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.COM_PORT/value=/dev/ttyUSB5
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.ECLIPSE_LOCATION/delimiter=\: environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.ECLIPSE_LOCATION/delimiter=\:
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.ECLIPSE_LOCATION/operation=replace environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.ECLIPSE_LOCATION/operation=replace
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home}///////////////// environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home}/////////////////////////////////////
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.EXTRA.ALL/delimiter=\: environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.EXTRA.ALL/delimiter=\:
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.EXTRA.ALL/operation=replace environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.EXTRA.ALL/operation=replace
environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.EXTRA.ALL/value= environment/project/io.sloeber.core.toolChain.release.1856809793/JANTJE.EXTRA.ALL/value=

View File

@ -19,11 +19,12 @@ configItems = [
{"label":"MQTT Topic", "key":"mqttTopic", "type":"C", "length":64, "default":"IoT/RainSensor1/Value"}, {"label":"MQTT Topic", "key":"mqttTopic", "type":"C", "length":64, "default":"IoT/RainSensor1/Value"},
{"label":"MQTT DebugTopic", "key":"mqttDebugTopic", "type":"C", "length":64, "default":"IoT/RainSensor1/Debug"}, {"label":"MQTT DebugTopic", "key":"mqttDebugTopic", "type":"C", "length":64, "default":"IoT/RainSensor1/Debug"},
{"label":"DebugMode", "key":"debugMode", "type":"I", "default":0}, {"label":"DebugMode", "key":"debugMode", "type":"I", "default":0},
{"label":"Period", "key":"period", "type":"I", "default":300} {"label":"Period (s)", "key":"period", "type":"I", "default":5},
{"label":"Debounce (us)", "key":"debounce", "type":"I", "default":300}
] ]
magic = 0xC0DE0003 magic = 0xC0DE0004
appName = "ESP8266 based RainSensor" appName = "ESP8266 based RainSensor"
confWifiSsid = "espconfig" confWifiSsid = "espconfig"

View File

@ -9,7 +9,7 @@
tConfigBlock configBlock; tConfigBlock configBlock;
const uint32_t MAGIC = 3235774467; const uint32_t MAGIC = 3235774468;
const char* CONFIG_SSID = "espconfig"; const char* CONFIG_SSID = "espconfig";
extern ESP8266WebServer webServer; extern ESP8266WebServer webServer;
@ -39,7 +39,8 @@ void configServeIndex() {
strcpy(configBlock.mqttTopic, "IoT/RainSensor1/Value"); strcpy(configBlock.mqttTopic, "IoT/RainSensor1/Value");
strcpy(configBlock.mqttDebugTopic, "IoT/RainSensor1/Debug"); strcpy(configBlock.mqttDebugTopic, "IoT/RainSensor1/Debug");
configBlock.debugMode = 0; configBlock.debugMode = 0;
configBlock.period = 500; configBlock.period = 5;
configBlock.debounce = 300;
} }
if (! checkAuthentication()) { if (! checkAuthentication()) {
@ -244,7 +245,7 @@ void configServeIndex() {
" </tr>" " </tr>"
" <tr>" " <tr>"
" <td>" " <td>"
" <label for\"period\">Period</label>" " <label for\"period\">Period (s)</label>"
" </td><td>" " </td><td>"
" <input type=\"text\" name=\"period\" id=\"period\" "; " <input type=\"text\" name=\"period\" id=\"period\" ";
@ -252,6 +253,20 @@ void configServeIndex() {
buffer += configBlock.period; buffer += configBlock.period;
buffer += "\""; buffer += "\"";
buffer +=
" />"
" </td>"
" </tr>"
" <tr>"
" <td>"
" <label for\"debounce\">Debounce (us)</label>"
" </td><td>"
" <input type=\"text\" name=\"debounce\" id=\"debounce\" ";
buffer += " value=\"";
buffer += configBlock.debounce;
buffer += "\"";
buffer += buffer +=
" />" " />"
" </td>" " </td>"
@ -307,6 +322,8 @@ void configServeGetConfiguration() {
configBlock.debugMode = atoi(arg.c_str()); configBlock.debugMode = atoi(arg.c_str());
arg = webServer.arg("period"); arg = webServer.arg("period");
configBlock.period = atoi(arg.c_str()); configBlock.period = atoi(arg.c_str());
arg = webServer.arg("debounce");
configBlock.debounce = atoi(arg.c_str());
configBlock.magic = MAGIC; configBlock.magic = MAGIC;
@ -383,6 +400,10 @@ void showConfiguration() {
Serial.print(configBlock.period); Serial.print(configBlock.period);
Serial.println(">"); Serial.println(">");
Serial.print("debounce = <");
Serial.print(configBlock.debounce);
Serial.println(">");
Serial.println("---"); Serial.println("---");
} }

View File

@ -13,6 +13,7 @@ typedef struct {
char mqttDebugTopic[64]; char mqttDebugTopic[64];
uint32_t debugMode; uint32_t debugMode;
uint32_t period; uint32_t period;
uint32_t debounce;
} tConfigBlock; } tConfigBlock;
extern const uint32_t MAGIC; extern const uint32_t MAGIC;

View File

@ -13,6 +13,6 @@
#define EEPROM_ADDR 0 #define EEPROM_ADDR 0
#define CONFIG_SWITCH 0 #define CONFIG_SWITCH 0
#define HALL_PIN 2 #define HALL_PIN 13
#endif /* DEFINES_H_ */ #endif /* DEFINES_H_ */

View File

@ -27,7 +27,12 @@ PubSubClient client(espClient);
void count() { void count() {
static uint32_t lastEvent = 0;
uint32_t currentEvent = micros();
if (currentEvent > (lastEvent + configBlock.debounce)) {
lastEvent = currentEvent;
cnt++; cnt++;
}
} }
void setup_wifi() { void setup_wifi() {
@ -124,7 +129,6 @@ void loopProduction() {
static uint32_t lastMillis = 0; static uint32_t lastMillis = 0;
uint32_t currentMillis = millis(); uint32_t currentMillis = millis();
if (currentMillis > (lastMillis + (configBlock.period * 1000))) { if (currentMillis > (lastMillis + (configBlock.period * 1000))) {
lastMillis = currentMillis; lastMillis = currentMillis;
@ -134,10 +138,18 @@ void loopProduction() {
cnt = 0; cnt = 0;
interrupts(); interrupts();
uint16_t battery = analogRead(A0);
#define BUF_SIZE 128
char buf[BUF_SIZE];
snprintf(buf, BUF_SIZE-1, "{\"value\":%ld, \"battery\":%ld}", myCnt, battery);
client.publish(configBlock.mqttTopic, buf);
#ifdef DEBUG
Serial.println(myCnt); Serial.println(myCnt);
#endif
} }
} }