-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathESP8266.ino
97 lines (84 loc) · 2.04 KB
/
ESP8266.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
char OK[] = "OK";
char GOTIP[] = "GOT IP";
void espPause() {
esp.end();
}
void espResume() {
esp.begin(9600);
}
void espON() {
Serial << " ESP Turn on " << endl;
esp.begin(9600);
pinMode(ESP_CHPD, OUTPUT);
digitalWrite(ESP_CHPD, HIGH);
espIsOn = true;
espSentInit = false;
espLastActivity = millis();
}
void espOFF() {
Serial << " ESP Turn OFF " << endl;
esp.end();
pinMode(ESP_CHPD, OUTPUT);
digitalWrite(ESP_CHPD, LOW);
espIsOn = false;
}
void espToggle() {
espOFF();
delay(1000);
espON();
}
void espSend(const char *s) {
espLastActivity = millis();
esp.write(s);
esp.flush();
}
int startSerialProxy() {
Serial << F("ESP Proxy\n");
espToggle();
for (;;) {
if (esp.available()) Serial.write(esp.read());
if (Serial.available()) esp.write(Serial.read());
}
return 0;
}
int lastCO2 = 0;
#ifdef TGS4161
void sendNow() {
char s[100];
if (sPPM == 0) return;
sprintf(s, "sendNow CO2,%ld,MVNTC,%d.%d,MV,%d.%d,CURMAXMV,%d.%d,TGTEMP,%d.%d,LIGHT,%d\r\n", sPPM,
(int)raCO2mvNoTempCorr.getAverage(), getFloat(raCO2mvNoTempCorr.getAverage()),
(int)raCO2mv.getAverage(), getFloat(raCO2mv.getAverage()),
(int)currentCO2MaxMv, getFloat(currentCO2MaxMv),
(int)raTempC.getAverage(), getFloat(raTempC.getAverage()),
(int)raLight.getAverage());
espSend(s);
}
#else
void sendNow() {
char s[100];
sprintf(s, "sendNow CO2,%ld,LIGHT,%d\r\n", sPPM, (int)raLight.getAverage());
espSend(s);
}
#endif
uint32_t tmWifiSent = 0;
void processSendData() {
if (!hasESP) return;
// if (!()) {
// setWifiStat("Setup Wifi");
// return;
// }
if (sPPM == 0) return;
int16_t wifiSendInterval;
EEPROM.get(EE_2B_WIFI_SND_INT_S, wifiSendInterval);
if (wifiSendInterval <= 1) wifiSendInterval = 120;
if (!timePassed(tmWifiSent, 1000L * wifiSendInterval)) return;
if (espIsOn) sendNow();
else {
espToggle();
espWasTurnedOff = true;
}
//int res = sendToThingSpeak(sPPM);
// Serial << endl << F("TS RES: ") << res << endl;
tmWifiSent = millis();
}