Tutorial – Usar el Sensor KY-031 y Arduino + Programación

Tutorial – Usar el Sensor KY-031 y Arduino + Programación

Antes de comenzar a utilizar nuestro sensor, primero debemos definir cual sera el objetivo final de este, la siguiente programación esta basada en la obtención de las repeticiones de Impacto, las cuales nombraremos como (“TOC, TOC”), por la variable podemos percibir casi de inmediato que el sensor sera colocado en una puerta, cuando una persona la golpee el sensor lo detectara y mandada dicha información al programa de Arduino y podremos ver reflejado a través de su Monitor de Serie.

Esto es un ejemplo, si se quisiera seguir aumentado el proyecto se podría ponerle una contraseña al Arduino, de manera que la persona deba tocar cierta cantidad de veces y con una repetición exacta para que una cerradura magnética abra su seguro y se abra la puerta, o que la señal sea enviada al Arduino, después sea recibida por un modulo BT que a su vez la envié a un Dispositivo móvil como un Smartphone o un simple celular que cuenta con BT, de esta manera nuestro dispositivo móvil podría enviarnos una alerta cuando alguien toque la puerta.

La imaginación en el limite.

Programación para usar el Sensor KY-031 y Arduino

</pre>
//Henry's Bench
//KY-031 Knock Sensor Tutorial

int knockPin = 10; // Use Pin 10 as our Input
int knockVal = HIGH; // This is where we record our shock measurement
boolean bAlarm = false;

unsigned long lastKnockTime; // Record the time that we measured a shock

int knockAlarmTime = 500; // Number of milli seconds to keep the knock alarm high

void setup ()
{
Serial.begin(9600);
pinMode (knockPin, INPUT) ; // input from the KY-031
}
void loop ()
{
knockVal = digitalRead (knockPin) ; // read KY-031 Value

if (knockVal == LOW) // If we see a knock
{

lastKnockTime = millis(); // record the time of the shock
// The following is so you don't scroll on the output screen
if (!bAlarm){
Serial.println("KNOCK, KNOCK");
bAlarm = true;
}
}
else
{
if( (millis()-lastKnockTime) > knockAlarmTime && bAlarm){
Serial.println("no knocks");
bAlarm = false;
}
}
}
<pre>

Acabas de añadir este producto a su carrito: