void loop() { //-------------------------------------------------------------- getGps(latitude, longitude); //-------------------------------------------------------------- float distance = getDistance(latitude, longitude, initialLatitude, initialLongitude); //-------------------------------------------------------------- Serial.print("Latitude= "); Serial.println(latitude, 6); Serial.print("Lngitude= "); Serial.println(longitude, 6); Serial.print("initialLatitude= "); Serial.println(initialLatitude, 6); Serial.print("initialLngitude= "); Serial.println(initialLongitude, 6); Serial.print("current Distance= "); Serial.println(distance); //-------------------------------------------------------------- // Set alarm on? if(distance > maxDistance) { //------------------------------------------ if(send_alert_once == true){ digitalWrite(BUZZER, HIGH); sendAlert(); alarm = true; send_alert_once = false; buzzer_timer = millis(); } //------------------------------------------ } else{ send_alert_once = true; } //-------------------------------------------------------------- // Handle alarm if (alarm == true) { if (millis() - buzzer_timer > 5000) { digitalWrite(BUZZER, LOW); alarm = false; buzzer_timer = 0; } } //-------------------------------------------------------------- while(sim800.available()){ Serial.println(sim800.readString()); } //-------------------------------------------------------------- while(Serial.available()) { sim800.println(Serial.readString()); } //-------------------------------------------------------------- }
时间: 2023-08-15 21:22:29 浏览: 90
摇杆传感器ky-023
这段代码是一个 Arduino 程序的主函数 `loop()`,它包含了以下功能:
1. 调用 `getGps()` 函数获取 GPS 的经纬度信息,并计算当前位置与初始位置之间的距离。
2. 将获取到的经纬度和距离信息通过串口输出。
3. 当当前位置与初始位置的距离超过 `maxDistance` 时,触发警报,并向目标设备发送警报信息。
4. 处理警报:开启蜂鸣器,发送警报信息,等待一段时间后关闭蜂鸣器。
5. 监听串口输入,将输入发送至目标设备,并监听目标设备的回复信息,将回复信息通过串口输出。
需要注意的是,这段代码中使用了一些函数和对象,比如 `getGps()` 函数、 `Serial` 对象、 `sim800` 对象等。在运行这段代码之前,需要确保这些函数和对象都已经被正确地引入和初始化。
阅读全文