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. Troubleshooting
  3. Can't control actuator

Can't control actuator

Scheduled Pinned Locked Moved Troubleshooting
16 Posts 2 Posters 7.2k Views 2 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.
  • N Offline
    N Offline
    nono056
    wrote on last edited by
    #1

    Hi Every body!
    I have a new problem.... Sorry :-()

    I have my arduino nano as serial gateway.
    I already have a mini as light actuator (without relay but with a led to see if it works)

    My code for the mini :

    #include <Relay.h>
    #include <SPI.h>
    #include <EEPROM.h>
    #include <RF24.h>

    #define RELAY_1 3 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
    #define NUMBER_OF_RELAYS 1
    #define RELAY_ON 0
    #define RELAY_OFF 1

    Sensor gw;

    void setup()
    {
    gw.begin(42);

    // Send the sketch version information to the gateway and Controller
    gw.sendSketchInfo("Relay", "1.0");

    // Register all sensors to gw (they will be created as child devices)
    for (int i=0; i<NUMBER_OF_RELAYS;i++) {
    gw.sendSensorPresentation(1, S_LIGHT);
    }
    // Fetch relay status
    for (int i=0; i<NUMBER_OF_RELAYS;i++) {
    // Make sure relays are off when starting up
    digitalWrite(RELAY_1+i, RELAY_OFF);
    // Then set relay pins in output mode
    pinMode(RELAY_1+i, OUTPUT);

    // Request/wait for relay status
    gw.getStatus(RELAY_1+i, V_LIGHT);
    setRelayStatus(gw.getMessage()); // Wait here until status message arrive from gw
    

    }

    }

    /*

    • Example on how to asynchronously check for new messages from gw
      */
      void loop()
      {
      if (gw.messageAvailable()) {
      message_s message = gw.getMessage();
      setRelayStatus(message);
      }
      }

    void setRelayStatus(message_s message) {
    if (message.header.messageType==M_SET_VARIABLE &&
    message.header.type==V_LIGHT) {
    int incomingRelayStatus = atoi(message.data);
    // Change relay state
    digitalWrite(message.header.childId, incomingRelayStatus==1?RELAY_ON:RELAY_OFF);
    // Write some debug info
    Serial.print("Incoming change for relay on pin:");
    Serial.print(message.header.childId);
    Serial.print(", New status: ");
    Serial.println(incomingRelayStatus);
    }
    }

    When i open the serial monitor in arduino (with the port of my nano of course) and i type :
    42;3;1;2;0 or 42;3;1;2;1 nothing happens
    Is it possible to command led at distance with the gateway?
    I do a mistake?

    In the serial monitor, i have :
    0;0;4;11;Arduino startup complete.
    42;3;2;2;
    42;3;2;2;

    42;3;2;2; is a presentation messsage isn't it?
    Why does it present every 5 seconds? can i change this time?
    Thank you for your help

    1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by
      #2

      @nono056 said:

      42;3;2;2; is a presentation messsage isn't it?

      No, your actuator requests relay status from controller at startup.

      node(42); child id(3) , request status (2), V_LIGHT (2)

      If you don't have any controller, remove the following lines:

      gw.getStatus(RELAY_1+i, V_LIGHT);
      setRelayStatus(gw.getMessage());
      
      1 Reply Last reply
      0
      • N Offline
        N Offline
        nono056
        wrote on last edited by
        #3

        OK thanks for this precision!
        How i ca control it?
        Can i send 42;3;1;2;0 or 42;3;1;2;1 via arduino IDE serial monitor?
        It doesn't work for me...

        hekH 1 Reply Last reply
        0
        • N nono056

          OK thanks for this precision!
          How i ca control it?
          Can i send 42;3;1;2;0 or 42;3;1;2;1 via arduino IDE serial monitor?
          It doesn't work for me...

          hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by
          #4

          @nono056

          No,

          You have to send commands over the air to you actuator.

          Build and use the serial gateway for issuing commands like that.

          N 1 Reply Last reply
          0
          • hekH hek

            @nono056

            No,

            You have to send commands over the air to you actuator.

            Build and use the serial gateway for issuing commands like that.

            N Offline
            N Offline
            nono056
            wrote on last edited by
            #5

            @hek
            I have tested via the serial gateway and nothing happened.
            Can I do that via serial monitor of arduino connected on Serial Gateway?

            1 Reply Last reply
            0
            • hekH Offline
              hekH Offline
              hek
              Admin
              wrote on last edited by
              #6

              @nono056 said:

              Can I do that via serial monitor of arduino connected on Serial Gateway?

              yes. you can control it with a serial gateway connected to your computer.

              Is your radio communication really working? Did you enable debug prints?

              1 Reply Last reply
              0
              • N Offline
                N Offline
                nono056
                wrote on last edited by
                #7

                @nono056 said:

                OK for the serial Gateway.
                My radios communicate really. I test it with a ds18b20 and i have my temperature (thanks for yesterday!!!)
                I've just activate the debug and it says :
                0;0;4;11;Arduino startup complete.
                0;0;4;11;Message available on pipe 1
                0;0;4;11;Sent ack msg to 42
                0;0;4;11;Rx: fr=42,to=0,la=42,ci=255,mt=0,t=17,cr=166(ok): 1.3b3 (18
                0;0;4;11;Message addressed for this node.
                42;255;0;17;1.3b3 (18848a2)
                0;0;4;11;Message available on pipe 1
                0;0;4;11;Sent ack msg to 42
                0;0;4;11;Rx: fr=42,to=0,la=42,ci=255,mt=4,t=7,cr=234(ok): 0
                42;255;4;7;0
                0;0;4;11;Message available on pipe 1
                0;0;4;11;Sent ack msg to 42
                0;0;4;11;Rx: fr=42,to=0,la=42,ci=255,mt=4,t=14,cr=83(ok): Relay
                42;255;4;14;Relay
                0;0;4;11;Message available on pipe 1
                0;0;4;11;Sent ack msg to 42
                0;0;4;11;Rx: fr=42,to=0,la=42,ci=255,mt=4,t=15,cr=97(ok): 1.0
                42;255;4;15;1.0
                0;0;4;11;Message available on pipe 1
                0;0;4;11;Sent ack msg to 42
                0;0;4;11;Rx: fr=42,to=0,la=42,ci=1,mt=0,t=3,cr=37(ok): 1.3b3 (18848a
                0;0;4;11;Message addressed for this node.
                42;1;0;3;1.3b3 (18848a2)

                I don't see anything when i send this : 42;3;1;2;0
                I think my numbers are good
                I don't understand why it doesn't work :-(

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  nono056
                  wrote on last edited by
                  #8

                  I've tested with an another computer near the first (1 meter)
                  the only things i see in this serial monitor (the relay or led node) i have this :

                  Started sensor.
                  Relay=0, distance=1
                  Relaying message back to gateway.
                  Tx: fr=42,to=0,la=42,ne=0,ci=255,mt=0,ty=17,cr=166: 1.3b3 (18848a2)
                  Ack: received OK
                  Relaying message back to gateway.
                  Tx: fr=42,to=0,la=42,ne=0,ci=255,mt=4,ty=7,cr=234: 0
                  Ack: received OK
                  Relaying message back to gateway.
                  Tx: fr=42,to=0,la=42,ne=0,ci=255,mt=4,ty=14,cr=83: Relay
                  Ack: received OK
                  Relaying message back to gateway.
                  Tx: fr=42,to=0,la=42,ne=0,ci=255,mt=4,ty=15,cr=97: 1.0
                  Ack: received OK
                  Relaying message back to gateway.
                  Tx: fr=42,to=0,la=42,ne=0,ci=1,mt=0,ty=3,cr=37: 1.3b3 (18848a2)
                  Ack: received OK

                  nothing when the gateway send this : 42;3;1;2;0
                  I have inverted the two nrf24l01 and it is the same
                  Any idea?

                  1 Reply Last reply
                  0
                  • N Offline
                    N Offline
                    nono056
                    wrote on last edited by
                    #9

                    Hello!
                    I have inverted the 2 arduinos, now nano is the relay actuator node and the mini is the serial gateway.
                    Nothing happens else...
                    Someone can help me?
                    thanks

                    1 Reply Last reply
                    0
                    • hekH Offline
                      hekH Offline
                      hek
                      Admin
                      wrote on last edited by
                      #10

                      Looks like your communication is working (in one direction at least).
                      What is your setting in serial console (Newline?) when you send commands?
                      Is the gateway really sending anything? After entering your command in the serial console you should see a Tx: .......

                      1 Reply Last reply
                      0
                      • N Offline
                        N Offline
                        nono056
                        wrote on last edited by
                        #11

                        @nono056 said:
                        I use arduino ide for serial communication.
                        I write 42;3;1;2;0 in the serial send line and clic on Send.
                        Nothiing appears.
                        For debugging, i had Serial.println(inputString); at the end of serialEvent funtion for testing what i was sending
                        and i have this appearing :
                        0;0;4;11;Arduino startup complete.
                        4
                        42
                        42;3
                        42;3;
                        42;3;1;
                        42;3;1;2;
                        42;3;1;2;0

                        No tx line...

                        1 Reply Last reply
                        0
                        • N Offline
                          N Offline
                          nono056
                          wrote on last edited by
                          #12

                          @nono056 said:

                          42;3;1;2;0

                          I have found where is the error!
                          In the SerialGateway sketch, if we use the serial monitor with arduino IDE (with my PC), there isn't a "\n" char who is send.
                          i have to change this in the sketch with z.
                          now it function!!

                          so the new serialEvent function is :

                          void serialEvent() {
                          while (Serial.available()) {
                          // get the new byte:
                          char inChar = (char)Serial.read();
                          // if the incoming character is a newline, set a flag
                          // so the main loop can do something about it:
                          if (inputPos<MAX_RECEIVE_LENGTH-1 && !commandComplete) {
                          if (inChar == 'z') {
                          inputString[inputPos] = 0;
                          commandComplete = true;
                          } else {
                          // add it to the inputString:
                          inputString[inputPos] = inChar;
                          inputPos++;
                          }

                          } else {
                             // Incoming message too long. Throw away 
                              inputPos = 0;
                          }
                          

                          }
                          }

                          and to activate my led (or relay), i use this line : 42;3;1;2;0z in the serial monitor on arduino

                          Is it my PC, the Arduino serial monitor or the script which isn't atapted with this tools?
                          i don't know...

                          Et voila for the solution (for my problem in fact)
                          thanks for all!

                          1 Reply Last reply
                          0
                          • hekH Offline
                            hekH Offline
                            hek
                            Admin
                            wrote on last edited by
                            #13

                            That is why I asked the following:

                            What is your setting in serial console (Newline?) when you send commands?

                            N 1 Reply Last reply
                            0
                            • hekH hek

                              That is why I asked the following:

                              What is your setting in serial console (Newline?) when you send commands?

                              N Offline
                              N Offline
                              nono056
                              wrote on last edited by
                              #14

                              @hek
                              I haven't understand this question, we can't change this in arduino?

                              hekH 1 Reply Last reply
                              0
                              • N nono056

                                @hek
                                I haven't understand this question, we can't change this in arduino?

                                hekH Offline
                                hekH Offline
                                hek
                                Admin
                                wrote on last edited by
                                #15

                                @nono056

                                Screen Shot 2014-05-15 at 16.39.33.png

                                1 Reply Last reply
                                0
                                • N Offline
                                  N Offline
                                  nono056
                                  wrote on last edited by
                                  #16

                                  ARF!!!!!!!
                                  3 years i use Arduino and i have never pay attention to this line... :-(
                                  Thanks!

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  11

                                  Online

                                  11.7k

                                  Users

                                  11.2k

                                  Topics

                                  113.0k

                                  Posts


                                  Copyright 2019 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