From 6dfe9e363a343c24b17a04f5e807383ac3a6104f Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Thu, 25 Jan 2018 15:25:49 +0100 Subject: [PATCH] works so far --- .project | 2 +- .settings/language.settings.xml | 2 +- .settings/org.eclipse.cdt.core.prefs | 38 +++--- ConfigGenerator/configGen.py | 14 ++- TouchSwitch.cpp | 3 - configuration.cpp | 89 +++++++++++++- configuration.h | 4 + defines.h | 6 +- productionMode.cpp | 169 ++++++++++++++++++++------- 9 files changed, 248 insertions(+), 79 deletions(-) diff --git a/.project b/.project index 38d8382..faf0d9e 100644 --- a/.project +++ b/.project @@ -45,7 +45,7 @@ core/variant 2 - ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/generic + ECLIPSE_HOME/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/nodemcu libraries/EEPROM diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index a63e1d4..a28bd98 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -4,7 +4,7 @@ - + diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs index 9ed7360..611faf1 100644 --- a/.settings/org.eclipse.cdt.core.prefs +++ b/.settings/org.eclipse.cdt.core.prefs @@ -13,7 +13,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.ARCH/ope environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.ARCH/value=ESP8266 environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.BOARD/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.BOARD/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.BOARD/value=ESP8266_ESP01 +environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.BOARD/value=ESP8266_NODEMCU environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.CORE.PATH/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.CORE.PATH/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.CORE.PATH/value=${A.RUNTIME.PLATFORM.PATH}/cores/${A.BUILD.CORE} @@ -22,16 +22,16 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.CORE/ope environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.CORE/value=esp8266 environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_LEVEL/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_LEVEL/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_LEVEL/value=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM +environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_LEVEL/value= environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_PORT/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_PORT/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_PORT/value=-DDEBUG_ESP_PORT\=Serial +environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.DEBUG_PORT/value= environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.EXTRA_FLAGS/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.EXTRA_FLAGS/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.EXTRA_FLAGS/value=-DESP8266 environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_FREQ/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_FREQ/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_FREQ/value=80 +environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_FREQ/value=40 environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_LD/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_LD/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.FLASH_LD/value=eagle.flash.4m1m.ld @@ -76,10 +76,10 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.SYSTEM.P environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.SYSTEM.PATH/value=${A.RUNTIME.PLATFORM.PATH}/system environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT.PATH/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT.PATH/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/generic +environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT.PATH/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/variants/nodemcu environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT/value=generic +environment/project/io.sloeber.core.toolChain.release.547546691/A.BUILD.VARIANT/value=nodemcu environment/project/io.sloeber.core.toolChain.release.547546691/A.COMPILER.AR.CMD/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.COMPILER.AR.CMD/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.COMPILER.AR.CMD/value=xtensa-lx106-elf-ar @@ -184,10 +184,10 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.DTS environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.DTS/value=0 environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.LOCAL/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.LOCAL/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.LOCAL/value=1516796655 +environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.LOCAL/value=1516881551 environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.UTC/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.UTC/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.UTC/value=1516793055 +environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.UTC/value=1516877951 environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.ZONE/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.ZONE/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.EXTRA.TIME.ZONE/value=3600 @@ -202,7 +202,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.JANTJE.VARIANT environment/project/io.sloeber.core.toolChain.release.547546691/A.JANTJE.VARIANT.REFERENCED.PLATFORM/value=${JANTJE.SELECTED.PLATFORM} environment/project/io.sloeber.core.toolChain.release.547546691/A.NAME/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.NAME/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.NAME/value=Generic ESP8266 Module +environment/project/io.sloeber.core.toolChain.release.547546691/A.NAME/value=NodeMCU 1.0 (ESP-12E Module) environment/project/io.sloeber.core.toolChain.release.547546691/A.PACKAGES/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.PACKAGES/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.PACKAGES/value=${eclipse_home}/arduinoPlugin/packages @@ -226,7 +226,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.COMBI environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.COMBINE.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.ELF.CMD}" ${A.COMPILER.C.ELF.FLAGS} ${A.COMPILER.C.ELF.EXTRA_FLAGS} -o "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" -Wl,--start-group ${A.OBJECT_FILES} "${A.BUILD.PATH}/arduino.ar" ${A.COMPILER.C.ELF.LIBS} -Wl,--end-group "-L${A.BUILD.PATH}" environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.1/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TouchSwitch/Release/core" -c -Wall -Wextra -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions\=4 -std\=gnu99 -ffunction-sections -fdata-sections -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DDEBUG_ESP_PORT\=Serial -DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM -DARDUINO\=10802 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_ESP01"' -DESP8266 +environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TouchSwitch/Release/core" -c -Wall -Wextra -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions\=4 -std\=gnu99 -ffunction-sections -fdata-sections -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_NODEMCU"' -DESP8266 environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.2/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.2/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN.2/value=\ -o @@ -238,7 +238,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PAT environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.C.O.PATTERN/value="${A.COMPILER.PATH}${A.COMPILER.C.CMD}" ${A.COMPILER.CPREPROCESSOR.FLAGS} ${A.COMPILER.C.FLAGS} -DF_CPU\=${A.BUILD.F_CPU} ${A.BUILD.LWIP_FLAGS} ${A.BUILD.DEBUG_PORT} ${A.BUILD.DEBUG_LEVEL} -DARDUINO\=${A.RUNTIME.IDE.VERSION} -DARDUINO_${A.BUILD.BOARD} -DARDUINO_ARCH_${A.BUILD.ARCH} '-DARDUINO_BOARD\="${A.BUILD.BOARD}"' ${A.COMPILER.C.EXTRA_FLAGS} ${A.BUILD.EXTRA_FLAGS} ${A.INCLUDES} "${A.SOURCE_FILE}" -o "${A.OBJECT_FILE}" environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.1/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TouchSwitch/Release/core" -c -Wall -Wextra -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions\=4 -std\=c++11 -ffunction-sections -fdata-sections -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DDEBUG_ESP_PORT\=Serial -DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM -DARDUINO\=10802 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_ESP01"' -DESP8266 +environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TouchSwitch/Release/core" -c -Wall -Wextra -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions\=4 -std\=c++11 -ffunction-sections -fdata-sections -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_NODEMCU"' -DESP8266 environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.2/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.2/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.CPP.O.PATTERN.2/value=\ -o @@ -256,7 +256,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.EEP.PATTERN/value= environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN.1/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/esptool/0.4.9/esptool" -eo "/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/bootloaders/eboot/eboot.elf" -bo "/home/wn/workspace-sloeber/TouchSwitch/Release/TouchSwitch.bin" -bm dio -bf 80 -bz 4M -bs .text -bp 4096 -ec -eo "/home/wn/workspace-sloeber/TouchSwitch/Release/TouchSwitch.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec +environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/esptool/0.4.9/esptool" -eo "/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/bootloaders/eboot/eboot.elf" -bo "/home/wn/workspace-sloeber/TouchSwitch/Release/TouchSwitch.bin" -bm dio -bf 40 -bz 4M -bs .text -bp 4096 -ec -eo "/home/wn/workspace-sloeber/TouchSwitch/Release/TouchSwitch.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OBJCOPY.HEX.PATTERN/value="${A.RUNTIME.TOOLS.ESPTOOL.PATH}/${A.COMPILER.ESPTOOL.CMD}" -eo "${A.RUNTIME.PLATFORM.PATH}/bootloaders/eboot/eboot.elf" -bo "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.bin" -bm ${A.BUILD.FLASH_MODE} -bf ${A.BUILD.FLASH_FREQ} -bz ${A.BUILD.FLASH_SIZE} -bs .text -bp 4096 -ec -eo "${A.BUILD.PATH}/${A.BUILD.PROJECT_NAME}.elf" -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec @@ -268,7 +268,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OUTPUT. environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.OUTPUT.TMP_FILE/value=${A.BUILD.PROJECT_NAME}.bin environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.1/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.1/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TouchSwitch/Release/core" -c -g -x assembler-with-cpp -mlongcalls -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DDEBUG_ESP_PORT\=Serial -DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA -DDEBUG_TLS_MEM -DARDUINO\=10802 -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_ESP01"' -DESP8266 +environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.1/value="/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/xtensa-lx106-elf-gcc" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/include" "-I/opt/eclipse/sloeber//arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/tools/sdk/lwip/include" "-I/home/wn/workspace-sloeber/TouchSwitch/Release/core" -c -g -x assembler-with-cpp -mlongcalls -DF_CPU\=80000000L -DLWIP_OPEN_SRC -DARDUINO\=10802 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 '-DARDUINO_BOARD\="ESP8266_NODEMCU"' -DESP8266 environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.2/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.2/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.RECIPE.S.O.PATTERN.2/value=\ -o @@ -436,7 +436,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.PROTOCO environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.PROTOCOL/value=stk500v1 environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.RESETMETHOD/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.RESETMETHOD/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.RESETMETHOD/value=ck +environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.RESETMETHOD/value=nodemcu environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.SPEED/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.SPEED/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/A.UPLOAD.SPEED/value=115200 @@ -460,16 +460,16 @@ environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARDS_FI environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARDS_FILE/value=${eclipse_home}/arduinoPlugin/packages/esp8266/hardware/esp8266/2.3.0/boards.txt environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_ID/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_ID/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_ID/value=generic +environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_ID/value=nodemcuv2 environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_NAME/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_NAME/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_NAME/value=Generic ESP8266 Module +environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.BOARD_NAME/value=NodeMCU 1.0 (ESP-12E Module) environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.COM_PORT/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.COM_PORT/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.COM_PORT/value=/dev/ttyACM0 +environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.COM_PORT/value=/dev/ttyUSB1 environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.ECLIPSE_LOCATION/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.ECLIPSE_LOCATION/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home}//////////// +environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.ECLIPSE_LOCATION/value=${eclipse_home}//////////////////////////////// environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.EXTRA.ALL/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.EXTRA.ALL/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.EXTRA.ALL/value= @@ -493,7 +493,7 @@ environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.EXTRA.LIN environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.EXTRA.LINK/value= environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.MENU/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.MENU/operation=replace -environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.MENU/value=CpuFrequency\=80\nDebug\=Serial\nDebugLevel\=all_____\nFlashFreq\=80\nFlashMode\=dio\nFlashSize\=4M1M\nResetMethod\=ck\nUploadSpeed\=115200.upload.speed +environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.MENU/value=CpuFrequency\=80\nFlashSize\=4M1M\nUploadSpeed\=115200 environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.OBJCOPY/delimiter=\: environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.OBJCOPY/operation=replace environment/project/io.sloeber.core.toolChain.release.547546691/JANTJE.OBJCOPY/value=${A.RECIPE.OBJCOPY.HEX.PATTERN} diff --git a/ConfigGenerator/configGen.py b/ConfigGenerator/configGen.py index bbdd269..0a6576d 100644 --- a/ConfigGenerator/configGen.py +++ b/ConfigGenerator/configGen.py @@ -10,11 +10,15 @@ configItems = [ {"label":"Wifi SSID", "key":"wifiSsid", "type":"C", "length":32, "default":"test"}, {"label":"Wifi Key", "key":"wifiKey", "type":"C", "length":64, "default":"geheim"}, {"label":"MQTT Broker", "key":"mqttBroker", "type":"C", "length":64, "default":"broker.hottis.de"}, - {"label":"MQTT Username", "key":"mqttUser", "type":"C", "length":32, "default":"esp1"}, - {"label":"MQTT Password", "key":"mqttPass", "type":"C", "length":32, "default":"geheim"}, - {"label":"MQTT ClientId", "key":"mqttClientId", "type":"C", "length":32, "default":"changeThis"}, - {"label":"MQTT Topic", "key":"mqttTopic", "type":"C", "length":64, "default":"IoT/espThermometer2/measurement"}, - {"label":"MQTT Port", "key":"mqttPort", "type":"I", "default":8883} + {"label":"MQTT Username", "key":"mqttUser", "type":"C", "length":32, "default":"TouchSwitch"}, + {"label":"MQTT Password", "key":"mqttPass", "type":"C", "length":32, "default":"geheim123"}, + {"label":"MQTT ClientId", "key":"mqttClientId", "type":"C", "length":32, "default":"TouchSwitch"}, + {"label":"MQTT Topic", "key":"mqttTopic", "type":"C", "length":64, "default":"IoT/TouchSwitch/Press"}, + {"label":"MQTT Port", "key":"mqttPort", "type":"I", "default":8883}, + {"label":"DebugMode", "key":"debugMode", "type":"I", "default":0}, + {"label":"MQTT DebugTopic", "key":"mqttDebugTopic", "type":"C", "length":64, "default":"IoT/TouchSwitch/Debug"}, + {"label":"Period", "key":"period", "type":"I", "default":500}, + {"label":"Threshold", "key":"threshold", "type":"I", "default":350} ] diff --git a/TouchSwitch.cpp b/TouchSwitch.cpp index 0fa529e..9a8f3c9 100644 --- a/TouchSwitch.cpp +++ b/TouchSwitch.cpp @@ -13,9 +13,6 @@ -ADC_MODE(ADC_VCC); - - bool configMode = false; diff --git a/configuration.cpp b/configuration.cpp index c3245bb..b7728f6 100644 --- a/configuration.cpp +++ b/configuration.cpp @@ -21,11 +21,15 @@ void configServeIndex() { strcpy(configBlock.wifiSsid, "test"); strcpy(configBlock.wifiKey, "geheim"); strcpy(configBlock.mqttBroker, "broker.hottis.de"); - strcpy(configBlock.mqttUser, "esp1"); - strcpy(configBlock.mqttPass, "geheim"); - strcpy(configBlock.mqttClientId, "changeThis"); - strcpy(configBlock.mqttTopic, "IoT/espThermometer2/measurement"); + strcpy(configBlock.mqttUser, "TouchSwitch"); + strcpy(configBlock.mqttPass, "geheim123"); + strcpy(configBlock.mqttClientId, "TouchSwitch"); + strcpy(configBlock.mqttTopic, "IoT/TouchSwitch/Press"); configBlock.mqttPort = 8883; + configBlock.debugMode = 0; + strcpy(configBlock.mqttDebugTopic, "IoT/TouchSwitch/Debug"); + configBlock.period = 500; + configBlock.threshold = 350; } String buffer = @@ -160,6 +164,63 @@ void configServeIndex() { buffer += configBlock.mqttPort; buffer += "\""; + buffer += + " />" + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " @@ -201,6 +262,14 @@ void configServeGetConfiguration() { strcpy(configBlock.mqttTopic, arg.c_str()); arg = webServer.arg("mqttPort"); configBlock.mqttPort = atoi(arg.c_str()); + arg = webServer.arg("debugMode"); + configBlock.debugMode = atoi(arg.c_str()); + arg = webServer.arg("mqttDebugTopic"); + strcpy(configBlock.mqttDebugTopic, arg.c_str()); + arg = webServer.arg("period"); + configBlock.period = atoi(arg.c_str()); + arg = webServer.arg("threshold"); + configBlock.threshold = atoi(arg.c_str()); configBlock.magic = MAGIC; @@ -248,6 +317,18 @@ void showConfiguration() { Serial.print("mqttPort = "); Serial.println(configBlock.mqttPort); + Serial.print("debugMode = "); + Serial.println(configBlock.debugMode); + + Serial.print("mqttDebugTopic = "); + Serial.println(configBlock.mqttDebugTopic); + + Serial.print("period = "); + Serial.println(configBlock.period); + + Serial.print("threshold = "); + Serial.println(configBlock.threshold); + Serial.println("---"); } \ No newline at end of file diff --git a/configuration.h b/configuration.h index 7b0a910..6421fca 100644 --- a/configuration.h +++ b/configuration.h @@ -8,6 +8,10 @@ typedef struct { char mqttClientId[32]; char mqttTopic[64]; uint32_t mqttPort; + uint32_t debugMode; + char mqttDebugTopic[64]; + uint32_t period; + uint32_t threshold; } tConfigBlock; extern const uint32_t MAGIC; diff --git a/defines.h b/defines.h index a5bfa85..30eb48a 100644 --- a/defines.h +++ b/defines.h @@ -8,14 +8,16 @@ #ifndef DEFINES_H_ #define DEFINES_H_ -// #define DEBUG -#define SLEEP +#define DEBUG +// #define SLEEP #define EEPROM_ADDR 0 #define CONFIG_SWITCH 4 #define LED_PIN 14 +#define TOUCH_PIN_HIGH 16 +#define TOUCH_PIN_LOW 5 diff --git a/productionMode.cpp b/productionMode.cpp index 8409ee0..ad25418 100644 --- a/productionMode.cpp +++ b/productionMode.cpp @@ -19,6 +19,9 @@ +typedef enum { NOT_PRESSED, PRESSED, LONG_PRESSED } tPressedState; + + WiFiClientSecure espClient; PubSubClient client(espClient); @@ -26,80 +29,158 @@ extern uint32_t startTime; void setup_wifi() { - delay(10); - WiFi.mode(WIFI_STA); + delay(10); + WiFi.mode(WIFI_STA); - // We start by connecting to a WiFi network + // We start by connecting to a WiFi network #ifdef DEBUG - Serial.println(); - Serial.print("Connecting to "); - Serial.println(configBlock.wifiSsid); + Serial.println(); + Serial.print("Connecting to "); + Serial.println(configBlock.wifiSsid); #endif - WiFi.begin(configBlock.wifiSsid, configBlock.wifiKey); + WiFi.begin(configBlock.wifiSsid, configBlock.wifiKey); - while (WiFi.status() != WL_CONNECTED) { - delay(50); + while (WiFi.status() != WL_CONNECTED) { + delay(50); #ifdef DEBUG - Serial.print("."); + Serial.print("."); #endif - } + } + Serial.println("!"); #ifdef DEBUG - Serial.println(""); - Serial.println("WiFi connected"); - Serial.println("IP address: "); - Serial.println(WiFi.localIP()); + Serial.println(""); + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); #endif } -void setupProduction() { - setup_wifi(); - client.setServer(configBlock.mqttBroker, configBlock.mqttPort); -} - void reconnect() { - // Loop until we're reconnected - while (!client.connected()) { + // Loop until we're reconnected + while (!client.connected()) { #ifdef DEBUG - Serial.print("Attempting MQTT connection..."); + Serial.print("Attempting MQTT connection..."); #endif - // Attempt to connect - //char clientId[128]; - //snprintf(clientId, 127, "esp%s", WiFi.macAddress().c_str()); - if (client.connect(configBlock.mqttClientId, configBlock.mqttUser, configBlock.mqttPass)) { + // Attempt to connect + //char clientId[128]; + //snprintf(clientId, 127, "esp%s", WiFi.macAddress().c_str()); + if (client.connect(configBlock.mqttClientId, configBlock.mqttUser, configBlock.mqttPass)) { #ifdef DEBUG - Serial.println("connected"); + Serial.println("connected"); #endif - // Once connected, publish an announcement... - //client.publish("IoT/espThermometer/status", "hello world"); - } else { + // Once connected, publish an announcement... + client.publish(configBlock.mqttDebugTopic, "hello world"); + } else { #ifdef DEBUG - Serial.print("failed, rc="); - Serial.print(client.state()); - Serial.println(" try again in 5 seconds"); + Serial.print("failed, rc="); + Serial.print(client.state()); + Serial.println(" try again in 5 seconds"); #endif - // Wait 5 seconds before retrying - delay(5000); - } - } + // Wait 5 seconds before retrying + delay(5000); + } + } } void mqtt_connect() { - if (!client.connected()) { - reconnect(); - } - client.loop(); + if (!client.connected()) { + reconnect(); + } + client.loop(); } +void setupProduction() { + setup_wifi(); + client.setServer(configBlock.mqttBroker, configBlock.mqttPort); + pinMode(A0, INPUT); +} + void loopProduction() { - static uint32_t lastMillis = 0; - mqtt_connect(); + static tPressedState state = NOT_PRESSED; + static uint32_t lastMillis = 0; + mqtt_connect(); + + + // http://www.elektronik-labor.de/AVR/Touch.html + // Phase 1 + pinMode(TOUCH_PIN_HIGH, INPUT); + pinMode(TOUCH_PIN_LOW, INPUT); + + // Phase 2 + digitalWrite(TOUCH_PIN_HIGH, HIGH); + pinMode(TOUCH_PIN_HIGH, OUTPUT); + + // Phase 3 + pinMode(TOUCH_PIN_HIGH, INPUT); + + // Phase 4 + digitalWrite(TOUCH_PIN_LOW, LOW); + pinMode(TOUCH_PIN_LOW, OUTPUT); + + + uint32_t currentMillis = millis(); + + if (currentMillis - lastMillis > configBlock.period) { + lastMillis = currentMillis; + + int v = analogRead(A0); + + if (configBlock.debugMode) { + char payload[128]; + snprintf(payload, 127, "%ld", v); + client.publish(configBlock.mqttDebugTopic, payload); + +#ifdef DEBUG + Serial.println(v); +#endif + } + + if (v > configBlock.threshold) { +#ifdef DEBUG + Serial.println(v); +#endif + + // discharge + digitalWrite(TOUCH_PIN_HIGH, LOW); + pinMode(TOUCH_PIN_HIGH, OUTPUT); + digitalWrite(TOUCH_PIN_LOW, LOW); + pinMode(TOUCH_PIN_LOW, OUTPUT); + + switch (state) { + case NOT_PRESSED: + state = PRESSED; + break; + case PRESSED: + state = LONG_PRESSED; + client.publish(configBlock.mqttTopic, "LONG_BEGIN"); + break; + case LONG_PRESSED: + state = LONG_PRESSED; + client.publish(configBlock.mqttTopic, "LONG_CONT"); + break; + } + } else { + switch (state) { + case NOT_PRESSED: + break; + case PRESSED: + client.publish(configBlock.mqttTopic, "SHORT"); + break; + case LONG_PRESSED: + client.publish(configBlock.mqttTopic, "LONG_END"); + break; + } + state = NOT_PRESSED; + } + + } }