mirror of
https://github.com/tzapu/WiFiManager.git
synced 2026-04-27 17:15:53 +03:00
[GH-ISSUE #592] Attach Button Interrupts while in Configuration mode #493
Labels
No labels
📶 WiFi
🕸️ HTTP
Branch
DEV Help Wanted
Discussion
Documentation
ESP32
Example
Good First Issue
Hotfix
In Progress
Incomplete
Needs Feeback
Priority
QA
Question
Task
Upstream/Dependancy
bug
duplicate
enhancement
invalid
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/WiFiManager#493
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @charinduedirisuriya on GitHub (Apr 14, 2018).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/592
Is it possible to attach button interrupts while wifi manager is active on configuration mode. I noticed that none of my buttons work when wifi manager is on configuration mode. How can i achieve this?
void configModeCallback (WiFiManager *myWiFiManager) {
Serial.println("Entered config mode");
Serial.println(WiFi.softAPIP());
//if you used auto generated SSID, print it
Serial.println(myWiFiManager->getConfigPortalSSID());
//entered config mode, make led toggle faster
ticker.attach(0.2, tick);
}
void setup() {
Serial.begin(115200);
Serial.println("Initialising");
pinMode(RELAY_PIN_01, OUTPUT);
pinMode(BUTTON_PIN_01, INPUT_PULLUP);
pinMode(RELAY_PIN_02, OUTPUT);
pinMode(BUTTON_PIN_02, INPUT_PULLUP);
pinMode(RELAY_PIN_03, OUTPUT);
pinMode(BUTTON_PIN_03, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
Serial.println("Enabling touch switch interrupt");
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN_01), buttonChangeCallback_01, CHANGE);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN_02), buttonChangeCallback_02, CHANGE);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN_03), buttonChangeCallback_03, CHANGE);
MQTT_PORT = atoi(PORT);
WiFiManager wifiManager;
wifiManager.setAPCallback(configModeCallback);
// wifiManager.resetSettings();
wifiManager.setBreakAfterConfig(true);
wifiManager.setConfigPortalTimeout(180);
if (!wifiManager.autoConnect(deviceName, "12345678")) {
Serial.println("failed to connect, we should reset as see if it connects");
setup();
}
ticker.detach();
Serial.println("MQTT IP ADDRESS: \n");
Serial.println(MQTT_SERVER);
Serial.println("MQTT PORT: \n");
Serial.println(MQTT_PORT);
Serial.println("MQTT USERNAME: \n");
Serial.println(mqttUser);
Serial.println("MQTT PASSWORD: \n");
Serial.println(mqttPassword);
Serial.println("Device Name: \n");
Serial.println(deviceName);
Serial.println("Controller Topic: \n");
Serial.println(controllerTopic);
Serial.println("Device Topic: \n");
Serial.println(deviceTopic);
Serial.println("Topics: \n");
Serial.println(controllerTopic);
Serial.println(deviceTopic);
Serial.println("Connected to Wifi!.. :)");
Serial.println("Local Ip");
Serial.println(WiFi.localIP());
client.setServer(MQTT_SERVER, MQTT_PORT);
client.setCallback(MQTTcallback);
}
@tablatronix commented on GitHub (Oct 12, 2018):
use non blocking mode, available in development branch
wm stable is blocking loop for webserver