Go Down

Topic: Sensor rf y pir inalambrico (Read 668 times) previous topic - next topic

FresyMetal

Feb 15, 2014, 06:44 pm Last Edit: Feb 15, 2014, 06:51 pm by FresyMetal Reason: 1
Hola que tal? estoy intentando hacer un sesor inalámbrico de detección de movimientos, la idea es que con un attiny 85 un pir y una pila de botón por ejemplo hacer sensores inalámbricos muy baratos y funcionales.

funcionaria del siguiente modo:
el attiny 85 comprueba el pir, si no hay movimiento sigue igual(comprobando)
si hay movimiento activa una salida que alimenta el emisor rf y este a través de otra salida del attiny manda un 0 o un 1 (por no mandar códigos largos).

el arduino receptor le llega la señal y lo podemos monitorizar.

bien pues me puse manos al lio y con trozos de código monté lo siguiente:

#include <RemoteReceiver.h>
#include <RemoteSwitch.h>
#include <RCSwitch.h>

#define OUTLET_A_ON 1
#define PERIOD 150;
#define RF_TX_PIN 1
RCSwitch mySwitch = RCSwitch();

int rfPin = 1; // pin RF
int inputPin = 2; // pin PIR sensor
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status

void setup() {
mySwitch.enableTransmit(10);
pinMode(rfPin, OUTPUT); // declare RF
pinMode(inputPin, INPUT); // declare sensor as input


}

void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(rfPin, HIGH); // turn RF ON
transmit(OUTLET_A_ON);
if (pirState == LOW)
{
// we have just turned on
transmit(OUTLET_A_ON);
//Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
}
else
{
digitalWrite(rfPin, LOW); // turn RF OFF
if (pirState == HIGH){
// we have just turned of
transmit(OUTLET_A_ON);
// We only want to print on the output change, not state
pirState = LOW;
}
}
}
void transmit(unsigned long rcode){

unsigned long code = rcode;

unsigned long period = PERIOD;

code |= (unsigned long)period << 23;

code |= 3L << 20;

RemoteSwitch::sendTelegram(code, RF_TX_PIN); // RF transmitter pin

}


bien el problema es que no consigo que llegue la señal o bien el código falla.
si lo pruebo con un led parece que funciona bien
Me podeis ayudar con el codigo? a ver si conseguimos que funcione :)

Go Up