使用 Arduino 发送两种不同类型的传感器数据
Send two different kinds of sensor data using Arduino
我正在尝试使用 PIR 运动检测器配置 Arduino,以将运动检测器数据和一些随机生成的温度发送到网关。
我想让它在检测到运动后发送 "MO/1",并且仍然像 "T/26" 一样每 20 秒发送一次温度。
我用过这个代码但没有成功:
void loop() {
if (motion == HIGH) {
// Motion Detected
// Send to Gateway
}
while (1) {
temp = random(1,5) + 28;
// Send to Gateway
delay(20000);
}
}
你可能注意到了,一旦 Arduino 进入 while
它就不会关注 if
块!由于我是 Arduino 的新手并对其进行编程,我认为有人可以帮助解决这个问题。
这不会像您注意到的那样起作用。
您需要使用变量来计算自上次检查以来经过的时间。
unsigned long t1;
void setup() {
...
t1=millis();
}
void loop() {
if (motion == HIGH) {
// Motion Detected
// Send to Gateway
}
if(millis()-t1>20000) {
temp = random(1, 5) + 28;
// Send to Gateway
t1=millis();
}
}
我正在尝试使用 PIR 运动检测器配置 Arduino,以将运动检测器数据和一些随机生成的温度发送到网关。
我想让它在检测到运动后发送 "MO/1",并且仍然像 "T/26" 一样每 20 秒发送一次温度。
我用过这个代码但没有成功:
void loop() {
if (motion == HIGH) {
// Motion Detected
// Send to Gateway
}
while (1) {
temp = random(1,5) + 28;
// Send to Gateway
delay(20000);
}
}
你可能注意到了,一旦 Arduino 进入 while
它就不会关注 if
块!由于我是 Arduino 的新手并对其进行编程,我认为有人可以帮助解决这个问题。
这不会像您注意到的那样起作用。
您需要使用变量来计算自上次检查以来经过的时间。
unsigned long t1;
void setup() {
...
t1=millis();
}
void loop() {
if (motion == HIGH) {
// Motion Detected
// Send to Gateway
}
if(millis()-t1>20000) {
temp = random(1, 5) + 28;
// Send to Gateway
t1=millis();
}
}