gpt4 book ai didi

c - Arduino 远程控制 socket 的问题

转载 作者:行者123 更新时间:2023-11-30 17:14:19 27 4
gpt4 key购买 nike

这是一个将在 8 小时内上交的项目!我们被这个问题困扰,并认为这个地方是最后的手段。

我正在尝试使用 Arduino 打开/关闭远程控制 socket 。这样做时我们会遇到不一致的情况。有时,当它进入 if 语句时,“应该是 ON” 而是关闭 socket 的电源,反之亦然。

代码:

// on off remote control
int off = 12;
int on = 13;

void setup() {

pinMode(off, OUTPUT); // sets the digital pin as output
pinMode(on, OUTPUT);

}
void loop() {

// ..first we getting response from server if remote control should be on/off,
// working fine so not really relevant to problem.

// then we determine if outlet should be ON or OFF:
response.toCharArray(responseCharArray,100);
if(strstr( responseCharArray, "active") && strstr( responseCharArray, "1")) {
// This should turn ON the outlet.
digitalWrite(on, HIGH);
delay(250);
digitalWrite(on, LOW);
Serial.println("should be ON");
}
else if(strstr( responseCharArray, "active") && strstr( responseCharArray, "0")) {
// This should turn OFF the outlet.
digitalWrite(off, HIGH);
delay(250);
digitalWrite(off, LOW);
Serial.println("should be OFF");
}

}

接线图片: enter image description here

问题:这里可能缺少什么?因为它在输入相同的 if 语句时随机打开/关闭它。

最佳答案

这里的信息太少了。

请注意,如果 responseCharArray 包含类似以下内容,您的代码将触发(打开): “从 1941 年追溯”,或关闭诸如 “事件 37 秒”之类的内容。

换句话说,该字符串匹配不是很精确,但很难知道它应该是什么,因为我对响应的格式一无所知。

也许至少应该是

if(strstr(responseCharArray, "active=1") != NULL)

或其他东西,至少将 1 锁定到 active 部分。

在您执行的日志记录中,也打印出 responseCharArray 的值。这将让您分析决策是否有意义。

此外,一如既往,仔细检查您的接线并注意例如。反馈。

关于c - Arduino 远程控制 socket 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30393812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com