displayAndSend.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "displayAndSend.h"
  2. #include "ssd1306.h"
  3. #include "ssd1306_driver.h"
  4. #include "esp_log.h"
  5. #include "freertos/FreeRTOS.h"
  6. #include "freertos/task.h"
  7. #include "freertos/semphr.h"
  8. #include "freertos/queue.h"
  9. #ifdef ENABLE_SSD1306
  10. void displayAndSendTask(void *pvParameters) {
  11. ESP_LOGI("DISPLAY", "displayAndSendTask starting");
  12. i2c_master_init();
  13. oled_ssd1306_init();
  14. vTaskDelay(100 / portTICK_PERIOD_MS);
  15. SSD1306_SetPosition(4,18);
  16. SSD1306_DrawVertLine(29,0,128);
  17. SSD1306_Puts("Home Energy Meter", &Font_7x10,SSD1306_COLOR_WHITE);
  18. SSD1306_SetPosition(4,31);
  19. SSD1306_Puts("v1.0", &Font_7x10,SSD1306_COLOR_WHITE);
  20. SSD1306_UpdateScreen();
  21. vTaskDelay(3000 / portTICK_PERIOD_MS);
  22. SSD1306_Clear();
  23. SSD1306_SetPosition(0,0);
  24. SSD1306_Puts("Temp A:", &Font_7x10,SSD1306_COLOR_WHITE);
  25. SSD1306_SetPosition(0,11);
  26. SSD1306_Puts("Temp B:", &Font_7x10,SSD1306_COLOR_WHITE);
  27. SSD1306_SetPosition(0,22);
  28. SSD1306_Puts("ADC Vpp:", &Font_7x10,SSD1306_COLOR_WHITE);
  29. SSD1306_SetPosition(0,33);
  30. SSD1306_Puts("Pulses:", &Font_7x10,SSD1306_COLOR_WHITE);
  31. SSD1306_UpdateScreen();
  32. vTaskDelete(NULL);
  33. }
  34. void initDisplayAndSend() {
  35. xTaskCreate(displayAndSendTask, "MQTT-Task", 1024*10, NULL, 2, NULL);
  36. }
  37. #endif