Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*--------------------------------------------------------------
- Arduino Werb server - Ligar lâmpada
- --------------------------------------------------------------*/
- #include <SPI.h>
- #include <Ethernet.h>
- // Endereço MAC do adesivo de Ethernet Shield sob a placa
- byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
- IPAddress ip(192, 168, 0, 17); // Endereço IP, pode precisar mudar dependendo da rede
- EthernetServer server(80); // Criar um servidor na porta 80
- String HTTP_req; // Armazena a solicitação HTTP
- boolean LAMP_status = 0; // Estado da Lampada, desativado por padrão
- void setup()
- {
- Ethernet.begin(mac, ip); // Inicializar o dispositivo Ethernet
- server.begin(); // Começar a ouvir clientes
- Serial.begin(9600); // Para diagnosticos
- pinMode(6, OUTPUT); // Lampada no pino 6
- }
- void loop()
- {
- EthernetClient client = server.available(); // Tente conseguir cliente
- if (client) { // Tem cliente?
- boolean currentLineIsBlank = true;
- while (client.connected()) {
- if (client.available()) { // Dados do cliente disponiveis para leitura
- char c = client.read(); // Leia 1 byte (caractere) do cliente
- HTTP_req += c; // Salve o pedido de HTTP 1 caracter de cada vez
- // Ultima linha do pedido do cliente está em branco e termina com \n
- // Responder ao cliente somente apos a ultima linha recebida
- if (c == '\n' && currentLineIsBlank) {
- // Enviar um cabeçalho de resposta http padrão
- client.println("HTTP/1.1 200 OK");
- client.println("Content-Type: text/html");
- client.println("Conexão: fechada");
- client.println();
- // Enviar página da web
- client.println("<!DOCTYPE html>");
- client.println("<html>");
- client.println("<head>");
- client.println("<title>AUTOMACAO</title>");
- client.println("<p main style=color: white></p>");
- client.println("</head>");
- client.println("<body>");
- client.println("<h1>LIGAR LAMPADA EXTERNA</h1>");
- client.println("<p>Clique para ligar e desligar a LAMPADA.</p>");
- client.println("<form method=\"get\">");
- ProcessCheckbox(client);
- client.println("</form>");
- client.println("</body>");
- client.println("</html>");
- Serial.print(HTTP_req);
- HTTP_req = ""; // Terminado com pedido, string vazia
- break;
- }
- // Cada linha de texto recebida do cliente termina com \r\n
- if (c == '\n') {
- // Ultimo caractere na linha de texto recebido
- // Iniciando nova linha com o proximo caractere lido
- currentLineIsBlank = true;
- }
- else if (c != '\r') {
- // Um caractere de texto foi recebido do cliente
- currentLineIsBlank = false;
- }
- } // end if (client.available())
- } // end while (client.connected())
- delay(1); // Dê tempo ao navegador da web para receber os dados
- client.stop(); // Feche a conexao
- } // end if (client)
- }
- // Alterne LAMP e envie de volta a caixa de seleção HTML para LAMP
- void ProcessCheckbox(EthernetClient cl)
- {
- if (HTTP_req.indexOf("LAMP=6") > -1) { // Ver se a caixa de seleção foi clicada
- // A caixa de seleção foi clicada, alterne a Lampada
- if (LAMP_status) {
- LAMP_status = 0;
- }
- else {
- LAMP_status = 1;
- }
- }
- if (LAMP_status) { // Ligar a Lampada
- digitalWrite(6, HIGH);
- // A caixa de seleção está marcada
- cl.println("<input type=\"checkbox\" name=\"LAMP\" value=\"6\" \
- onclick=\"submit();\" checked>LAMPADA");
- }
- else { // Desligar a Lampada
- digitalWrite(6, LOW);
- // a caixa de seleção está desmarcada
- cl.println("<input type=\"checkbox\" name=\"LAMP\" value=\"6\" \
- onclick=\"submit();\">LAMPADA");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement