/*************************************************************
This sketch shows how to write values to Virtual Pins
NOTE:
BlynkTimer provides SimpleTimer functionality:
http://playground.arduino.cc/Code/SimpleTimer
App dashboard setup:
Value Display widget attached to Virtual Pin V5
*************************************************************/
/* Fill-in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID "TMPL6kuoXbpy1"
#define BLYNK_TEMPLATE_NAME "kecepatan angin"
#define BLYNK_AUTH_TOKEN "VHrF7IGMfzw05UtU_EsRWCftn361yy-0"
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
// Batas kecepatan angin untuk membunyikan buzzer (dalam km/h)
const int BATAS_KECEPATAN = 45;
// This function sends Arduino's up time every second to Virtual Pin (5).
// 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()
{
// Membaca nilai dari pin analog (misalnya sensor kecepatan angin)
int sensorValue = analogRead(34);
// Ubah skala dari 0-4095 ke 0-200
int Kecepatan_kmh = map(sensorValue, 0, 4095, 0, 200);
double volt = Kecepatan_kmh * (3.3 / 200);
Serial.print("nilai kmh: ");
Serial.print(Kecepatan_kmh);
Serial.print(" Value volt: ");
Serial.println(volt);
Blynk.virtualWrite(V0, Kecepatan_kmh);
Blynk.virtualWrite(V1, volt);
// Membunyikan buzzer jika kecepatan melebihi batas
if (Kecepatan_kmh >= BATAS_KECEPATAN) {
tone(32, 1000); // Mengirimkan gelombang suara 1kHz ke buzzer
delay(500); // Menunggu selama 500 milidetik
noTone(32); // Menghentikan buzzer
}
}
void setup()
{
// Debug console
Serial.begin(115200);
pinMode(34, INPUT);
pinMode(35, INPUT);
pinMode(32, OUTPUT); // Pastikan pin untuk buzzer diset sebagai OUTPUT
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// You can also specify server:
//Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
}
void loop()
{
Blynk.run();
timer.run(); // Initiates BlynkTimer
}