Você está usando o ESP8266 como módulo principal ou ele está recebendo as as leituras do Arduino e depois as repassando para você obter via browser?
Uma dica seria também substituir sua linha:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/json");
client.println("Connection: close");
// this is the CORS header. Yery important. Google CORS.
client.println("Access-Control-Allow-Origin: *");
client.println();
Por isso:
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html><body>HELLO</body></html>");
Veja se seu módulo carrega isso na tela de seu navegador. Ai se tudo correr bem, você poderia montar um simples json na linha que contém a estrutura html e enviar para o outro lado (navegador) e com console.log ver o que aparece.
Eu ainda não olhei os detalhes de sua função void MontaJson(). Mas de ante mão, você poderia fazer o seguinte:
em $scope.acumuladores = response.data; você poderia adicionar um console e verificar via browser o que te retorna. Ficaria assim:
$scope.acumuladores = response.data;
console.log("recebido: " + .$scope.acumuladores);
Isso deve mostrar ao menos recebidos: [object Object] no console. Com isso, você já terá seu objeto recebido. Basta fazer certo no lado html.
Quando for testar, você vai precisar dar F12 (para firefox ou chrome) e verificar no "console" o que aparece. Lembrando, eu não sei como estão as coisas por completo ai, pois você só postou uma mínima parte.