Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. General Discussion
  3. USB gateway for 433MHz

USB gateway for 433MHz

Scheduled Pinned Locked Moved General Discussion
3 Posts 3 Posters 1.9k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • fhenrycoF Offline
    fhenrycoF Offline
    fhenryco
    wrote on last edited by
    #1

    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

    YveauxY 1 Reply Last reply
    0
    • fhenrycoF fhenryco

      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

      YveauxY Offline
      YveauxY Offline
      Yveaux
      Mod
      wrote on last edited by
      #2

      @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.

      http://yveaux.blogspot.nl

      1 Reply Last reply
      0
      • janvier123J Offline
        janvier123J Offline
        janvier123
        wrote on last edited by
        #3

        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());
           } 
        }
        
        
        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        13

        Online

        11.7k

        Users

        11.2k

        Topics

        113.1k

        Posts


        Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • MySensors
        • OpenHardware.io
        • Categories
        • Recent
        • Tags
        • Popular