USB gateway for 433MHz
-
Hello
i have ordered the 2.4 GHz RF transmitters and waiting for them but for the time being i only have those 433 MHz
http://www.ebay.com/itm/380717845396?rmvSB=true
and would like to try them with the USBgateway sketch on my nano arduino (mini pro sensor side) and domoticZ . How should i modify the sketch for those simple 433 MHz RF ?
Thanks in advance
-
@fhenryco sorry, but 433mhz senders & receivers are not supported by the mysensors network.
For these to work you would need low-level drivers etc and these are not part of mysensors.
Once you get the 2.4ghz modules, you can build a bridge using 433mhz to mysensors.
-
Take a look at this, works pretty good for me
// Enable debug prints to serial monitor #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 // Enable repeater functionality for this node //#define MY_REPEATER_FEATURE #include <SPI.h> #include <MySensors.h> #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); #define RELAY_1 1 // Arduino Digital I/O pin number for first relay (second on pin+1 etc) #define NUMBER_OF_RELAYS 18 // Total number of attached relays #define SLEEP_BETWEEN_ALL_ON 100 #define SLEEP_BETWEEN_ALL_OFF 100 void before() { for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) { // Then set relay pins in output mode //-----------pinMode(pin, OUTPUT); // Set relay to last known state (using eeprom storage) //-----------digitalWrite(pin, loadState(sensor)?RELAY_ON:RELAY_OFF); } } void setup() { // Transmitter is connected to Arduino Pin #10 mySwitch.enableTransmit(8); // Optional set pulse length. // mySwitch.setPulseLength(320); } void presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("RF 433Mhz", "1.0"); for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++) { // Register all sensors to gw (they will be created as child devices) present(sensor, S_BINARY); } } void loop() { } void receive(const MyMessage &message) { // We only expect one type of message from controller. But we better check anyway. if (message.type==V_STATUS) { // Switch on: // The first parameter represents the setting of the first rotary switch. // In this example it's switched to "1" or "A" or "I". // // The second parameter represents the setting of the second rotary switch. // In this example it's switched to "4" or "D" or "IV". // 1 = channel A // 2 = channel B // 3 = channel C // 4 = channel D switch (message.sensor-1+RELAY_1) { case 1: if(message.getBool() == 1){mySwitch.switchOn(1, 1);}else{mySwitch.switchOff(1, 1);} break; case 2: if(message.getBool() == 1){mySwitch.switchOn(1, 2);}else{mySwitch.switchOff(1, 2);} break; case 3: if(message.getBool() == 1){mySwitch.switchOn(1, 3);}else{mySwitch.switchOff(1, 3);} break; case 4: if(message.getBool() == 1){mySwitch.switchOn(1, 4);}else{mySwitch.switchOff(1, 4);} break; case 5: if(message.getBool() == 1){mySwitch.switchOn(2, 1);}else{mySwitch.switchOff(2, 1);} break; case 6: if(message.getBool() == 1){mySwitch.switchOn(2, 2);}else{mySwitch.switchOff(2, 2);} break; case 7: if(message.getBool() == 1){mySwitch.switchOn(2, 3);}else{mySwitch.switchOff(2, 3);} break; case 8: if(message.getBool() == 1){mySwitch.switchOn(2, 4);}else{mySwitch.switchOff(2, 4);} break; case 9: if(message.getBool() == 1){mySwitch.switchOn(3, 1);}else{mySwitch.switchOff(3, 1);} break; case 10: if(message.getBool() == 1){mySwitch.switchOn(3, 2);}else{mySwitch.switchOff(3, 2);} break; case 11: if(message.getBool() == 1){mySwitch.switchOn(3, 3);}else{mySwitch.switchOff(3, 3);} break; case 12: if(message.getBool() == 1){mySwitch.switchOn(3, 4);}else{mySwitch.switchOff(3, 4);} break; case 13: if(message.getBool() == 1){mySwitch.switchOn(4, 1);}else{mySwitch.switchOff(4, 1);} break; case 14: if(message.getBool() == 1){mySwitch.switchOn(4, 2);}else{mySwitch.switchOff(4, 2);} break; case 15: if(message.getBool() == 1){mySwitch.switchOn(4, 3);}else{mySwitch.switchOff(4, 3);} break; case 16: if(message.getBool() == 1){mySwitch.switchOn(4, 4);}else{mySwitch.switchOff(4, 4);} break; // ALL ON case 17: mySwitch.switchOff(1, 1); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(1, 2); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(1, 3); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(1, 4); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(2, 1); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(2, 2); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(2, 3); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(2, 4); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(3, 1); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(3, 2); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(3, 3); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(3, 4); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(4, 1); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(4, 2); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(4, 3); delay(SLEEP_BETWEEN_ALL_OFF); mySwitch.switchOff(4, 4); break; // ALL OFF case 18: mySwitch.switchOn(1, 1); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(1, 2); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(1, 3); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(1, 4); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(2, 1); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(2, 2); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(2, 3); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(2, 4); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(3, 1); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(3, 2); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(3, 3); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(3, 4); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(4, 1); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(4, 2); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(4, 3); delay(SLEEP_BETWEEN_ALL_ON); mySwitch.switchOn(4, 4); break; default: Serial.println("Unknown Status"); break; } saveState(message.sensor, message.getBool()); // Write some debug info Serial.print("Incoming change for binary switch: "); Serial.print(message.sensor); Serial.print(", New status: "); Serial.println(message.getBool()); } }