Skocz do zawartości

Problem z ustawieniem buzzera jako alarmu. Blynk+esp8266+buzzer


lukasz1982

Pomocna odpowiedź

Witam

Zrobiłem prosty sterownik pieca. A dokładniej bardziej odczyt temperatury i sterowanie otwieraniem klapy przez komórkę oraz buzzer który ustawiłem żeby brzęczał po przekroczeniu danej temperatury i wyłączał się jak spadnie.Wszystko udało mi się jakoś ogarnąć i działa. Ale chciałem aby buzzer brzęczał jak alarm dźwiękiem przerywanym, i tu zaczynają się schody bo nie wiem jak to ogarnąć.

Sprzęt to: Esp8266 NodeMcu v3, Ds18b20, Servo SG 90-micro, buzzer

Szkic programu:

W Blynk załączenie buzzera następuje po przekroczeniu ustawionej temperatury w Eventorze i załączenie pinu na którym jest buzzer. Wtedy jest sygnał ciągły który chciałem zmienić na sygnał alarmu.

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

  Rotate a servo using a slider!

  App project setup:
    Slider widget (0...180) on V3
 *************************************************************/

// 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           "TMPLxxxxxx"
//#define BLYNK_DEVICE_NAME           "Device"
//#define BLYNK_AUTH_TOKEN            "GlpFez_uaA6xbo5AEEYRJXcS7tz5eklY"


// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Servo.h>

OneWire oneWire(D2); // digital D2 pin
DallasTemperature sensors(&oneWire);
BlynkTimer timer;
char auth[] = "xxxxxxxxxxxxxxxxxx";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "xxxxxxxxxx";
char pass[] = "exxxxxxxxx";

Servo servo;
float  temp = 0;

BLYNK_WRITE(V0)
{
  servo.write(param.asInt());
}

BLYNK_WRITE(V1)
{
servo.write(13);

}
BLYNK_WRITE(V2)

{
servo.write(59);

}
BLYNK_WRITE(V3)

{
servo.write(130);

}

void setup()
{
  // Debug console
  Serial.begin(115200);
  sensors.begin(); 
  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);


  
  timer.setInterval(1000L, sendTemps);
  servo.attach(15);
  servo.write(0);
}

void sendTemps()
{
 sensors.requestTemperatures();
 temp = sensors.getTempCByIndex(0);
 Serial.println(String("Temperatura=")+temp+ String(" C"));
 Blynk.virtualWrite(V4, temp);
}
void loop()
{
  Blynk.run();
  timer.run();

Oto  szkic sygnału alarmu który chciałbym mieć. Po wgraniu samego kodu brzęczy tak jak chciałem.

 

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  tone(14, 4300); //Wygeneruj sygnał o częstotliwości 4300Hz na pinie A5  
  delay(150);  
  tone(14, 3500); //Wygeneruj sygnał o częstotliwości 3500Hz na pinie A5  
  delay(150);
}

Pomoże mi ktoś to jakoś ogarnąć?

Zapomniałem napisać że jestem laikiem w tych sprawach. Ale jakoś udało mi się to  ogarnąć, więc szkic może być trochę chaotyczny.

 

Za pomoc z góry  dziękuje

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.