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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.