1
0
Quellcode durchsuchen

Added code to read temperatures.

Thomas Chef vor 2 Jahren
Ursprung
Commit
c5a446e9af
4 geänderte Dateien mit 24 neuen und 7 gelöschten Zeilen
  1. 3 3
      main/config.h
  2. 14 1
      main/ir_transmit.c
  3. 6 2
      main/main.c
  4. 1 1
      main/readTemps.c

+ 3 - 3
main/config.h

@@ -6,9 +6,9 @@
 #define SW_VERSION "1.0"
 
 // These defines configures which code to generate (to save download time during development)
-#define WIFI_ENABLED
-#define MQTT_ENABLED
-//#define ENABLE_DS18B20
+//#define WIFI_ENABLED
+//#define MQTT_ENABLED
+#define ENABLE_DS18B20
 
 //#define MQTT_DEBUG              // Add an extra debug string to the topic-string
 

+ 14 - 1
main/ir_transmit.c

@@ -1,3 +1,4 @@
+#include <string.h>
 #include "freertos/FreeRTOS.h"
 #include "freertos/task.h"
 #include "freertos/queue.h"
@@ -50,7 +51,12 @@ void toshibaTxTask(void *pvParameter)
 
 void initIrTransmit() {
 
+	const esp_err_t uninstRetVal = rmt_driver_uninstall(RMT_TX_CHANNEL);
+
+	ESP_LOGI("IR_TRANSMIT","Uninst: %u", uninstRetVal);
+
     rmt_config_t rmt_tx;
+	memset(&rmt_tx,0,sizeof(rmt_config_t));
 	rmt_tx.rmt_mode = RMT_MODE_TX;
 	rmt_tx.channel  = RMT_TX_CHANNEL;
 	rmt_tx.gpio_num = GPIO_IR_TX_DATA;
@@ -65,8 +71,15 @@ void initIrTransmit() {
 	rmt_tx.tx_config.idle_output_en  = true;
     rmt_tx.flags = 0;
 	
+	ESP_LOGI("IR_TRANSMIT","Install driver....");
 	ESP_ERROR_CHECK( rmt_config(&rmt_tx) );
-	ESP_ERROR_CHECK( rmt_driver_install(rmt_tx.channel, 0, 0) );
+	const esp_err_t retVal = rmt_driver_install(rmt_tx.channel, 0, 0);
+	if( retVal != ESP_OK ) {
+		ESP_LOGE("IR_TRANSMIT","Error on driver install %u",retVal);
+		return;
+	}
+
+	//ESP_ERROR_CHECK( rmt_driver_install(rmt_tx.channel, 0, 0) );
 
     // Init the ir data field
     toshiba_rmt[0].val = (kToshibaAcHdrMark << 0) | (1 << 15) | (kToshibaAcHdrSpace << 16);    // Header of IR Transmit

+ 6 - 2
main/main.c

@@ -52,19 +52,23 @@ void app_main(void)
     initReceiver();         // Init receiver-task
 #endif
 
+vTaskDelay(1000 / portTICK_PERIOD_MS);
 initIrTransmit();
 
     TickType_t vLastWakeTime = xTaskGetTickCount();
 
     // Do an initial delay to make the different tasks to work out of sync to each other (not send all data at same time)
-    //vTaskDelayUntil( &vLastWakeTime, 1000 / portTICK_PERIOD_MS );
+    vTaskDelayUntil( &vLastWakeTime, 5000 / portTICK_PERIOD_MS );
 
     ESP_LOGI("MAIN","Lets go...");
 
     // ---------------- MAIN WHILE -------------------
     while(1) {
 
-        vTaskDelayUntil( &vLastWakeTime, 1000 / portTICK_PERIOD_MS );
+        vTaskDelayUntil( &vLastWakeTime, 10000 / portTICK_PERIOD_MS );
+
+        // Start temp measuring task
+        xTaskCreatePinnedToCore(readAndSendTemps, "readAndSendTemps", 1024*10, NULL, 2, NULL,1);
 
         /*ESP_LOGI("MAIN","Send a test-IR Tx Data");
         const uint8_t data[kToshibaNumberOfBytes] = { 0xF2, 0x0D, 0x03, 0xFC, 0x01, 0x30, 0xA3, 0x00, 0x92 };

+ 1 - 1
main/readTemps.c

@@ -103,7 +103,7 @@ void readAndSendTemps(void *pvParameters) {
             char value_s[10];
             owb_string_from_rom_code(devices[i]->rom_code, rom_code_s, sizeof(rom_code_s));
 
-            sprintf(mqtt_s,"basement/boiler/temps/%s", rom_code_s);
+            sprintf(mqtt_s,"hall/temps/%s", rom_code_s);
             sprintf(value_s,"%.1f",readings[i]);
             ESP_LOGI("TEMPS","%s %s", mqtt_s, value_s);