|
@@ -32,20 +32,24 @@ void displayAndSendTask(void *pvParameters) {
|
|
|
SSD1306_DrawVertLine(29,0,128);
|
|
|
SSD1306_Puts("Home Energy Meter", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_SetPosition(4,31);
|
|
|
- SSD1306_Puts("v1.0", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
+ SSD1306_Puts(SW_VERSION, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|
|
|
vTaskDelay(3000 / portTICK_PERIOD_MS);
|
|
|
|
|
|
SSD1306_Clear();
|
|
|
SSD1306_SetPosition(0,0);
|
|
|
- SSD1306_Puts("Temp A:", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
+ SSD1306_Puts("Internal:", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_SetPosition(0,11);
|
|
|
- SSD1306_Puts("Temp B:", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
+ SSD1306_Puts("Heater:", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_SetPosition(0,22);
|
|
|
SSD1306_Puts("ADC Vpp:", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_SetPosition(0,33);
|
|
|
SSD1306_Puts("kWh:", &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|
|
|
+
|
|
|
+ SSD1306_SetPosition(0,50);
|
|
|
+ sprintf(txt,"HoEnMeter %s",SW_VERSION);
|
|
|
+ SSD1306_Puts(txt, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
|
|
|
// Create the data input queue, now that all is setup
|
|
|
dataQueue = xQueueCreate( QUEUE_SIZE, sizeof( DisplayData ) );
|
|
@@ -60,30 +64,37 @@ void displayAndSendTask(void *pvParameters) {
|
|
|
if( xQueueReceive(dataQueue,&data, 1000 / portTICK_PERIOD_MS) == pdTRUE ) {
|
|
|
|
|
|
switch( data.type ) {
|
|
|
- case type_VPP: sprintf(txt,"%d",data.iData);
|
|
|
+ case type_VPP: sprintf(txt," %d",data.iData);
|
|
|
SSD1306_SetPosition(127-(strlen(txt)*8),22);
|
|
|
SSD1306_Puts(txt, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|
|
|
+ sprintf(txt,"%d",data.iData);
|
|
|
+ sendMQTTMessage("house/basement/homeEnergyMeter/waterHeaterTotalEnergy", txt);
|
|
|
+ aliveCnt++;
|
|
|
break;
|
|
|
case type_TempA:
|
|
|
- sprintf(txt,"%.2f\044C",data.dData);
|
|
|
+ sprintf(txt," %.1f\044C",data.dData);
|
|
|
SSD1306_SetPosition(127-(strlen(txt)*8),0);
|
|
|
SSD1306_Puts(txt, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|
|
|
+ sprintf(txt,"%.2f",data.dData);
|
|
|
+ sendMQTTMessage("house/basement/homeEnergyMeter/moduleInternalTemp", txt);
|
|
|
break;
|
|
|
case type_TempB:
|
|
|
- sprintf(txt,"%.2f\044C",data.dData);
|
|
|
+ sprintf(txt," %.1f\044C",data.dData);
|
|
|
SSD1306_SetPosition(127-(strlen(txt)*8),11);
|
|
|
SSD1306_Puts(txt, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|
|
|
+ sprintf(txt,"%.2f",data.dData);
|
|
|
+ sendMQTTMessage("house/basement/homeEnergyMeter/waterHeaterTemp", txt);
|
|
|
break;
|
|
|
case type_kWh:
|
|
|
- sprintf(txt,"%.2f",data.dData);
|
|
|
+ sprintf(txt," %.2f",data.dData);
|
|
|
SSD1306_SetPosition(127-(strlen(txt)*8),33);
|
|
|
SSD1306_Puts(txt, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|
|
|
sprintf(txt,"%.5f",data.dData);
|
|
|
- sendMQTTMessage("sensors/TEST/energy/electricalTotal", txt);
|
|
|
+ sendMQTTMessage("house/basement/homeEnergyMeter/homeTotalEnergy", txt);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -91,7 +102,7 @@ void displayAndSendTask(void *pvParameters) {
|
|
|
}
|
|
|
else {
|
|
|
sprintf(txt,"%u",aliveCnt);
|
|
|
- if( ++aliveCnt == 10 ) aliveCnt=0;
|
|
|
+ if( aliveCnt == 10 ) aliveCnt=0;
|
|
|
SSD1306_SetPosition(127-(strlen(txt)*8),50);
|
|
|
SSD1306_Puts(txt, &Font_7x10,SSD1306_COLOR_WHITE);
|
|
|
SSD1306_UpdateScreen();
|