From 730d23e18b5c71424c409b196a3ecb136ed4e8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=86=89=E5=AE=B6=E7=94=B7=E7=85=AE=E9=A5=BA?= <88431844@163.com> Date: Mon, 15 Mar 2021 18:35:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GPIO0=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=85=A8=E5=B1=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformio.ini | 3 +++ src/main.cpp | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index fa88b9c..26e00d9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -16,3 +16,6 @@ lib_deps = tzapu/WiFiManager@^0.16.0 olikraus/U8g2@^2.28.8 jchristensen/Timezone@^1.2.4 + lennarthennigs/Button2@^1.6.0 +upload_speed = 115200 +monitor_speed = 115200 \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 526d57d..1c20c85 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,6 +14,7 @@ #include "DEV_Config.h" #include "EPD.h" #include +#include // !!!!!!!!!!! /Arduino/libraries/U8g2/src/clib/u8g2.h 去掉 #define U8G2_16BIT 注释,让2.9寸墨水屏显示区域变大成整屏 U8G2_IL3820_V2_296X128_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/14, /* data=*/13, /* cs=*/15, /* dc=*/4, /* reset=*/2); // ePaper Display, lesser flickering and faster speed, enable 16 bit mode for this display! @@ -29,6 +30,9 @@ ESP8266WebServer esp8266_server(80); String todo = " 生命不息 折腾不止"; +#define BUTTON_PIN 0 +Button2 button = Button2(BUTTON_PIN); + //函数声明 void handleCLEAR(); void clearDis(); @@ -41,6 +45,7 @@ void configModeCallback(WiFiManager *myWiFiManager); void updateDisplay(String todo); String changeWeek(int weekSum); String getParam(String name); +void handler(Button2 &btn); void setup() { @@ -71,11 +76,16 @@ void setup() webInit(); myMDNSinit(); + + button.setClickHandler(handler); + button.setLongClickHandler(handler); + button.setDoubleClickHandler(handler); + button.setTripleClickHandler(handler); } void loop() { - + button.loop(); MDNS.update(); esp8266_server.handleClient(); // 处理http服务器访问 @@ -89,7 +99,6 @@ void loop() updateDisplay(todo); } } - delay(500); } void configModeCallback(WiFiManager *myWiFiManager) @@ -316,6 +325,8 @@ void clearDis() u8g2.begin(); u8g2.enableUTF8Print(); + + } void myMDNSinit() { @@ -336,3 +347,26 @@ void myMDNSinit() // Add service to MDNS-SD MDNS.addService("http", "tcp", 80); } +void handler(Button2 &btn) +{ + switch (btn.getClickType()) + { + case SINGLE_CLICK: + Serial.print("single "); + clearDis(); + break; + case DOUBLE_CLICK: + Serial.print("double "); + break; + case TRIPLE_CLICK: + Serial.print("triple "); + break; + case LONG_CLICK: + Serial.print("long"); + break; + } + Serial.print("click"); + Serial.print(" ("); + Serial.print(btn.getNumberOfClicks()); + Serial.println(")"); +} \ No newline at end of file