Advertisement
Guest User

Arduino

a guest
Jan 6th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.19 KB | None | 0 0
  1. #include "SPI.h"
  2. #include "Ethernet.h"
  3. #include "WebServer.h"
  4.  
  5. static uint8_t mac[6] = { 0x02, 0xAA, 0xBB, 0xCC, 0x00, 0x22 };
  6. static uint8_t ip[4] = { 192, 168, 1, 100 };
  7.  
  8. #define PREFIX ""
  9. WebServer webserver(PREFIX, 80);  
  10.  
  11. void indexCmd(WebServer &server, WebServer::ConnectionType type, char *, bool){
  12.   server.httpSuccess();
  13.   if (type == WebServer::GET){
  14.     P(message) =
  15. "<!DOCTYPE html><html><head>"
  16.   "<title>Arduino Motor steuern</title>"
  17. "</head>"
  18. "<body>"
  19.   "<p>Rotation des Motors:</p>"
  20.   "<input type='range' id='rotation' value='0' min='0' max='360' />"
  21.   "<p>Rotation: <span id='rotation-value'>0</span></p>"
  22.   "<script>"
  23.     "var range = document.getElementById('rotation');"
  24.     "var rangeOut = document.getElementById('rotation-value');"
  25.     "range.oninput = function(){"
  26.     "  rangeOut.textContent = range.value;"
  27.     "  sendData();"
  28.     "};"
  29.     "function sendData(){"
  30.     "  var ajax = new XMLHttpRequest();"
  31.     "  ajax.open('GET', '/rotation?value=' + range.value, true);"
  32.     "  ajax.send(null);"
  33.     "}"
  34.   "</script>"
  35. "</body>"
  36. "</html>";
  37.     server.printP(message);
  38.   }
  39. }
  40.  
  41. #define NAMELEN 32
  42. #define VALUELEN 32
  43. void rotationCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool){
  44.   URLPARAM_RESULT rc;
  45.   char name[NAMELEN];
  46.   char value[VALUELEN];
  47.  
  48.   server.httpSuccess();
  49.   if (type == WebServer::GET && strlen(url_tail) > 0){
  50.     while (strlen(url_tail)) {
  51.       rc = server.nextURLparam(&url_tail, name, NAMELEN, value, VALUELEN);
  52.       if (rc == URLPARAM_EOS)
  53.         // Keine Parameter mehr übrig
  54.       else {
  55.         // name und value sind nun hier verfügbar
  56.         // Wenn name "rotation" entspricht, dann handelt es sich
  57.         // bei value um die Rotation des Motors
  58.       }
  59.     }
  60.   }
  61. }
  62.  
  63. void setup()
  64. {
  65.   pinMode(5, OUTPUT);
  66.   pinMode(3, OUTPUT);
  67.   pinMode(6, OUTPUT);
  68.  
  69.   Ethernet.begin(mac, ip);
  70.  
  71.   // Die index.html ausliefern
  72.   webserver.setDefaultCommand(&indexCmd);
  73.  
  74.   // Die Rotation handeln
  75.   webserver.addCommand("rotation", &rotationCmd);
  76.  
  77.   webserver.begin();
  78. }
  79.  
  80. void loop(){
  81.   webserver.processConnection();
  82.   analogWrite(5, red);
  83.   analogWrite(3, green);
  84.   analogWrite(6, blue);
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement