Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Fill-in information from your Blynk Template here
- #define BLYNK_TEMPLATE_ID "TMPLgBRoLHL2"
- #define BLYNK_DEVICE_NAME "Scale Switch"
- #define BLYNK_FIRMWARE_VERSION "0.1.0"
- #define BLYNK_PRINT Serial
- //#define BLYNK_DEBUG
- #define APP_DEBUG
- // Uncomment your board, or configure a custom board in Settings.h
- //#define USE_WROVER_BOARD
- //#define USE_TTGO_T7
- #include "BlynkEdgent.h"
- WidgetLED led1(V1);
- WidgetLED led2(V2);
- BlynkTimer timer;
- int realSwitch = 0;
- const int realSwitchPin = 26;
- bool scaleSwitchOn = false;
- bool blynkScaleSwitchOn = false;
- bool blynkScaleSwitchFirst = false;
- bool scaleOn = false;
- const int output1 = 4;
- const int scaleDisplayMOSFET = 16;
- const int scaleMOSFET = 17;
- const int output4 = 18;
- void setup()
- {
- Serial.begin(115200);
- delay(100);
- BlynkEdgent.begin();
- pinMode(realSwitchPin, INPUT);
- pinMode(scaleMOSFET, OUTPUT);
- pinMode(scaleDisplayMOSFET, OUTPUT);
- digitalWrite(output1, LOW);
- digitalWrite(scaleDisplayMOSFET, LOW);
- digitalWrite(scaleMOSFET, LOW);
- digitalWrite(output4, LOW);
- Blynk.syncAll();
- }
- void realScaleSwitch() {
- realSwitch = digitalRead(realSwitchPin);
- if (realSwitch == 1) {
- scaleSwitchOn = true;
- }
- else if (realSwitch == 0) {
- scaleSwitchOn = false;
- }
- }
- void switchState() {
- if ((blynkScaleSwitchOn) || (scaleSwitchOn)) {
- scaleOn = true;
- }
- if ((!scaleSwitchOn) && (!blynkScaleSwitchOn)) {
- scaleOn = false;
- }
- }
- void scaleOperation() {
- realScaleSwitch();
- switchState();
- if (scaleOn) {
- digitalWrite(scaleMOSFET, HIGH);
- digitalWrite(output4, HIGH);
- Blynk.virtualWrite(V1, HIGH);
- timer.setTimeout(45000, []()
- {
- digitalWrite(scaleDisplayMOSFET, HIGH);
- Blynk.virtualWrite(V1, LOW);
- Blynk.virtualWrite(V2, HIGH);
- });
- }
- else if (!scaleOn) {
- digitalWrite(scaleDisplayMOSFET, LOW);
- digitalWrite(scaleMOSFET, LOW);
- digitalWrite(output4, LOW);
- Blynk.virtualWrite(V1, LOW);
- Blynk.virtualWrite(V2, LOW);
- }
- }
- BLYNK_WRITE (V0)
- {
- if (param.asInt() == 0) {
- blynkScaleSwitchOn = false;
- }
- else if (param.asInt() == 1) {
- blynkScaleSwitchOn = true;
- }
- }
- void loop() {
- BlynkEdgent.run();
- scaleOperation();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement