Guest User

Untitled

a guest
Apr 12th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.97 KB | None | 0 0
  1. /*
  2. A simple web server using an Arduino Wiznet Ethernet shield.
  3. For Arduino IDE V0022 only. IDE v1.0 require mods to this code.
  4.  
  5. Original code created 18 Dec 2009
  6.  by David A. Mellis
  7.  modified 4 Sep 2010
  8.  by Tom Igoe
  9.  modified 21 Jan 2012
  10.  by Tim Dicus
  11. */
  12.  
  13. #include <SPI.h>
  14. #include <Ethernet.h>
  15. #include <LiquidCrystal.h>
  16.  
  17. // Enter a MAC address and IP address for your controller below.
  18. // The IP address will be dependent on your local network:
  19. byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
  20. byte ip[] = { 192, 168, 0, 31};
  21.  
  22. // Initialize the Ethernet server library
  23. // with the IP address and port you want to use
  24. // (port 80 is default for HTTP):
  25. char returned_message[4];
  26. EthernetServer server(80);
  27.  
  28. LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
  29. void setup()
  30. {
  31.   Serial.begin(9600);
  32.   lcd.begin(16, 2);
  33.  
  34.   // start the SD interface here if you want.
  35.   // Add the SD.h library above
  36.   // SD.begin(4);
  37.  
  38.   // start the Ethernet connection and the server:
  39.   Ethernet.begin(mac, ip);
  40.  
  41.   delay(2000);
  42.   server.begin();
  43.  
  44.   Serial.println("setup finished");
  45. }
  46.  
  47. String Between(String input, String left, String right){
  48.   int l = input.indexOf(left) + left.length();
  49.   int r = input.indexOf(right,l);
  50.  
  51.   return(input.substring(l,r));
  52. }
  53.  
  54. void loop()
  55. {
  56.   String buffer = "";
  57.   String requesturl = "";
  58.   String buffers = "";
  59.   String quellcode = "";
  60.  
  61.   // listen for incoming clients
  62.   EthernetClient client = server.available();
  63.   char incoming_shits;
  64.   if (client) {
  65.     // an http request ends with a blank line
  66.     boolean currentLineIsBlank = true;
  67.     while (client.connected()) {
  68.       while(client.available()) {
  69.         char c = client.read();
  70.         // if you've gotten to the end of the line (received a newline
  71.         // character) and the line is blank, the http request has ended,
  72.         // so you can send a reply  
  73.        
  74.         if(requesturl == ""){
  75.           buffer += c;
  76.           if(c == '\n' && buffer.startsWith("GET")){
  77.             requesturl = buffer.substring(12,buffer.length()-11);
  78.             buffer = "";
  79.            
  80.             requesturl.replace('+',' ');
  81.             requesturl.replace('%3F','?');
  82.             requesturl.replace('%21','!');
  83.            
  84.             lcd.clear();
  85.             if (requesturl.length() > 16){
  86.                lcd.print(requesturl.substring(0,16));
  87.                lcd.setCursor(0,1);
  88.                lcd.print(requesturl.substring(16,requesturl.length()));
  89.             }else{
  90.               lcd.setCursor(0,0);
  91.               lcd.print(requesturl);
  92.             }
  93.           }
  94.         }
  95.  
  96.         if (c == '\n' && currentLineIsBlank) {
  97.           // send a standard http response header
  98.                   client.println(F("HTTP/1.1 200 OK"));
  99.           client.println(F("Content-Type: text/html"));
  100.           client.println(F(""));
  101.           client.println(F("<!DOCTYPE html>"));
  102.           client.println(F(""));
  103.           client.println(F("<html lang=\"en\">"));
  104.           client.println(F(""));
  105.           client.println(F("<head>"));
  106.           client.println(F("    <meta name = \"viewport\" content = \"width = 320,user(-scalable = 1, 0)initial(-Scale() = 3,)maximum-scale = 3\"</meta>"));
  107.           client.println(F("  <meta charset=\"utf-8\" />"));
  108.           client.println(F(""));
  109.           client.println(F("  <title>WebPanel</title>"));
  110.           client.println(F(""));
  111.           client.println(F("  <link rel=\"stylesheet\" href=\"http://mydomain.de/jqueryaccordionmenu/accordionmenu.css\" type=\"text/css\" media=\"screen\" />"));
  112.           client.println(F(""));
  113.           client.println(F("  <style type=\"text/css\">body{background:url(img/bg.png) repeat;width:960px;margin:0 auto;font-family:Calibri;font-size:20px;}.footer{margin-top:50px;text-align:center;color:#666;font:bold 14px Arial}.footer a{color:#999;text-decoration:none}#wrapper-250{width:100%;}</style>"));
  114.           client.println(F("<meta name=\"robots\" content=\"noindex,follow\" />"));
  115.           client.println(F("</head>"));
  116.           client.println(F(""));
  117.           client.println(F("<body>"));
  118.           client.println(F("  <div id=\"wrapper-250\">"));
  119.           client.println(F(""));
  120.           client.println(F("    <ul class=\"accordion\">"));
  121.           client.println(F("      "));
  122.           client.println(F("      <li id=\"one\" class=\"files\">"));
  123.           client.println(F(""));
  124.           client.println(F("        <a href=\"#one\">LCD</a>"));
  125.           client.println(F(""));
  126.           client.println(F("        <ul class=\"sub-menu\">"));
  127.           client.println(F("          <form method=\"get\" name=\"text\"><input type=\"text\" name=\"fname\" /> <input type=\"submit\" value=\"Absenden\" /><br/>Aktuell angezeigter Text: "));
  128.          
  129.           if(requesturl == " HTTP/1"){
  130.             client.print("\"LCD leer");
  131.           }else{
  132.           client.print("\"");
  133.           client.print(requesturl);
  134.           }
  135.          
  136.           client.println(F("        </ul>"));
  137.           client.println(F(""));
  138.           client.println(F("      </li>"));
  139.           client.println(F("      "));
  140.           client.println(F("      <li id=\"two\" class=\"mail\">"));
  141.           client.println(F(""));
  142.           client.println(F("        <a href=\"#two\">test2</a>"));
  143.           client.println(F(""));
  144.           client.println(F("        <ul class=\"sub-menu\">"));
  145.           client.println(F("          test2"));
  146.           client.println(F("        </ul>"));
  147.           client.println(F(""));
  148.           client.println(F("      </li>"));
  149.           client.println(F("      "));
  150.           client.println(F("      <li id=\"three\" class=\"cloud\">"));
  151.           client.println(F(""));
  152.           client.println(F("        <a href=\"#three\">test3</a>"));
  153.           client.println(F(""));
  154.           client.println(F("        <ul class=\"sub-menu\">"));
  155.           client.println(F("          test3"));
  156.           client.println(F("        </ul>"));
  157.           client.println(F(""));
  158.           client.println(F("      </li>"));
  159.           client.println(F("      "));
  160.           client.println(F("      <li id=\"four\" class=\"sign\">"));
  161.           client.println(F(""));
  162.           client.println(F("        <a href=\"#four\">test4</a>"));
  163.           client.println(F(""));
  164.           client.println(F("        <ul class=\"sub-menu\">"));
  165.           client.println(F("          test4"));
  166.           client.println(F("        </ul>"));
  167.           client.println(F(""));
  168.           client.println(F("      </li>"));
  169.           client.println(F("    "));
  170.           client.println(F("    </ul>"));
  171.           client.println(F("    "));
  172.           client.println(F("  </div>"));
  173.           client.println(F("  "));
  174.           client.println(F("  <script type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></script>"));
  175.           client.println(F("  <script type=\"text/javascript\">"));
  176.           client.println(F(""));
  177.           client.println(F("    $(document).ready(function() {"));
  178.           client.println(F(""));
  179.           client.println(F("      // Store variables"));
  180.           client.println(F("      "));
  181.           client.println(F("      var accordion_head = $('.accordion > li > a'),"));
  182.           client.println(F("        accordion_body = $('.accordion li > .sub-menu'));"));
  183.           client.println(F(""));
  184.           client.println(F("      // Open the first tab on load"));
  185.           client.println(F(""));
  186.           client.println(F("      accordion_head.first().addClass('active').next().slideDown('normal'));"));
  187.           client.println(F(""));
  188.           client.println(F("      // Click function"));
  189.           client.println(F(""));
  190.           client.println(F("      accordion_head.on('click', function(event) {"));
  191.           client.println(F(""));
  192.           client.println(F("        // Disable header links"));
  193.           client.println(F("        "));
  194.           client.println(F("        event.preventDefault());"));
  195.           client.println(F(""));
  196.           client.println(F("        // Show and hide the tabs on click"));
  197.           client.println(F(""));
  198.           client.println(F("        if ($(this).attr('class') != 'active'){"));
  199.           client.println(F("          accordion_body.slideUp('normal'));"));
  200.           client.println(F("          $(this).next().stop(true,true).slideToggle('normal'));"));
  201.           client.println(F("          accordion_head.removeClass('active'));"));
  202.           client.println(F("          $(this).addClass('active'));"));
  203.           client.println(F("        }"));
  204.           client.println(F(""));
  205.           client.println(F("      }));"));
  206.           client.println(F(""));
  207.           client.println(F("    }));"));
  208.           client.println(F(""));
  209.           client.println(F("  </script>"));
  210.           client.println(F(""));
  211.           client.println(F("</body>"));
  212.           client.println(F(""));
  213.           client.println(F("</html>"));
  214.           client.stop();
  215.         }
  216.        
  217.         else if (c == '\n') {
  218.           // you're starting a new line
  219.           currentLineIsBlank = true;
  220.         }
  221.         else if (c != '\r') {
  222.           // you've gotten a character on the current line
  223.           currentLineIsBlank = false;
  224.         }
  225.       }
  226.     }
  227.   }
  228. }
Add Comment
Please, Sign In to add comment