Advertisement
Guest User

433.ino

a guest
Jul 18th, 2014
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement