Skip to content

Instantly share code, notes, and snippets.

@idriszmy
Created November 14, 2021 09:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save idriszmy/04a600599a424e96ca24cb553a311768 to your computer and use it in GitHub Desktop.
Save idriszmy/04a600599a424e96ca24cb553a311768 to your computer and use it in GitHub Desktop.
Log Event and Notification
/*
[blynk.io] Part 5 - Log Event and Notification
Board:
- Maker UNO
https://my.cytron.io/p-maker-uno-simplifying-arduino-for-education?tracking=idris
- Arduino Grove Sensor Kit for Beginner
https://my.cytron.io/p-arduino-grove-sensor-kit-for-beginner?tracking=idris
- Cytron ESP8266 WiFi Shield
https://my.cytron.io/p-cytron-esp8266-wifi-shield?tracking=idris
Library:
- Blynk V1.0.1
Blynk Documentation:
- https://docs.blynk.io/en/
Last Modified: 14 Nov 2021
*/
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
/* Fill-in your Template ID (only if using Blynk.Cloud) */
#define BLYNK_TEMPLATE_ID "YourTemplateID"
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
BlynkTimer timer;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
// or Software Serial on Uno, Nano...
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(8, 9); // RX, TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 9600
#define LED 6
#define LIGHT A3
ESP8266 wifi(&EspSerial);
long prevMillis = 0;
int interval = 1000;
bool eventTrigger = false;
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
digitalWrite(LED, pinValue);
}
// This function sends Arduino's up time every second to Virtual Pin (1).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void myTimerEvent()
{
// You can send any value at any time.
// Please don't send more that 10 values per second.
int light_adc = analogRead(LIGHT);
Serial.println("Light ADC: " + String(light_adc));
Blynk.virtualWrite(V1, light_adc);
if (light_adc < 100 &&
eventTrigger == false) {
eventTrigger = true;
Blynk.logEvent("LIGHT", "Light ADC is less than 100");
}
else if (light_adc > 300) {
eventTrigger = false;
}
}
void setup()
{
pinMode(LIGHT, INPUT);
pinMode(LED, OUTPUT);
// Debug console
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
}
void loop()
{
Blynk.run();
timer.run(); // Initiates BlynkTimer
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment