Advertisement
DaniCris

WebServer

Dec 5th, 2015
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. /*
  2. Servidor web
  3.  
  4. Um servidor web simples que mostra o valor dos pinos de entrada analógica.
  5. usando um escudo Arduino Wiznet Ethernet.
  6.  
  7. O circuito:
  8. * Escudo Ethernet conectado aos pinos 10, 11, 12, 13
  9. * As entradas analógicas conectados a pinos A0 a A5 (opcional)
  10.  
  11. criado 18 de dezembro de 2009
  12. por David A. Mellis
  13. modificado 9 de abril de 2012
  14. por Tom Igoe
  15.  
  16. */
  17.  
  18. #include <SPI.h>
  19. #include <Ethernet.h>
  20.  
  21. // Insira um endereço MAC ao endereço IP para o controlador abaixo.
  22. // O endereço IP será dependente de sua rede local:
  23. byte mac[] = {
  24. 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
  25. };
  26. IPAddress ip(192, 168, 25, 17);
  27.  
  28. // Inicializar a biblioteca servidor Ethernet
  29. // com o endereço IP e a porta que você deseja usar
  30. // (porta 80 é padrão para HTTP):
  31. EthernetServer server(80);
  32.  
  33. void setup() {
  34. // Abra comunicações série e esperar por porta para abrir:
  35. Serial.begin(9600);
  36. while (!Serial) {
  37. ; // esperar por porta serial para conectar. Necessário para Leonardo única
  38. }
  39.  
  40.  
  41. // iniciar a conexão Ethernet ao servidor:
  42. Ethernet.begin(mac, ip);
  43. server.begin();
  44. Serial.print("Conectado no servidor ");
  45. Serial.println(Ethernet.localIP());
  46. }
  47.  
  48.  
  49. void loop() {
  50. // ouvir para clientes de entrada
  51. EthernetClient client = server.available();
  52. if (client) {
  53. Serial.println("novo cliente");
  54. // uma solicitação http termina com uma linha em branco
  55. boolean currentLineIsBlank = true;
  56. while (client.connected()) {
  57. if (client.available()) {
  58. char c = client.read();
  59. Serial.write(c);
  60. // se você chegou ao fim da linha (recebeu um caractere de nova linha
  61. // e a linha estiver em branco, o pedido http terminou,
  62. // para que você possa enviar uma resposta
  63. if (c == '\n' && currentLineIsBlank) {
  64. // send a standard http response header
  65. client.println("HTTP/1.1 200 OK");
  66. client.println("Content-Type: text/html");
  67. client.println("Connection: close"); // a ligação vai ser fechado após a conclusão da resposta
  68. client.println("Refresh: 5"); // atualizar a página automaticamente a cada 5 segundos
  69. client.println();
  70. client.println("<!DOCTYPE HTML>");
  71. client.println("<html>");
  72. // o valor de saída de cada pino de entrada analógico
  73. for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
  74. int sensorReading = analogRead(analogChannel);
  75. client.print("analog input ");
  76. client.print(analogChannel);
  77. client.print(" is ");
  78. client.print(sensorReading);
  79. client.println("<br />");
  80. }
  81. client.println("</html>");
  82. break;
  83. }
  84. if (c == '\n') {
  85. // você está começando uma nova linha
  86. currentLineIsBlank = true;
  87. }
  88. else if (c != '\r') {
  89. // você tenha obtido um personagem na linha atual
  90. currentLineIsBlank = false;
  91. }
  92. }
  93. }
  94. // dar tempo ao navegador para receber os dados
  95. delay(1);
  96. // fechar a conexão:
  97. client.stop();
  98. Serial.println("client disconnected");
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement