O Projeto Arduino Medidor de FP
Por: GABRIEL FARIAS GRUMICHE • 9/6/2022 • Projeto de pesquisa • 1.824 Palavras (8 Páginas) • 104 Visualizações
#include <SD.h>
#include <SPI.h>
#include<Ethernet.h>
#include "EmonLib.h"
#include <LiquidCrystal.h>
#define W5100_CS 10
const int chipSelect = 3;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(10,50,209,250); // Endereço IP que a Ethernet Shield terá. Deve ser alterado para um endereço livre da sua rede.
EthernetServer server(80); // Cria um servidor WEB
EnergyMonitor emon1;
void setup() {
lcd.begin(16, 2);
lcd.clear();
Serial.begin(9600);
emon1.voltage(2, 207.6, 1.7);
emon1.current(1, 53.6);
Ethernet.begin(mac, ip); // Inicializa a Ethernet Shield
server.begin(); // Inicia esperando por requisições dos clientes (Browsers)
if (!SD.begin(chipSelect)) {
Serial.println("Erro no cartao ou cartao nao inserido!");
return;
}
Serial.println(" Cartao inicializado.");
Serial.println();
Serial.println("Aguardando conexões....");
}
void loop() {
emon1.calcVI(20,2000);
float supplyVoltage = emon1.Vrms;
float Irms = emon1.Irms;
float powerFActor = emon1.powerFactor;
float apparentPower = emon1.apparentPower;
float realPower = emon1.realPower;
Serial.print("Tensão medida na rede AC: ");
Serial.print(supplyVoltage);
Serial.println("V");
lcd.setCursor(8, 0);
lcd.print(supplyVoltage);
lcd.setCursor(14, 0);
lcd.print("V");
Serial.print("Corrente na rede AC: ");
Serial.print(Irms);
Serial.println("A");
lcd.setCursor(0, 0);
lcd.print(Irms);
lcd.setCursor(6, 0);
lcd.print("A");
Serial.print("Fator de potência: ");
Serial.print(powerFActor);
lcd.setCursor(3, 1);
lcd.print("FP:");
lcd.setCursor(8, 1);
lcd.print(powerFActor);
Serial.print("\nPotência Aparente: ");
Serial.print(apparentPower );
Serial.print("\nPotência Real: ");
Serial.print(realPower);
Serial.println("\n");
if ((supplyVoltage < 0) || (Irms <0.10) )
{
lcd.clear();
lcd.setCursor(3, 1);
lcd.print("Sensores OFF");
lcd.scrollDisplayLeft();
Serial.print("sensores nao estao funcionando");
Serial.println("\n");
}
EthernetClient client = server.available(); // Tenta pegar uma conexão com o cliente (Browser)
if (client) { // Existe um cliente em conexão ?
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) { // os dados do cliente estão disponiveis para serem lidos
char c = client.read(); // lê 1 byte (character) do cliente
// a ultima linha da requisição do cliente é branca e termina com o caractere \n
// responde para o cliente apenas após a última linha recebida
if (c == '\n' && currentLineIsBlank) {
// envia o cabeçalho de uma resposta http padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
...