Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Relay.h>
- #include <SPI.h>
- #include <EEPROM.h>
- #include <RF24.h>
- #include <RemoteReceiver.h>
- #include <RemoteTransmitter.h>
- #define TRANSMITTER_PIN 8
- #define RECEIVER_INTERRUPT 1
- #define RF433_CHILD_ID 0
- Sensor gw;
- volatile bool receivedNew = false;
- volatile unsigned long incomingRfCode;
- volatile unsigned int incomingRfPeriod;
- void setup()
- {
- gw.begin();
- gw.sendSketchInfo("RF433", "1.0");
- gw.sendSensorPresentation(RF433_CHILD_ID, S_IR);
- delay(200);
- RemoteReceiver::init(RECEIVER_INTERRUPT, 3, newRf);
- }
- void loop()
- {
- if (gw.messageAvailable()) {
- message_s message = gw.getMessage();
- sendRfMessage(message);
- }
- if(receivedNew) {
- getRfMessage(incomingRfCode, incomingRfPeriod);
- receivedNew = false;
- }
- }
- void sendRfMessage(message_s message) {
- if (message.header.messageType==M_SET_VARIABLE &&
- message.header.type==V_IR_SEND) {
- char sendingRfCode[7];
- char sendingRfPeriod[4];
- strncpy(sendingRfCode, message.data, 6);
- strncpy(sendingRfPeriod, message.data+6, 3);
- sendingRfCode[6] = 0;
- sendingRfPeriod[3] = 0;
- Serial.println(atol(sendingRfCode));
- Serial.println(atol(sendingRfPeriod));
- RemoteReceiver::disable();
- interrupts();
- delay(200);
- RemoteTransmitter::sendCode(TRANSMITTER_PIN, atol(sendingRfCode), atol(sendingRfPeriod), 3);
- RemoteReceiver::enable();
- }
- }
- void newRf(unsigned long _incomingRfCode, unsigned int _incomingRfPeriod){
- incomingRfCode = _incomingRfCode;
- incomingRfPeriod = _incomingRfPeriod;
- receivedNew=true;
- }
- void getRfMessage(unsigned long incomingRfCode, unsigned int incomingRfPeriod){
- char gettingRfMessage[10];
- sprintf(gettingRfMessage, "%lu%u", incomingRfCode, incomingRfPeriod);
- Serial.println(incomingRfCode);
- Serial.println(incomingRfPeriod);
- Serial.println(gettingRfMessage);
- gw.sendVariable(RF433_CHILD_ID, V_IR_RECEIVE, gettingRfMessage);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement