first commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
/*************************************************************
|
||||
Blynk is a platform with iOS and Android apps to control
|
||||
ESP32, Arduino, Raspberry Pi and the likes over the Internet.
|
||||
You can easily build mobile and web interfaces for any
|
||||
projects by simply dragging and dropping widgets.
|
||||
|
||||
Downloads, docs, tutorials: https://www.blynk.io
|
||||
Sketch generator: https://examples.blynk.cc
|
||||
Blynk community: https://community.blynk.cc
|
||||
Follow us: https://www.fb.com/blynkapp
|
||||
https://twitter.com/blynk_app
|
||||
|
||||
Blynk library is licensed under MIT license
|
||||
This example code is in public domain.
|
||||
|
||||
*************************************************************
|
||||
|
||||
This example shows how to synchronize Button widget
|
||||
and physical button state.
|
||||
|
||||
App dashboard setup:
|
||||
Button widget attached to V2 (Switch mode)
|
||||
*************************************************************/
|
||||
|
||||
/* Comment this out to disable prints and save space */
|
||||
#define BLYNK_PRINT Serial
|
||||
|
||||
/* Fill in information from Blynk Device Info here */
|
||||
//#define BLYNK_TEMPLATE_ID "TMPxxxxxx"
|
||||
//#define BLYNK_TEMPLATE_NAME "Device"
|
||||
//#define BLYNK_AUTH_TOKEN "YourAuthToken"
|
||||
|
||||
|
||||
#include <SPI.h>
|
||||
#include <Ethernet.h>
|
||||
#include <BlynkSimpleEthernet.h>
|
||||
|
||||
// Set your LED and physical button pins here
|
||||
const int ledPin = 13;
|
||||
const int btnPin = 12;
|
||||
|
||||
BlynkTimer timer;
|
||||
void checkPhysicalButton();
|
||||
|
||||
int ledState = LOW;
|
||||
int btnState = HIGH;
|
||||
|
||||
// Every time we connect to the cloud...
|
||||
BLYNK_CONNECTED() {
|
||||
// Request the latest state from the server
|
||||
Blynk.syncVirtual(V2);
|
||||
|
||||
// Alternatively, you could override server state using:
|
||||
//Blynk.virtualWrite(V2, ledState);
|
||||
}
|
||||
|
||||
// When App button is pushed - switch the state
|
||||
BLYNK_WRITE(V2) {
|
||||
ledState = param.asInt();
|
||||
digitalWrite(ledPin, ledState);
|
||||
}
|
||||
|
||||
void checkPhysicalButton()
|
||||
{
|
||||
if (digitalRead(btnPin) == LOW) {
|
||||
// btnState is used to avoid sequential toggles
|
||||
if (btnState != LOW) {
|
||||
|
||||
// Toggle LED state
|
||||
ledState = !ledState;
|
||||
digitalWrite(ledPin, ledState);
|
||||
|
||||
// Update Button Widget
|
||||
Blynk.virtualWrite(V2, ledState);
|
||||
}
|
||||
btnState = LOW;
|
||||
} else {
|
||||
btnState = HIGH;
|
||||
}
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
// Debug console
|
||||
Serial.begin(9600);
|
||||
|
||||
Blynk.begin(BLYNK_AUTH_TOKEN);
|
||||
|
||||
pinMode(ledPin, OUTPUT);
|
||||
pinMode(btnPin, INPUT_PULLUP);
|
||||
digitalWrite(ledPin, ledState);
|
||||
|
||||
// Setup a function to be called every 100 ms
|
||||
timer.setInterval(100L, checkPhysicalButton);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
Blynk.run();
|
||||
timer.run();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user