summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 04b765b..aee48ad 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -2,7 +2,6 @@
#include <Wire.h>
#include <ESP8266WiFi.h>
-#include <LiquidCrystal_I2C.h>
#include <MHZ19.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_AHTX0.h>
@@ -12,7 +11,7 @@ WiFiManager wm;
#include <PubSubClient.h>
const char* debug = "debug";
-const char* server = "172.19.1.10";
+const char* server = "mqtt.iot";
const char* s_will = "died";
const char* s_ready = "ready";
const char* s_sens = "zero MHZ";
@@ -29,6 +28,9 @@ bool pubsub = false;
MHZ19 myMHZ19;
Adafruit_AHTX0 aht; // x38
+
+#if defined mydisplay
+#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define DEGREE_SYMBOL 0xDF //degree symbol from LCD ROM
@@ -185,12 +187,17 @@ void numprint(int num) {
}
}
+#endif
+
+
void callback(char* topic, byte* payload, unsigned int length) {
if(topic[14] == 's') {
if((char)payload[0] == 'r' && (char)payload[1] == 'e' && (char)payload[2] == 's' && (char)payload[3] == 'e' && (char)payload[4] == 't')
{
+#if defined mydisplay
lcd.setCursor(0,1);
lcd.print(F("reset"));
+#endif
WiFi.forceSleepBegin();
ESP.wdtFeed();
ESP.restart();
@@ -233,34 +240,36 @@ void setup() {
if(wm.autoConnect("CO2sensor")){
pubsub = true;
client.connect(MAC_char, sta, 0, false, s_will);
- client.publish(debug,MAC_char);
client.subscribe(sta,1);
-
- client.publish(sta,__FILE__);
- IPAddress ip = WiFi.localIP();
- sprintf(buffer,"%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
- client.publish(sta,buffer);
+ client.publish(debug,MAC_char);
+ IPAddress ip = WiFi.localIP(); sprintf(buffer,"%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); client.publish(sta,buffer);
+ client.publish(sta, server);
+ client.publish(sta, PROJECT);
client.publish(sta,s_ready);
}
Wire.begin(0,2); // 00-sda,02-sdl
+#if defined mydisplay
lcd.init();
lcd.noBacklight();
lcd.clear();
lcd.backlight();
-
lcd.print(F("CO2 monitor starting"));
+#endif
myMHZ19.begin(Serial);
myMHZ19.setRange(2000);
myMHZ19.autoCalibration(false);
+#if defined mydisplay
lcd.setCursor(0,1);
lcd.print(F("CO2 sensor started"));
+#endif
sensor = aht.begin();
+#if defined mydisplay
lcd.setCursor(0,2);
lcd.print(F("aht sensor started"));
@@ -274,6 +283,7 @@ void setup() {
lcd.setCursor(0,3);
lcd.print(F("lcd font loaded"));
+#endif
ESP.wdtEnable(WDTO_8S);
tick = millis();
@@ -316,12 +326,16 @@ void loop() {
if(sec == 5) {
if(clear) {
+#if defined mydisplay
lcd.clear();
+#endif
clear = false;
}
value = myMHZ19.getCO2();
+#if defined mydisplay
numprint(value);
+#endif
if(pubsub) {
sprintf(buffer,"%d", (int) value);
client.publish(co,buffer);
@@ -338,6 +352,7 @@ void loop() {
client.publish(hum,buffer);
}
+#if defined mydisplay
lcd.setCursor(0,2);
lcd.print(temp.temperature);
lcd.print(F(" "));
@@ -351,6 +366,7 @@ void loop() {
lcd.print(F(" "));
lcd.write(6);
lcd.print(F("2% "));
+#endif
}
}
}