From 131fae57e5994cdb36080797f4e888988d1ee582 Mon Sep 17 00:00:00 2001 From: 400killer <38986787+400killer@users.noreply.github.com> Date: Fri, 29 Nov 2019 11:55:26 -0800 Subject: [PATCH] wled06_usermod.ino This section is used to read the temperature from the sensor and prints it using the MQTT service started by Aircoookie. --- .../wled06_usermod.ino | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 usermods/QuinLED_Dig_Uno_Temp_MQTT/wled06_usermod.ino diff --git a/usermods/QuinLED_Dig_Uno_Temp_MQTT/wled06_usermod.ino b/usermods/QuinLED_Dig_Uno_Temp_MQTT/wled06_usermod.ino new file mode 100644 index 000000000..1309a4f83 --- /dev/null +++ b/usermods/QuinLED_Dig_Uno_Temp_MQTT/wled06_usermod.ino @@ -0,0 +1,41 @@ +//starts Dallas Temp service on boot +void userSetup() +{ +// Start the DS18B20 sensor + sensors.begin(); +} + +//gets called every time WiFi is (re-)connected. Initialize own network interfaces here +void userConnected() +{ + +} + +void userLoop() +{ + temptimer = millis(); + +// Timer to publishe new temperature every 60 seconds + if (temptimer - lastMeasure > 60000) { + lastMeasure = temptimer; + +//Check if MQTT Connected, otherwise it will crash the 8266 + if (mqtt != nullptr){ + sensors.requestTemperatures(); + +//Gets prefered temperature scale based on selection in definitions section + #ifdef Celsius + float board_temperature = sensors.getTempCByIndex(0); + #else + float board_temperature = sensors.getTempFByIndex(0); + #endif + +//Create character string populated with user defined device topic from the UI, and the read temperature. Then publish to MQTT server. + char subuf[38]; + strcpy(subuf, mqttDeviceTopic); + strcat(subuf, "/temperature"); + mqtt->publish(subuf, 0, true, String(board_temperature).c_str()); + return;} + return;} +return; +}