Valeu pela força Jeff.
Vamos lá. estamos assim ...
A página em html está assim:
<!DOCTYPE html>
<html ng-app="readArduinoApp" lang="pt-br">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
<title>Monitoramento de energia elétrica</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<!-- <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> -->
<!-- <script src="myscripts/obterjson.js"></script> -->
<!-- <script src="myscripts/grf-ao-vivo.js"></script> -->
<link href="mycss/energy.css" rel="stylesheet"/>
<script type="text/javascript">
var readArduinoApp = angular.module('readArduinoApp', []);
readArduinoApp.controller("ReadArduinoController", function ($http, $scope) {
$http.get('http://192.168.0.14').then(function (response) {
$scope.acumuladores = new array;
$scope.acumuladores = response.data;
console.log("recebido: " + $scope.acumuladores);
})
.catch(function(response) {
console.error('Erro ao obter estrutura JSon:', response.status, response.data);
}).finally(function() {
console.log("Json carregado com sucesso");
});
});
</script>
...
...
...
<article ng-controller="ReadArduinoController">
<header>
<h2>Consumo em tempo real</h2>
</header>
<p>
<h3>
<ul ng-repeat="d in acumuladores">
<ul>
<li> Em: {{d.hoje}} às {{d.hora}} </li>
<li> Ciclo: {{d.ciclo}} - Delay de 10 segundos </li>
<li> Acum. Min: {{d.AcumMin}} {{d.Unit1}} </li>
<li> Acum. Hora: {{d.AcumHora}} {{d.Unit2}} </li>
<li> Acum dia: {{d.AcumDia}} {{d.Unit3}} </li>
<li> Acum. Mês: {{d.AcumMes}} {{d.Unit4}} </li>
<li> Projetado: {{d.Projetado}} {{d.Unit5}} </li>
<li>Última Hora: {{d.UltimaHora}} {{d.Unit6}} </li>
<li> Último Dia: {{d.UltimoDia}} {{d.Unit7}} </li>
<li> Último Mês: {{d.UltimoMes}} {{d.Unit8}} </li>
</ul>
</h3>
</p>
</article>
No arduíno:
//-----------------
// Bibliotecas
//------------------
#include <SPI.h>
#include <ESP8266WiFi.h> // https://github.com/esp8266/Arduino
#include <WiFiUdp.h>
#include <Wire.h>
#include <Adafruit_ADS1015.h> // https://github.com/adafruit/Adafruit_ADS1X15
#include <NTPClient.h>
#include <TimeLib.h>
#include <EEPROM.h>
//==================================================================
// Prepara informações para atender requisão do Cliente/Servidor
//==================================================================
void MontaJson()
{
json = "";
json += "[{";
json += "\"hoje\": ";
json += "\"" + String(day()) + "/" + String(month()) + "/" + String(year()) + "\", ";
json += "\"hora\": ";
json += "\"" + String(hour()) + ":" + String(minute()) + ":" + String(second()) + "\", ";
json += "\"ciclo\": ";
json += "\"" + String(timeCicle) + " horas" + "\", ";
calculoConsumo(acMin, 1);
json += "\"AcumMin\": ";
json += qtdeConsumo;
json += ", ";
json += "\"Unit1\": ";
json += "\"" + UnitConsumo + "\", ";
calculoConsumo(acHour, 1);
json += "\"AcumHora\": ";
json += qtdeConsumo;
json += ", ";
json += "\"Unit2\": ";
json += "\"" + UnitConsumo + "\", ";
calculoConsumo(acDay, 1);
json += "\"AcumDia\": ";
json += qtdeConsumo;
json += ", ";
json += "\"Unit3\": ";
json += "\"" + UnitConsumo + "\", ";
calculoConsumo(acMonth, 2);
json += "\"AcumMes\": ";
json += qtdeConsumo;
json += ", ";
json += "\"Unit4\": ";
json += "\"" + UnitConsumo + "\", ";
calculoConsumo(projKWH, 2);
json += "\"Projetado\": ";
json += qtdeConsumo;
json += ", ";
json += "\"Unit5\": ";
json += "\"" + UnitConsumo + "\", ";
if (hora == 0) hora = 23;
json += "\"UltimaHora\": ";
json += int(recHour[hora-1]);
json += ", ";
json += "\"Unit6\": ";
json += "\" WH (" + String(hora-1) + ") \", ";
json += "\"UltimoDia\": ";
if (dia == 1) {
//calculoConsumo(recDay[LDM], 2);
json += int(recDay[LDM]);
json += ", ";
json += "\"Unit7\": ";
json += "\"KWH (" + String(LDM) + ") \", ";
}
else {
json += int(recDay[mes-1]);
json += ", ";
json += "\"Unit7\": ";
json += "\"KWH (" + String(dia-1) + ") \", ";
}
json += "\"UltimoMes\": ";
json += recMonth[mes-1];
json += ", ",
json += "\"Unit8\": ";
json += "\"KWH (" + String(mes-1) + ") \"";
json += "}]";
}
//==============================================
// Envia informações montadas na estrutura Json
//==============================================
void EnviaJson()
{
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
if (client) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/json");
client.println("Connection: close");
client.println("Refresh: 5");
// this is the CORS header. Yery important. Google CORS.
client.println("Access-Control-Allow-Origin: *");
client.println();
client.print(json);
// pequeno delay
delay(1);
client.flush();
// Fechar conexão
client.stop();
}
}
Como já dito antes.
A estrutura abre no browser digitando o IP do dispositivo: https://image.prntscr.com/image/uICrE2_IRFqSBW2faOwr6A.png
Um amigo conseguiu resolver com o PHP, logo o Arduíno não é o problema. Mas o meu desafio é usar o Angular mesmo.
Penso, então, que o assunto foge ao propósito deste fórum.
Volto a postar com os códigos completos quando tiver a solução.
Nos anexos há imagens retiradas do debug do Browser.