Descripción
La finalidad del proyecto es detectar el paso de coches y personas a la entrada de un huerto y avisar con una señal sonora dentro de la casa de este.
Por esto este proyecto está compuesto por 2 módulos:
- Módulo de detección de paso, ya sea de personas o de coches.
- Módulo de aviso de paso.
Los requerimientos son los siguientes:
- El módulo de detección de paso, al estar en el huerto, ha de tener una fuente de alimentación independiente, en este caso le hemos puesto una placa solar y una batería.
- El módulo de aviso ha de sonar cuando el módulo de detección le avise.
- El módulo de detección está a la entrada del huerto.
- El módulo de aviso está dentro de la casa.
|
Módulo de detección con placa solar |
Instrucciones
Componentes usados
Los componentes usados han sido, por módulo:
- Módulo de detección
- Módulo de aviso
Montaje del circuito
El esquema en Fritzing es el siguiente:
|
Módulo de detección |
En este esquema no se ha añadido la parte de conexión al Lipo Rider Pro, la batería y la placa solar, por no tener los diseños para el Fritzing.
|
Módulo de aviso |
Imágenes del sistema montado dentro del laboratorio:
|
Placa solar con Lipo Rider Pro y batería lipo conectados |
|
Módulo de detección montado sobre una breadboard con detector de ultrasonidos inicial |
|
Módulo de detección montado sobre una breadboard con detector de ultrasonidos final |
|
Parte superior de la PCB del módulo de detección sin componentes conectados |
|
Parte superior de la PCB del módulo de detección con componentes conectados |
|
Módulo de detección dentro de su caja estanca |
|
Módulo de aviso montado sobre una breadboard |
|
Parte superior de la PCB del módulo de aviso sin componentes conectados |
|
Parte superior de la PCB del módulo de aviso con componentes conectados |
|
Módulo de aviso dentro de su caja estanca |
Software
Las librerías usadas han sido:
El código del arduino es el siguiente:
#include <Ultrasonic.h>
const int TRIG_PIN = 12;
const int ECHO_PIN = 13;
Ultrasonic ultrasonic(TRIG_PIN, ECHO_PIN);
void setup()
{
Serial.begin(9600);
}
void loop()
{
float cmMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
Serial.print(int(cmMsec));
Serial.println("=");
delay(1000);
}
int C = 131;
int D = 147;
int E = 165;
int F = 175;
int G = 196;
int songNotes[] = {E, E, E, E, E, E, E, G, C, D, E, F, F, F, F, F, E, E, E, G, G, F, D, C};
int noteDurations[] = {4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1};
byte byteRead;
long longitud;
long longitudMaxima = 100;
String inString = "";
unsigned int pitch;
void setup()
{
Serial.begin(9600);
longitud = 0;
}
void loop()
{
while (Serial.available() > 0)
{
byteRead = Serial.read();
if (byteRead > 47 && byteRead < 58) {
longitud = (longitud * 10) + (byteRead - 48);
}
if (byteRead == 61)
{
Serial.println(longitud);
if (longitud <= longitudMaxima)
{
melodia();
}
longitud = 0;
}
}
}
void melodia()
{
for (int i = 0; i < 24; i ++)
{
int noteDuration = 1000 / noteDurations[i];
tone(8, songNotes[i], noteDuration);
int pauseBetweenNotes = noteDuration * 1.3;
delay(pauseBetweenNotes);
noTone(8);
}
}
Comentarios
Publicar un comentario