Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SoftwareSerial.h>
  2. #include <ESP8266WiFi.h>
  3. #include <ESP8266WiFiMulti.h>
  4.  
  5. SoftwareSerial ESPserial(13, 15); // Software Serial
  6.  
  7. ESP8266WiFiMulti WiFiMulti; // WiFi Multi Class
  8. WiFiClient client; // We will used client connection with HUE BRIDGE
  9.  
  10. // data for bridge connection
  11. const uint16_t port = 80;
  12. const char * host = "192.168.1.150"; // BRIDGE IP
  13. String url = "/api/6Rhc-zJoImVo0fZBkcHCrY0LhNs9uI9h1kijKCI0/lights/2/state"; //URL with Hue username and light number
  14.  
  15. // data for bulb control
  16. // bulbON
  17. String hueon = "{\"on\":true}";
  18. int onlength = hueon.length();
  19. // bulbOFF
  20. String hueoff = "{\"on\":false}";
  21. int offlength = hueoff.length();
  22. // bulbBright
  23. int numberbri = 0;
  24. String huebri = "{\"bri\":" + String(numberbri) + "}";
  25. int brilength = huebri.length();
  26. //bulbSaturation
  27. int numbersat = 0; // insert saturation here
  28. String huesat = "{\"sat\":" + String(numbersat) + "}";
  29. int satlength = huesat.length();
  30.  
  31. bool onoff;
  32. int bright, bright_temp = - 69;
  33. int saturation, saturation_tmp = -69;
  34. double x,x_tmp=-69;
  35. double y,y_tmp=-69;
  36. double colorx = 0.00392;
  37. double colory = 0.00392;
  38. double numberx = 0;
  39. double numbery = 0;
  40. bool flag = false, flag2 = false;
  41.  
  42. void setup() {
  43.     Serial.begin(57600);// Begin the Serial at 9600 Baud
  44.     wificonnection();
  45.     ESPserial.begin(57600);
  46. }
  47. void loop() {
  48.  
  49.   Serial.print("brigt 0:   ");
  50.   Serial.println(bright);
  51.   if (ESPserial.available())
  52.   {
  53.     readInputValues();
  54.   }  
  55.  
  56.   if (onoff == 1 && !flag)
  57.   {  
  58.      switchOnLightBulb();
  59.    }
  60.   else if (onoff == 0 && !flag2)
  61.   {
  62.      switchOffLightBulb();
  63.   }
  64.  
  65.   Serial.print("brigt 1:    ");
  66.   Serial.println(bright);
  67.   setBrightOfTheFuckingBulbLightBulb();    
  68.   Serial.print("brigt 2:    ");
  69.   Serial.println(bright);
  70.   setSaturationOfTheFuckingBulbLightBulb();
  71.   setColorOfTheFuckingBulbLightBulb();
  72.  
  73.   delay(1000);
  74. }
  75.  
  76.  void wificonnection(){ // Funtion to connect with local WiFi
  77.     WiFiMulti.addAP("mieszkanie", "77579959");
  78.     // We can add more network here becouse we use WiFiMulti.
  79.     Serial.println();
  80.     Serial.println();
  81.     Serial.print("Wait for WiFi... ");
  82.  
  83.     while(WiFiMulti.run() != WL_CONNECTED) {
  84.         Serial.print(".");
  85.         delay(500);
  86.     }
  87.  
  88.     Serial.println("");
  89.     Serial.println("WiFi connected");
  90.     Serial.println("IP address: ");
  91.     Serial.println(WiFi.localIP());
  92.     Serial.println();
  93.  
  94.     delay(500);  
  95. }
  96.  
  97.  void clientconnection(){ // We connecting to the specific IP Adress and port
  98.   if (!client.connect(host, port)) {
  99.         Serial.println("connection failed");
  100.         Serial.println("wait 5 sec...");
  101.         delay(5000);
  102.         return;
  103.     }
  104. }
  105.  
  106.  void readInputValues(){
  107.     Serial.println("readInputValues");
  108.    
  109.     onoff  = ESPserial.read();
  110.     Serial.print("on off");
  111.     Serial.println(onoff);
  112.    
  113.     bright  = ESPserial.read();
  114.     Serial.print("bright");
  115.     Serial.println(bright);
  116.    
  117.     saturation = ESPserial.read();
  118.     Serial.print("saturation");
  119.     Serial.println(saturation);
  120.    
  121.     x = ESPserial.read();
  122.     Serial.print("x");
  123.     Serial.println(x);
  124.    
  125.     y = ESPserial.read();
  126.     Serial.print("y");
  127.     Serial.println(y);
  128.     Serial.println();
  129.     Serial.println();
  130.  }
  131.  
  132.  void switchOnLightBulb(){
  133.       Serial.print("dupa: ");
  134.       Serial.println(onoff);
  135.      
  136.       clientconnection();
  137.       client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
  138.                   "Host: " + host + "\r\n" +
  139.                   "Connection: keep-alive\r\n" +
  140.                   "Accept: */*\r\n" +
  141.                   "Content-Type: text/plain;charset=UTF-8\r\n" +
  142.                   "Content-Length:" + onlength + "\r\n\r\n" +
  143.                   hueon+"\r\n\r\n");
  144.           flag = true;
  145.           flag2 = false;
  146.  
  147.  }
  148.  
  149.  void switchOffLightBulb(){
  150.     Serial.print("cipa: ");
  151.       Serial.println(onoff);
  152.       clientconnection();
  153.       client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
  154.                 "Host: " + host + "\r\n" +
  155.                 "Connection: keep-alive\r\n" +
  156.                 "Accept: */*\r\n" +
  157.                 "Content-Type: text/plain;charset=UTF-8\r\n" +
  158.                 "Content-Length:" + offlength + "\r\n\r\n" +
  159.                 hueoff+"\r\n\r\n");
  160.           flag2 = true;
  161.           flag = false;
  162.   }
  163.  
  164.  void setBrightOfTheFuckingBulbLightBulb(){
  165.   if (bright_temp != bright)
  166.   {
  167.     bright_temp = bright;
  168.     Serial.println(bright);
  169.     numberbri = bright;
  170.     Serial.print("Number bri = ");
  171.     Serial.println(numberbri);
  172.     String huebri = "{\"bri\":" + String(numberbri) + "}";
  173.     int brilength = huebri.length();
  174.     clientconnection();
  175.     client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
  176.                 "Host: " + host + "\r\n" +
  177.                 "Connection: keep-alive\r\n" +
  178.                 "Accept: */*\r\n" +
  179.                 "Content-Type: text/plain;charset=UTF-8\r\n" +
  180.                 "Content-Length:" + brilength + "\r\n\r\n" +
  181.                 huebri+"\r\n\r\n");
  182.    }
  183.  }
  184.  
  185.  void setSaturationOfTheFuckingBulbLightBulb(){
  186.     if (saturation_tmp != saturation)
  187.     {
  188.     saturation_tmp = saturation;
  189.     Serial.println(saturation);
  190.     numbersat = saturation;
  191.     Serial.print("Number sat = ");
  192.     Serial.println(numbersat);
  193.     String huesat = "{\"sat\":" + String(numbersat) + "}";
  194.     int satlength = huesat.length();
  195.     clientconnection();
  196.     client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
  197.                 "Host: " + host + "\r\n" +
  198.                 "Connection: keep-alive\r\n" +
  199.                 "Accept: */*\r\n" +
  200.                 "Content-Type: text/plain;charset=UTF-8\r\n" +
  201.                 "Content-Length:" + satlength + "\r\n\r\n" +
  202.                 huesat+"\r\n\r\n");
  203.      }
  204.  }
  205.  
  206.  void setColorOfTheFuckingBulbLightBulb(){
  207.    if (x_tmp != x || y_tmp != y)
  208.     {
  209.       x_tmp=x;
  210.       y_tmp=y;
  211.  
  212.       Serial.print("X = ");
  213.     Serial.println(x);
  214.      Serial.print("Y = ");
  215.      Serial.println(y);
  216.  
  217.       Serial.print("colorx = ");
  218.       Serial.println(colorx,5);
  219.      Serial.print("colory = ");
  220.       Serial.println(colory,5);
  221.      
  222.       numberx=x*colorx;
  223.       numbery=y*colory;
  224.      
  225.       Serial.print("po zmianie = ");
  226.       Serial.println(numberx,8);
  227.       Serial.print("po zmianie = ");
  228.       Serial.println(numbery,8);
  229.      
  230.    String huexy = "{\"xy\":[" + String(numberx) + "," + String(numbery) + "]}";
  231.    int xylength = huexy.length();
  232.  
  233.       Serial.print("huexy = ");
  234.       Serial.println(huexy);
  235.      Serial.print("xylegth = ");
  236.       Serial.println(xylength);
  237.  
  238.    clientconnection();
  239.    client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
  240.                  "Host: " + host + "\r\n" +
  241.                  "Connection: keep-alive\r\n" +
  242.                  "Accept: */*\r\n" +
  243.                  "Content-Type: text/plain;charset=UTF-8\r\n" +
  244.                  "Content-Length:" + xylength + "\r\n\r\n" +
  245.                  huexy+"\r\n\r\n");
  246.     }
  247.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement