How to make Device Powers Your Home Assistant

Duy Thuc 3/26/2024
0 likes
iot esp


code google drive:

https://drive.google.com/file/d/1cqhuxCoI13g1frqel4Y-ZcoUDZzphGyu/view?usp=sharing

/*************************************************************

  This is a simple demo of sending and receiving some data.

  Be sure to check out other examples!

 *************************************************************/

// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud

// See the Device Info tab, or Template settings

#define BLYNK_TEMPLATE_ID           "TMPLXzv7Lf4D"

#define BLYNK_DEVICE_NAME           "Quickstart Device"

#define BLYNK_AUTH_TOKEN            "aCteWJGk2MdaZt84j8wmM1CNzgbFzaG1"

// Comment this out to disable prints and save space

#define BLYNK_PRINT Serial

int value1=HIGH;

int value2=HIGH;

int value3=HIGH;

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

char auth[] =   "aCteWJGk2MdaZt84j8wmM1CNzgbFzaG1";

// Your WiFi credentials.

// Set password to "" for open networks.

char ssid[] = "Ghost Rider";

char pass[] = "";

BlynkTimer timer;

// This function is called every time the Virtual Pin 0 state changes

BLYNK_WRITE(V4)

{

  // Set incoming value from pin V0 to a variable

  int value1 = param.asInt();

  digitalWrite(D1,value1); 

}

BLYNK_WRITE(V5)

{

  // Set incoming value from pin V0 to a variable

  int value2 = param.asInt();

  digitalWrite(D2,value2);

}

BLYNK_WRITE(V6)

{

 // Set incoming value from pin V0 to a variable

  int value3 = param.asInt();

  digitalWrite(D3,value3); 

}

// This function is called every time the device is connected to the Blynk.Cloud

BLYNK_CONNECTED()

{

  // Change Web Link Button message to "Congratulations!"

  Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");

  Blynk.setProperty(V3, "onImageUrl",  "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");

  Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");

}

// This function sends Arduino's uptime every second to Virtual Pin 2.

void myTimerEvent()

{

  // You can send any value at any time.

  // Please don't send more that 10 values per second.

  Blynk.virtualWrite(V2, millis() / 1000);

}

void setup()

{

  // Debug console

  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass);

  // You can also specify server:

  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);

  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Setup a function to be called every second

  timer.setInterval(1000L, myTimerEvent);

   pinMode(D1,OUTPUT);

   pinMode(D2,OUTPUT);

   pinMode(D3,OUTPUT);

   pinMode(D5,INPUT);

   pinMode(D6,INPUT);

   pinMode(D7,INPUT);

   digitalWrite(D1,HIGH);

   digitalWrite(D2,HIGH);

   digitalWrite(D3,HIGH);

   attachInterrupt(D5, PhysicalButton, RISING); 

   attachInterrupt(D6, PhysicalButton, RISING); 

   attachInterrupt(D7, PhysicalButton, RISING); 

}

void loop()

{

  Blynk.run();

  timer.run();

  // You can inject your own code or combine it with other sketches.

  // Check other examples on how to communicate with Blynk. Remember

  // to avoid delay() function!

}

//-----------Ngắt phuc vụ xử lý nút nhấn--------------

ICACHE_RAM_ATTR void PhysicalButton()

{

  if (digitalRead(D5) == HIGH) {

      value1 = !value1;

      digitalWrite(D1, value1);

      Blynk.virtualWrite(V4, value1);

  }

  if (digitalRead(D6) == HIGH) {

      value2 = !value2;

      digitalWrite(D2, value2);

      Blynk.virtualWrite(V5, value2);

  }

  if (digitalRead(D7) == HIGH) {

      value3 = !value3;

      digitalWrite(D3, value3);

      Blynk.virtualWrite(V6, value3);

  }

  

}



Powered by Froala Editor

;
Comments