TUTORIAL SWITCH INALÁMBRICO

Paso # 1: Descripción

El switch inalámbrico está compuesto por un transmisor y un receptor. El trasmisor manda una frecuencia de 433MHz al momento de detectar un pulso externo en el pin de Data (ATAD). Cuando el receptor recibe la frecuencia de 433MHz, éste cambia el estado del pin DATA de 5V a de OV (Lógica inversa). Enseguida se puede introducir el voltaje captado hacia el Arduino y apagar o prender algún dispositivo de interés remotamente.

Paso # 2: Características

Receptor

  • Modelo: MX-05V
  • Voltaje de Operación: DC5V
  • Corriente Nominal: 4mA
  • Frecuencia Receptora: 315MHZ/433MHZ
  • Sensibilidad a la que recibe:-105DB
  • Tamaño: 30 * 14 * 7mm

Trasmisor

  • Modelo: MX-FS-03V
  • Distancia :20-200 metros (diferente voltaje, diferente resultados)
  • Voltaje Nominal :3.5-12V
  • Dimensiones: 19 * 19mm
  • Modo Operativo: AM
  • Velocidad de Transferencia: 4KB / S
  • Potencia de Transmisión: 10mW
  • Frecuencia de Transmisión: 433M
  • Antena Extra: 25cm de alambre
  • Asignación de Pines → derecha: (DATA; VCC; GND)

Paso #3: Aplicación

La misión de este tutorial es prender una lámpara de 110VAC remotamente.

Paso # 4: Componentes:

  • Arduino Uno
  • RF Transmisor y Receptor de 433MHz
  • Relevador 5V
  • 1 Resistencia de 1Kohm
  • Transistor
  • Cables Jumpers
  • Push Bottom
  • Pila de 5VDC(puede ser de 6V o de 9V)
  • 2 Mini Protoboards

Paso # 5: Hardware del Transmisor

VCC debe ser mínimo 5V, pero se puede alimentar con hasta 12V. Entre mayor voltaje se alimente mayor potencia de transmisión y por lo tanto funcionará a mayores distancias (hasta 200m al aire libre de acuerdo a hoja de datos).

 

Paso # 6: Hardware (Receptor y Actuador)

En el Receptor, agregar un capacitor cerámico de 0.22uF entre VCC y GND para atenuar el ruido.  También agregar una Antena de 30 cms en forma de espiral e insertarla en el receptor.

 

Paso # 7: Software (Código para prender un foco inalámbricamente)

int sensorPin = A2;    // select the input pin for the potentiometer
float sensorValue;
int confidence;
boolean prendido = false;
boolean seHizoDelay = false;

void setup() {
// declarar pin 7 como Salida:
pinMode(7, OUTPUT);
Serial.begin(9600);
}

void loop() {

// Leer los valores del sensor
sensorValue = analogRead(sensorPin);
// Convertir de valor a voltaje
sensorValue = sensorValue*5/1023;

if(sensorValue < 0.10){
confidence++;
} else {
confidence = 0;
}

if(confidence > 10){
prendido = !prendido;
seHizoDelay = false;
confidence = 0;
}

if(prendido){
digitalWrite(7, HIGH);
if(!seHizoDelay)
{
Serial.println("Se prendio!!!");
seHizoDelay = true;
delay(1000);
}
} else {
digitalWrite(7, LOW);
if(!seHizoDelay)
{
Serial.println("Se apago!!!");
seHizoDelay = true;
delay(1000);
}
}
delay(20);
}