Conectarea ESP32 si senzorul de vibratii KY02
Conectarea ESP32 si senzorul de vibratii KY02

KY-002 Vibration Switch Module – Ghid tehnic complet și conectare la ESP32

Modulul KY-002 (cunoscut în mod obișnuit ca KY-002 Vibration Switch Module) este un senzor simplu pentru detectarea vibrațiilor, loviturilor și șocurilor mecanice. Față de senzorii analogici mai avansați, acest modul oferă o ieșire digitală: practic, microcontrolerul vede doar dacă a fost detectată sau nu o vibrație.

Acest lucru îl face foarte util în proiecte cu ESP32, Arduino, sisteme de alarmă, detectoare de lovituri, monitorizarea mișcării unei carcase sau pentru proiecte educaționale în care vrei să înțelegi rapid cum funcționează un senzor mecanic simplu.


1. Ce este modulul KY-002?

KY-002 este un modul de detectare a vibrațiilor bazat pe un contact mecanic intern. În interiorul senzorului există un arc conductor care, atunci când modulul este mișcat, lovit sau supus vibrațiilor, atinge carcasa conductoare și închide temporar circuitul.

Rezultatul este apariția unui impuls digital scurt pe pinul de semnal. Microcontrolerul poate citi acest impuls și poate decide, de exemplu, să aprindă un LED, să trimită o alertă, să înregistreze un eveniment
sau să declanșeze o alarmă.

Pe scurt

  • detectează șocuri și vibrații;
  • are ieșire digitală, nu analogică;
  • este foarte simplu și ieftin;
  • este potrivit pentru ESP32 deoarece poate funcționa la 3.3V;
  • nu măsoară intensitatea exactă a vibrației, doar apariția unui eveniment.

2. Cum funcționează

Principiul de funcționare este unul electromecanic. În starea de repaus, contactul intern este deschis sau se află într-o stare stabilă, iar la apariția unei vibrații arcul intern se deplasează și face contact pentru o perioadă foarte scurtă.

Din punct de vedere software, trebuie să reții un lucru important: semnalul generat este de obicei foarte scurt și poate oscila.
Asta înseamnă că la o singură lovitură pot apărea mai multe tranziții rapide HIGH/LOW.
Din acest motiv, în practică este recomandat să folosești:

  • o citire rapidă în buclă sau într-o întrerupere;
  • o mică întârziere software pentru filtrare;
  • sau o logică de tip „ignore events for X ms after detection”.
Detectie vibratie KY02
Detectie vibratie KY02

Important

În funcție de producător, lot sau schemă internă, unele variante de modul pot apărea ca active HIGH, iar altele pot părea active LOW. De aceea, dacă observi că logica este inversă față de exemplul de mai jos, trebuie doar să inversezi condiția din cod.


3. Specificații tehnice uzuale

Parametru Valoare tipică
Tensiune de alimentare 3.3V – 5V
Tip semnal ieșire Digital
Număr pini 3
Detecție Vibrații / șoc / lovire
Dimensiuni uzuale aprox. 18.5 x 15 mm

Pentru ESP32, recomandarea sigură este să alimentezi modulul la 3.3V, astfel încât nivelul logic al ieșirii să fie compatibil cu GPIO-urile ESP32.


4. Pini și identificare

Modulul are în general 3 pini:

  • S – semnal digital către microcontroler;
  • VCC sau pinul din mijloc – alimentare;
  • GND sau „-” – masă.

Descriere pini

Pin modul Rol Conectare la ESP32
S Ieșire digitală La un GPIO de intrare, de exemplu GPIO18
VCC Alimentare 3V3
GND Masă GND

5. Cum se conectează la un ESP32

Conectarea este foarte simplă. Mai jos este o schemă logică minimă:

KY-002 / KKY-002        ESP32
------------------------------
S      --------------> GPIO14
VCC    --------------> 3V3
GND    --------------> GND
Conectarea ESP32 si senzorul de vibratii KY02
Conectarea ESP32 si senzorul de vibratii KY02

Recomandări practice

  • Folosește 3.3V pentru alimentare atunci când lucrezi cu ESP32.
  • Alege un GPIO configurat ca input.
  • Evită pini speciali de boot dacă nu este necesar.
  • Dacă apar citiri instabile, poți adăuga filtrare software.

6. Exemplu complet de program pentru ESP32

Exemplul de mai jos citește senzorul și afișează în Serial Monitor când este detectată o vibrație.
În plus, aprinde LED-ul onboard sau un LED extern pentru scurt timp.

#define VIBRATION_PIN 14
#define LED_PIN 2

unsigned long lastTriggerTime = 0;
const unsigned long lockoutMs = 150;

void setup() {
  Serial.begin(115200);

  pinMode(VIBRATION_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);

  digitalWrite(LED_PIN, LOW);

  Serial.println("Test KKY-002 / KY-002 cu ESP32");
  Serial.println("Atinge sau loveste usor modulul pentru a detecta vibratii.");
}

void loop() {
  int sensorState = digitalRead(VIBRATION_PIN);

  // Varianta uzuala: impuls HIGH la vibratie
  if (sensorState == HIGH) {
    unsigned long now = millis();

    if (now - lastTriggerTime > lockoutMs) {
      lastTriggerTime = now;

      Serial.println("Vibratie detectata!");
      digitalWrite(LED_PIN, HIGH);
      delay(80);
      digitalWrite(LED_PIN, LOW);
    }
  }

  delay(5);
}

Dacă logica este inversă

Unele clone sau unele moduri de polarizare pot produce LOW la detecție.
Dacă vezi că senzorul nu reacționează corect, modifică această condiție:

if (sensorState == LOW) {
  // vibratie detectata
}

7. Explicația codului

  • VIBRATION_PIN este pinul pe care citești ieșirea digitală a modulului.
  • LED_PIN este folosit pentru feedback vizual.
  • lockoutMs previne numărarea multiplă a aceleiași lovituri.
  • digitalRead() citește starea curentă a senzorului.
  • La detecție, mesajul este afișat în portul serial și LED-ul este aprins scurt.

Această abordare este suficientă pentru majoritatea testelor și proiectelor demonstrative.
Pentru aplicații mai serioase, poți salva evenimentele într-un log, poți trimite date prin Wi-Fi
sau poți folosi întreruperi hardware.


8. Variante de îmbunătățire

a) Folosirea întreruperilor

Dacă vrei să detectezi impulsuri foarte scurte, poți conecta senzorul la un GPIO capabil de interrupt
și să folosești attachInterrupt(). Astfel, ESP32 reacționează imediat la schimbarea semnalului.

b) Filtrare software

Deoarece senzorul este mecanic, poate produce semnale multiple pentru o singură lovitură.
O perioadă de blocare de 100–300 ms este de obicei suficientă pentru a evita declanșările multiple.

c) Trimitere notificare prin Wi-Fi

Un avantaj major al ESP32 este conectivitatea wireless. Poți folosi acest senzor pentru:

  • notificări MQTT;
  • alerte în Home Assistant;
  • mesaje prin Telegram;
  • logare evenimente într-o interfață web.

9. Limitări ale modulului

Deși este foarte util, KY-002 are și limitări clare:

  • nu oferă o măsurare analogică a amplitudinii vibrației;
  • nu poate spune cât de puternică a fost vibrația;
  • este sensibil la montaj și la orientarea fizică;
  • poate produce impulsuri multiple la o singură lovitură;
  • nu este ideal pentru analiză fină de vibrații industriale.

Pentru analiză de vibrații mai precisă, ar trebui folosit un accelerometru, de exemplu un modul bazat pe MPU6050, ADXL345 sau un senzor piezoelectric dedicat.


10. Aplicații practice

  • alarmă la lovirea unei cutii sau a unei uși;
  • detecție de atingere / bătaie într-un proiect interactiv;
  • sisteme anti-tamper pentru carcase electronice;
  • monitorizarea vibrațiilor brute într-un prototip;
  • proiecte educaționale pentru începători cu ESP32.

11. Probleme frecvente

Nu detectează nimic

  • verifică alimentarea la 3.3V;
  • verifică masa comună între modul și ESP32;
  • verifică pinul GPIO din cod;
  • încearcă inversarea logicii HIGH/LOW.

Declanșează prea des

  • mărește perioada de filtrare software;
  • fixează mecanic mai bine modulul;
  • evită firele foarte lungi sau slab conectate.

Semnal instabil

  • testează alt GPIO;
  • folosește o citire mai rapidă;
  • aplică debounce software.

12. Concluzie

KKY-002 / KY-002 Vibration Switch Module este unul dintre cei mai simpli senzori
pe care îi poți conecta la un ESP32. Nu este un senzor de laborator și nici nu oferă date analogice detaliate,
dar este excelent pentru detectarea rapidă a șocurilor și vibrațiilor în proiecte DIY, educaționale
și prototipuri de automatizare.

Avantajul principal este simplitatea: doar 3 fire, cod minim și integrare rapidă.
Dacă ai nevoie de un detector elementar de mișcare mecanică, acesta este un modul foarte bun pentru început.


13. Rezumat rapid

  • KY-002 este un senzor digital de vibrații / șoc.
  • Poate fi alimentat la 3.3V, deci este potrivit pentru ESP32.
  • Se conectează simplu: S – GPIO, VCC – 3V3, GND – GND.
  • La vibrație produce un impuls digital scurt.
  • Este recomandată filtrarea software pentru a evita impulsurile multiple.

Bonus

Susține acest blog

Cumpărând de pe https://mag.automatic-house.ro/ro/ susții blogul meu, iar 10% din vânzări vor fi direcționate către Fundația Dăruiește Viață. Îți mulțumesc!

Mulțumesc pentru atenție! 

Pentru întrebări și/sau consultanță tehnică vă stau la dispoziție pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro.
O zi plăcută tuturor !

Back to top of page

De Florin Simedru

Autor

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *


Perioada de verificare reCAPTCHA a expirat. Vă rugăm să reîncărcați pagina.