gabry1609

Arduino NetTester

Jan 18th, 2014
470
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.                  CODE BY GABRY1609
  3. -_                 _-_                 _-_      .
  4.    \             /     \             /     \    .
  5.     \           /       \           /       \   .
  6. _ _ _\ _ _ _ _ / _ _ _ _ \ _ _ _ _ / _ _ _ _ \ _.
  7.       \       /           \       /           \ .
  8.        \     /             \     /             \.
  9.          -_-                 -_-                .
  10. */
  11.  
  12. #include <SPI.h>
  13. #include <Ethernet.h>
  14.  
  15. // Indirizzo MAC ethernet shield Arduino
  16. byte mac[] = {
  17.   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  18.  
  19. // inizializzo ethernet shield e la metto in ascolto sulla porta 80 (http)
  20. EthernetServer server(80);
  21. EthernetClient client;
  22.  
  23. void setup() {
  24.  // avvio il monitor seriale per visualizzare i dati relativi all'analisi
  25.   Serial.begin(9600);
  26.    while (!Serial) {
  27.     ;
  28.   }
  29.  
  30.  
  31.   // avvio connessione ethernet
  32.   if (Ethernet.begin(mac) == 0) {
  33.     Serial.println("ERRORE! Non riesco ad ottenere un indirizzo ip DHCP.");
  34.     // nessun client sta tentando di connettersi, restiamo in attesa
  35.     for(;;)
  36.       ;
  37.   }
  38.   // scrivo indirizzo ip dell'Arduino Lan Tester
  39.   Serial.print("Indirizzo IP Lan Tester: ");
  40.   for (byte thisByte = 0; thisByte < 4; thisByte++) {
  41.     Serial.print(Ethernet.localIP()[thisByte], DEC);
  42.     Serial.print(".");
  43.   }
  44.   Serial.println();
  45.   server.begin();
  46.   Serial.println("Attendi, sto avviando il sistema di controllo...");
  47.   Serial.print("Avvio del server eseguito correttamente, Ip: ");
  48.   Serial.println(Ethernet.localIP());
  49. }
  50.  
  51.  
  52. void loop() {
  53.   // metto l'Arduino in ascolto
  54.   EthernetClient client = server.available();
  55.   if (client) {
  56.     Serial.println("Rilevato nuovo client");
  57.     boolean currentLineIsBlank = true;
  58.     while (client.connected()) {
  59.       if (client.available()) {
  60.         char c = client.read();
  61.         Serial.write(c);
  62.  
  63.         if (c == '\n' && currentLineIsBlank) {
  64.           // header http
  65.           client.println("HTTP/1.1 200 OK");
  66.           client.println("Content-Type: text/html");
  67.           client.println("Connection: close");
  68.       client.println("Refresh: 5");  // refresh ogni 5 secondi
  69.           client.println();
  70.           client.println("<!DOCTYPE HTML>");
  71.           client.println("<html>");
  72.           // mando in output il valore di ciascun pin analogico
  73.           for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
  74.             int sensorReading = analogRead(analogChannel);
  75.             client.print("Input analogico ");
  76.             client.print(analogChannel);
  77.             client.print(" val ");
  78.             client.print(sensorReading);
  79.             client.println("<br />");
  80.         client.println("<br />");
  81.         client.println("Funziona!");      //stampo messaggio di funzionamento
  82.           }
  83.           client.println("</html>");
  84.           break;
  85.         }
  86.         if (c == '\n') {
  87.           currentLineIsBlank = true;
  88.         }
  89.         else if (c != '\r') {
  90.           currentLineIsBlank = false;
  91.         }
  92.       }
  93.     }
  94.     // delay per browser
  95.     delay(1);
  96.     // chiusura connessione
  97.     client.stop();
  98.     Serial.println("Client disconnesso");
  99.   }
  100. }
RAW Paste Data