Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SD.h>
- #include <SPI.h>
- #include <WiFi.h>
- #include <DS1307.h>
- DS1307 rtc(A4, A5);
- Sd2Card SDcard;
- SdVolume volume;
- const int chipSelect = 4;
- char ssid[] = "*******"; // your network SSID (name)
- char pass[] = "********"; // your network password
- int keyIndex = 0; // your network key Index number (needed only for WEP)
- //Sensor de Corrrente DC 10A
- //PINO DO SENSOR
- const int sensorPin = A0;
- //DECLARA��O DA VARI�VEL QUE REALIZA A LEITURA DA CORRENTE
- float sensorValue = 0;
- float currentValue = 0;
- //DECLARA��O DA CONSTANTE DC 5/1023
- float voltsporUnidade = 0.0048875855327468;
- float ruido = 0.00;
- // Sensor de Tens�o
- float tensaoA5;
- float aRef = 4.48;
- float relacaoA5 = 11.1134;
- #define AMOSTRAS 12
- //WIFI
- int status = WL_IDLE_STATUS;
- WiFiServer server(80);
- //----------------------------
- void setup()
- {
- rtc.halt(false); //Aciona o relogio
- //As linhas abaixo setam a data e hora do modulo
- //e podem ser comentada apos a primeira utilizacao
- rtc.setDOW(SUNDAY); //Define o dia da semana
- rtc.setTime(16, 50, 45); //Define o horario
- rtc.setDate(2, 9, 2016); //Define o dia, mes e ano
- Serial.begin(9600);
- if (!SD.begin(chipSelect))
- {
- Serial.println("Falha ao acessar o cartao !");
- return;
- }
- Serial.println("Cartao iniciado corretamente !");
- Serial.println();
- while (!Serial) {
- }
- if (WiFi.status() == WL_NO_SHIELD)
- {
- Serial.println("WiFi shield not present");
- // don't continue:
- while (true);
- }
- String fv = WiFi.firmwareVersion();
- if (fv != "1.1.0")
- {
- Serial.println("Please upgrade the firmware");
- }
- while (status != WL_CONNECTED)
- {
- Serial.print("Attempting to connect to SSID: ");
- Serial.println(ssid);
- status = WiFi.begin(ssid, pass);
- delay(5000);
- }
- server.begin();
- printWifiStatus();
- }
- //-----------------------------------
- float lePorta(uint8_t portaAnalogica)
- {
- float total = 0;
- for (int i = 0; i < AMOSTRAS; i++)
- {
- total += 1.0 * analogRead(portaAnalogica);
- delay(5);
- }
- return total / (float)AMOSTRAS;
- }
- //-------------------------------
- void mostraTensoes()
- {
- Serial.print("Tensao: ");
- Serial.print(tensaoA5 * relacaoA5);
- Serial.print ("\n");
- }
- //------------------------------
- void loop()
- {
- File dataFile = SD.open("arquivo.txt", FILE_WRITE);
- tensaoA5 = (lePorta(A5) * aRef) / 1023;
- mostraTensoes();
- delay(1000);
- // mostra o resultado no terminal
- currentValue = 0; // REINICIA O VALOR ATUAL E ATUALIZA NA PROXIMA LEITURA
- //INICIA A ANALISE DOS VALAORES PARA MEDIR A CORRENTE CONSUMIDA
- for (int index = 0; index < 5000; index++)
- {
- sensorValue = analogRead(sensorPin); // REALIZA A LEITURA DO SENSOR NO PINO A0
- sensorValue = (sensorValue - 510.85) * voltsporUnidade; //AJUSTAR VALOR ENTRE 510-512
- currentValue = currentValue + (sensorValue / 100) * 1000; // SENSOR DE 10A, A SA�DA DO SENSOR 100mV POR AMPER
- delay(1);
- }
- currentValue = currentValue / 5000; // 5000mV
- Serial.print("corrente = " ); // MOSTRAR RESULTADO NO TERMINAL
- currentValue = currentValue - ruido;
- Serial.print(currentValue, 3);
- Serial.println(" Amp");
- Serial.print("\n" );
- delay(10);
- float Potencia = currentValue * (tensaoA5 * relacaoA5);
- Serial.print("Potencia= ");
- Serial.print(Potencia);
- Serial.print("\n");
- delay(2000);
- if (dataFile) // Parte do cartao
- {
- dataFile.print("Corrente: ");
- dataFile.println(currentValue);
- dataFile.println(" Amp");
- dataFile.print("Tensao: ");
- dataFile.println(tensaoA5 * relacaoA5);
- dataFile.print("Potencia: ");
- dataFile.println(Potencia);
- dataFile.print("Data: ");
- dataFile.println(rtc.getTimeStr());
- dataFile.print("Hora: ");
- dataFile.println(rtc.getDateStr(FORMAT_SHORT));
- dataFile.close();
- }
- else
- {
- Serial.println("Erro ao abrir arquivo.txt !"); // Mensagem de erro caso ocorra algum problema na abertura do arquivo
- }
- WiFiClient client = server.available(); // Parte do Wifi
- if (client)
- {
- Serial.println("new client");
- boolean currentLineIsBlank = true; // an http request ends with a blank line
- while (client.connected())
- {
- if (client.available())
- {
- char c = client.read();
- Serial.write(c);
- if (c == '\n' && currentLineIsBlank) // send a standard http response header
- {
- client.println("HTTP/1.1 200 OK");
- client.println("Content-Type: text/html");
- client.println("Connection: close");
- client.println("Refresh: 5");
- client.println();
- client.println("<!DOCTYPE HTML>");
- client.println("<html>");
- client.print("Corrente: ");
- client.print(currentValue);
- client.println("<br />");
- client.print("Tensao: ");
- client.print(tensaoA5 * relacaoA5);
- client.println("<br />");
- client.print("Potencia: ");
- client.print(Potencia);
- client.println("<br />");
- client.println("</html>");
- break;
- }
- if (c == '\n')
- {
- currentLineIsBlank = true; // you're starting a new line
- }
- else if (c != '\r')
- {
- currentLineIsBlank = false; // you've gotten a character on the current line
- }
- }
- }
- delay(1);
- client.stop();
- Serial.println("client disonnected");
- }
- }
- //---------------------------------
- void printWifiStatus()
- {
- IPAddress ip = WiFi.localIP();
- Serial.print("IP Address: ");
- Serial.println(ip);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement