diff --git a/mqtt-temp-sensor.ino b/mqtt-temp-sensor.ino index 2fc4ceb..e95c7b3 100644 --- a/mqtt-temp-sensor.ino +++ b/mqtt-temp-sensor.ino @@ -6,7 +6,7 @@ #include "WiFi.h" #include "secrets.h" -Adafruit_BME280 bme; // use I2C interface +Adafruit_BME280 bme ; // use I2C interface Adafruit_Sensor *bme_temp = bme.getTemperatureSensor(); Adafruit_Sensor *bme_humidity = bme.getHumiditySensor(); @@ -15,6 +15,9 @@ MQTTClient client = MQTTClient(256); void setupSensor() { Serial.print("Initializing BME280 sensor..."); + + Wire.begin(16, 15); + if (!bme.begin()) { Serial.println("failed"); while (1) delay(10); @@ -41,7 +44,7 @@ void setupMQTT() { setupWiFi(); } - client.begin(MQTT_BROKER, 1883, net); + client.begin(MQTT_BROKER, 31883, net); Serial.print("Connecting to MQTT broker..."); while (!client.connect(MQTT_CLIENT_ID)) { @@ -58,15 +61,6 @@ void setupMQTT() { Serial.println("OK"); } -void setup() { - Serial.begin(9600); - delay(1500); // extra time to allow host to connect - - pinMode(LED_BUILTIN, OUTPUT); - - setupSensor(); -} - void publishMeasurement(const char* topic, char* measurement, float val) { StaticJsonDocument<200> doc; doc["time"] = millis(); @@ -88,10 +82,14 @@ void publishMeasurement(const char* topic, char* measurement, float val) { Serial.println("OK"); } -void loop() { - if(!client.connected()) { - setupMQTT(); - } +void setup() { + Serial.begin(9600); + delay(1500); // extra time to allow host to connect + + pinMode(LED_BUILTIN, OUTPUT); + + setupSensor(); + setupMQTT(); sensors_event_t temp_event, humidity_event; bme_temp->getEvent(&temp_event); @@ -100,6 +98,17 @@ void loop() { publishMeasurement(TEMP_TOPIC, "temperature", temp_event.temperature); publishMeasurement(HUMIDITY_TOPIC, "humidity", humidity_event.relative_humidity); - client.loop(); - delay(LOOP_DELAY); + while(!client.loop()) { + Serial.print("."); + delay(1000); + } + delay(1000); + + esp_sleep_enable_timer_wakeup(60000000); + esp_deep_sleep_start(); +} + +void loop() { + Serial.println("loop"); + delay(1000); }