ESP8266 按钮 - 引脚状态保持不变
ESP8266 Push button - pin State stay the same
想做一些物联网的东西所以我买了一个 ESP8266 (WeMos D1 Mini Pro)。
我只想在按下按钮时向我的服务器发送一条 MQTT 消息。
我将按钮的一侧连接到 GNR,另一侧连接到 D6 (GPIO12)。
我设置pinMode(12, INPUT);
在循环内:
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
boolean pinState = digitalRead(12);
Serial.printf("Start State: %s",(pinState)?"HIGH":"LOW");
Serial.println();
if (pinState == LOW) {
const char* test2 = "Test";
Serial.print("Publish message: ");
Serial.println(test2);
client.publish("iPub", test2);
}
}
pinState 从 HIGH
开始,我可以看到它在循环。当我按下按钮时,它变为 LOW
(发送消息),输入 if 语句,pin 状态继续为 LOW
。所以它不能停止发送消息。但是当我释放按钮时,图钉应该改变它的状态?
我试图在 if 中添加一个 pinState = !pinState;
,但在那之后状态保持 LOW
。
我该如何解决这个问题?
想做一些物联网的东西所以我买了一个 ESP8266 (WeMos D1 Mini Pro)。
我只想在按下按钮时向我的服务器发送一条 MQTT 消息。
我将按钮的一侧连接到 GNR,另一侧连接到 D6 (GPIO12)。
我设置pinMode(12, INPUT);
在循环内:
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
boolean pinState = digitalRead(12);
Serial.printf("Start State: %s",(pinState)?"HIGH":"LOW");
Serial.println();
if (pinState == LOW) {
const char* test2 = "Test";
Serial.print("Publish message: ");
Serial.println(test2);
client.publish("iPub", test2);
}
}
pinState 从 HIGH
开始,我可以看到它在循环。当我按下按钮时,它变为 LOW
(发送消息),输入 if 语句,pin 状态继续为 LOW
。所以它不能停止发送消息。但是当我释放按钮时,图钉应该改变它的状态?
我试图在 if 中添加一个 pinState = !pinState;
,但在那之后状态保持 LOW
。
我该如何解决这个问题?