View difference between Paste ID: Uqi38B3J and 3Y02vYF4
SHOW: | | - or go back to the newest paste.
1
#include <Relay.h>
2
#include <SPI.h>
3
#include <EEPROM.h>  
4
#include <RF24.h>
5
6
#include <RemoteReceiver.h>
7
#include <RemoteTransmitter.h>
8
9
#define TRANSMITTER_PIN 8
10
#define RECEIVER_INTERRUPT 1
11
#define RF433_CHILD_ID 0
12
Sensor gw;
13
14
volatile bool receivedNew = false;
15
volatile unsigned long incomingRfCode;
16
volatile unsigned int incomingRfPeriod;
17
18
void setup()  
19
{  
20
  gw.begin();
21
  gw.sendSketchInfo("RF433", "1.0");
22
  gw.sendSensorPresentation(RF433_CHILD_ID, S_IR);
23
   delay(200);
24
  RemoteReceiver::init(RECEIVER_INTERRUPT, 3, newRf);
25
}
26
27
void loop() 
28
{
29
  if (gw.messageAvailable()) {
30
    message_s message = gw.getMessage(); 
31
    sendRfMessage(message);
32
  }
33
  if(receivedNew) {
34
    getRfMessage(incomingRfCode, incomingRfPeriod);
35
    receivedNew = false;
36
  }
37
}
38
39
void sendRfMessage(message_s message) {
40
  if (message.header.messageType==M_SET_VARIABLE &&
41
      message.header.type==V_IR_SEND) {
42
43
     char sendingRfCode[7]; 
44
     char sendingRfPeriod[4];
45
     strncpy(sendingRfCode, message.data, 6);
46
     strncpy(sendingRfPeriod, message.data+6, 3);
47
     sendingRfCode[6] = 0;
48
     sendingRfPeriod[3] = 0;
49
     Serial.println(atol(sendingRfCode));
50
     Serial.println(atol(sendingRfPeriod));
51
     RemoteReceiver::disable();
52
     interrupts();
53
     delay(200);
54
     RemoteTransmitter::sendCode(TRANSMITTER_PIN, atol(sendingRfCode), atol(sendingRfPeriod), 3);
55
     RemoteReceiver::enable();
56
   }
57
}
58
59
void newRf(unsigned long _incomingRfCode, unsigned int _incomingRfPeriod){
60
     incomingRfCode = _incomingRfCode;
61
     incomingRfPeriod = _incomingRfPeriod;
62
     receivedNew=true;
63
}
64
65
void getRfMessage(unsigned long incomingRfCode, unsigned int incomingRfPeriod){
66
  char gettingRfMessage[10];
67
  sprintf(gettingRfMessage, "%lu%u", incomingRfCode, incomingRfPeriod);
68
  Serial.println(incomingRfCode);
69
  Serial.println(incomingRfPeriod);
70
  Serial.println(gettingRfMessage);
71
  gw.sendVariable(RF433_CHILD_ID, V_IR_RECEIVE, gettingRfMessage);
72
}