Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #include <ESP8266WiFi.h>
- #include <ESP8266WiFiMulti.h>
- SoftwareSerial ESPserial(13, 15); // Software Serial
- ESP8266WiFiMulti WiFiMulti; // WiFi Multi Class
- WiFiClient client; // We will used client connection with HUE BRIDGE
- // data for bridge connection
- const uint16_t port = 80;
- const char * host = "192.168.1.150"; // BRIDGE IP
- String url = "/api/6Rhc-zJoImVo0fZBkcHCrY0LhNs9uI9h1kijKCI0/lights/2/state"; //URL with Hue username and light number
- // data for bulb control
- // bulbON
- String hueon = "{\"on\":true}";
- int onlength = hueon.length();
- // bulbOFF
- String hueoff = "{\"on\":false}";
- int offlength = hueoff.length();
- // bulbBright
- int numberbri = 0;
- String huebri = "{\"bri\":" + String(numberbri) + "}";
- int brilength = huebri.length();
- //bulbSaturation
- int numbersat = 0; // insert saturation here
- String huesat = "{\"sat\":" + String(numbersat) + "}";
- int satlength = huesat.length();
- bool onoff;
- int bright, bright_temp = - 69;
- int saturation, saturation_tmp = -69;
- double x,x_tmp=-69;
- double y,y_tmp=-69;
- double colorx = 0.00392;
- double colory = 0.00392;
- double numberx = 0;
- double numbery = 0;
- bool flag = false, flag2 = false;
- void setup() {
- Serial.begin(57600);// Begin the Serial at 9600 Baud
- wificonnection();
- ESPserial.begin(57600);
- }
- void loop() {
- Serial.print("brigt 0: ");
- Serial.println(bright);
- if (ESPserial.available())
- {
- readInputValues();
- }
- if (onoff == 1 && !flag)
- {
- switchOnLightBulb();
- }
- else if (onoff == 0 && !flag2)
- {
- switchOffLightBulb();
- }
- Serial.print("brigt 1: ");
- Serial.println(bright);
- setBrightOfTheFuckingBulbLightBulb();
- Serial.print("brigt 2: ");
- Serial.println(bright);
- setSaturationOfTheFuckingBulbLightBulb();
- setColorOfTheFuckingBulbLightBulb();
- delay(1000);
- }
- void wificonnection(){ // Funtion to connect with local WiFi
- WiFiMulti.addAP("mieszkanie", "77579959");
- // We can add more network here becouse we use WiFiMulti.
- Serial.println();
- Serial.println();
- Serial.print("Wait for WiFi... ");
- while(WiFiMulti.run() != WL_CONNECTED) {
- Serial.print(".");
- delay(500);
- }
- Serial.println("");
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- Serial.println();
- delay(500);
- }
- void clientconnection(){ // We connecting to the specific IP Adress and port
- if (!client.connect(host, port)) {
- Serial.println("connection failed");
- Serial.println("wait 5 sec...");
- delay(5000);
- return;
- }
- }
- void readInputValues(){
- Serial.println("readInputValues");
- onoff = ESPserial.read();
- Serial.print("on off");
- Serial.println(onoff);
- bright = ESPserial.read();
- Serial.print("bright");
- Serial.println(bright);
- saturation = ESPserial.read();
- Serial.print("saturation");
- Serial.println(saturation);
- x = ESPserial.read();
- Serial.print("x");
- Serial.println(x);
- y = ESPserial.read();
- Serial.print("y");
- Serial.println(y);
- Serial.println();
- Serial.println();
- }
- void switchOnLightBulb(){
- Serial.print("dupa: ");
- Serial.println(onoff);
- clientconnection();
- client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
- "Host: " + host + "\r\n" +
- "Connection: keep-alive\r\n" +
- "Accept: */*\r\n" +
- "Content-Type: text/plain;charset=UTF-8\r\n" +
- "Content-Length:" + onlength + "\r\n\r\n" +
- hueon+"\r\n\r\n");
- flag = true;
- flag2 = false;
- }
- void switchOffLightBulb(){
- Serial.print("cipa: ");
- Serial.println(onoff);
- clientconnection();
- client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
- "Host: " + host + "\r\n" +
- "Connection: keep-alive\r\n" +
- "Accept: */*\r\n" +
- "Content-Type: text/plain;charset=UTF-8\r\n" +
- "Content-Length:" + offlength + "\r\n\r\n" +
- hueoff+"\r\n\r\n");
- flag2 = true;
- flag = false;
- }
- void setBrightOfTheFuckingBulbLightBulb(){
- if (bright_temp != bright)
- {
- bright_temp = bright;
- Serial.println(bright);
- numberbri = bright;
- Serial.print("Number bri = ");
- Serial.println(numberbri);
- String huebri = "{\"bri\":" + String(numberbri) + "}";
- int brilength = huebri.length();
- clientconnection();
- client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
- "Host: " + host + "\r\n" +
- "Connection: keep-alive\r\n" +
- "Accept: */*\r\n" +
- "Content-Type: text/plain;charset=UTF-8\r\n" +
- "Content-Length:" + brilength + "\r\n\r\n" +
- huebri+"\r\n\r\n");
- }
- }
- void setSaturationOfTheFuckingBulbLightBulb(){
- if (saturation_tmp != saturation)
- {
- saturation_tmp = saturation;
- Serial.println(saturation);
- numbersat = saturation;
- Serial.print("Number sat = ");
- Serial.println(numbersat);
- String huesat = "{\"sat\":" + String(numbersat) + "}";
- int satlength = huesat.length();
- clientconnection();
- client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
- "Host: " + host + "\r\n" +
- "Connection: keep-alive\r\n" +
- "Accept: */*\r\n" +
- "Content-Type: text/plain;charset=UTF-8\r\n" +
- "Content-Length:" + satlength + "\r\n\r\n" +
- huesat+"\r\n\r\n");
- }
- }
- void setColorOfTheFuckingBulbLightBulb(){
- if (x_tmp != x || y_tmp != y)
- {
- x_tmp=x;
- y_tmp=y;
- Serial.print("X = ");
- Serial.println(x);
- Serial.print("Y = ");
- Serial.println(y);
- Serial.print("colorx = ");
- Serial.println(colorx,5);
- Serial.print("colory = ");
- Serial.println(colory,5);
- numberx=x*colorx;
- numbery=y*colory;
- Serial.print("po zmianie = ");
- Serial.println(numberx,8);
- Serial.print("po zmianie = ");
- Serial.println(numbery,8);
- String huexy = "{\"xy\":[" + String(numberx) + "," + String(numbery) + "]}";
- int xylength = huexy.length();
- Serial.print("huexy = ");
- Serial.println(huexy);
- Serial.print("xylegth = ");
- Serial.println(xylength);
- clientconnection();
- client.println(String("PUT ") + url + " HTTP/1.1\r\n" +
- "Host: " + host + "\r\n" +
- "Connection: keep-alive\r\n" +
- "Accept: */*\r\n" +
- "Content-Type: text/plain;charset=UTF-8\r\n" +
- "Content-Length:" + xylength + "\r\n\r\n" +
- huexy+"\r\n\r\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement