/
ceo_prox.ino
76 lines (63 loc) · 2.06 KB
/
ceo_prox.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* -----------------------------------------------------------
Based on the sample code provided by particle.io
Shayne Hodge, 2016
---------------------------------------------------------------*/
#include "AssetTracker/AssetTracker.h"
long lastPublish = 0;
long lastBattery = 0;
int delayMinutes = 1.5 * 60 * 1000;
int delayBattery = 60 * 60 * 1000;
//int delayMinutes = 10*1000;
AssetTracker tracker = AssetTracker();
FuelGauge battery;
int gpsPublish(String command) {
int out = 0;
if(tracker.gpsFix()) {
Particle.publish("G", tracker.readLatLon());
out = 1;
}
return out;
}
String batteryLeft() {
//String out = "v:" + String::format("%.2f",battery.getVCell()) +
// ",c:" + String::format("%.2f",battery.getSoC());
String out = "c:" + String::format("%.2f",battery.getSoC());
return out;
}
int batteryStatus(String command){
int out = 1;
String batt_out = batteryLeft();
//Serial.println(batt_out);
Particle.publish("B", batt_out);
//out = (battery.getSoC() > 10) ? 1 : 0;
return out;
}
void setup() {
//Serial.begin(9600);
//Serial.println("Turning on GPS.");
tracker.begin();
tracker.gpsOn();
//Serial.println("GPS turned on (hopefully).");
Particle.function("batt", batteryStatus);
Particle.function("gps", gpsPublish);
}
void loop() {
tracker.updateGPS();
long current_time = millis();
if(current_time-lastPublish > delayMinutes) {
lastPublish = millis();
//String pubAccel = String::format("%d,%d,%d", tracker.readX(),
// tracker.readY(), tracker.readZ());
//Serial.println(pubAccel);
//Particle.publish("A", pubAccel);
//Serial.println(tracker.preNMEA());
if(tracker.gpsFix()) {
Particle.publish("G", tracker.readLatLon());
}
if(current_time-lastBattery > delayBattery) {
Particle.publish("B", batteryLeft());
lastBattery = millis();
}
//Serial.println(tracker.readLatLon());
}
}