Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. radekzm
    3. Posts
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Posts made by radekzm

    • RE: RS485/RS232/Serial transport class for mysensors.org

      @m26872
      I'm sorry and promises to improve 🙂

      @Mariusz
      In my case the solution was in MyConfig.h file (in my case C:\Program Files (x86)\Arduino\libraries\MySensors):

      1. Disable function MY_DISABLED_SERIAL
        commenting lines 49
        // #define MY_DISABLED_SERIAL

      2. Disable function MY_DEBUG
        commenting lines 36
        //#define MY_DEBUG

      3. Correct connection is on my pictures enclosed in the above comment

      Board | Transmit | Receive | PWM Unusable
      Arduino Uno | 9 | 8 | 10 <----- Form https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html .... (& other ATMEGA328)
      Arduino Leonardo | 5 | 13 | (none)
      Arduino Mega | 46 | 48 | 44, 45

      DE and RE -> Pin 2
      RO -> Pin 8
      DI -> Pin 9

      1. To check the hardware and connections run the "Example Program" from https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html

      2. Use development branch

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      @Mariusz jak jesteś Polakiem ? Jeżeli tak to mogę Ci pomóc po polsku będzie łatwiej 🙂

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      @Michal

      I'll help when I get back from work.

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      @hek
      Ok I will try.

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      I made a test: did the system sends data from the sensor DHT22 to the rail 485 using only library AltSoftSerial and everything works properly. So the connection is ok.
      I used the same libraries:

      #include <AltSoftSerial.h>
      

      The same connections:
      http://cmss.pl/arduino/MySensor_RS485_test02_a.JPG
      alt text

      A ) RS485 Gatwaey (arduino nano):
      http://cmss.pl/arduino/MySensor_RS485_test02_b.JPG
      alt text

      #define MY_RS485_DE_PIN 2
      

      DE and RE -> Pin 2
      RO -> Pin 8
      DI -> Pin 9
      Uploaded example MySensors Gatwey 485 and own code.

      B ) RS485 Sensor DHT22 (arduino nano):
      http://cmss.pl/arduino/MySensor_RS485_test02_c.JPG
      alt text

      #define MY_RS485_DE_PIN 2
      

      DE and RE -> Pin 2
      RO -> Pin 8
      DI -> Pin 9

      Unfortunately, nothing works, no reaction, empty on debug console.

      Any ideas what could be wrong, what to check ???

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      I still have a few questions:

      Use: https://github.com/mysensors/Arduino/tree/development/libraries/MySensors.

      1) Architecture: Do I understand correctly, example test:
      raspberry pi domoticz [USB] <---- USB RS232 built-in Arduino nano ----> (hardware RS232, PIN: tx/rx) Arduino Nano (Gatwey RS485) (AltSoftSerial, PIN: 2,7,8) <---- RS485 AltSoftSerial ----> (AltSoftSerial, PIN: 2,7,8) Arduino Pro Mini <------ PIN 3, DHT22

      2) Gatwey RS485 Arduino Nano:

      • USB port of the Arduino Nano plugs in to Raspberry PI and set MySensors USB gateway in Domoticz ?
      • Gatwaey to communicate with RS485 uses AltSoftSerial ? Whta PIN ? R0 / DI ?
      • Gatwey Arduino Nano to communicate with Raspberry PI (Domoticz) use hardware USB (built in RS232) ?
      • Gatweway don't have Debug mode (no free RS) ? When uploading have I must turn of debug mode in MyConfig.h when use RS485?
      • DE PIN 2 ?
      • RO PIN 8 ?
      • DI PIN 9 ?
      • PIN 2/8/9 connected directly without pull-up resistors or current limiting ?
        /**
      ...
       * The gateway uses AltSoftSerial to handle two serial links 
       * on one Arduino. Use the following pins for RS485 link
       * 
       *  Board          Transmit  Receive   PWM Unusable
       * -----          --------  -------   ------------
       * Teensy 3.0 & 3.1  21        20         22
       * Teensy 2.0         9        10       (none)
       * Teensy++ 2.0      25         4       26, 27
       * Arduino Uno        9         8         10  <----- Form https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html .... (& other ATMEGA328)
       * Arduino Leonardo   5        13       (none)
       * Arduino Mega      46        48       44, 45
       * Wiring-S           5         6          4
       * Sanguino          13        14         12
       * 
       */
      
      // Enable debug prints to serial monitor
      #define MY_DEBUG 
      
      // Enable RS485 transport layer
      #define MY_RS485
      
      // Define this to enables DE-pin management on defined pin 
      #define MY_RS485_DE_PIN 2
      
      // Set RS485 baud rate to use
      #define MY_RS485_BAUD_RATE 9600
      
      // Enable serial gateway
      #define MY_GATEWAY_SERIAL
      
      // Flash leds on rx/tx/err
      #define MY_LEDS_BLINKING_FEATURE
      // Set blinking period
      #define MY_DEFAULT_LED_BLINK_PERIOD 300
      
      // Enable inclusion mode
      //#define MY_INCLUSION_MODE_FEATURE
      // Enable Inclusion mode button on gateway
      //#define MY_INCLUSION_BUTTON_FEATURE
      // Set inclusion mode duration (in seconds)
      //#define MY_INCLUSION_MODE_DURATION 60 
      // Digital pin used for inclusion mode button
      //#define MY_INCLUSION_MODE_BUTTON_PIN  3 
      
      #define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
      #define MY_DEFAULT_RX_LED_PIN  5  // Receive led pin
      #define MY_DEFAULT_TX_LED_PIN  6  // the PCB, on board LED
      
      #include <SPI.h>
      #include <MySensor.h>  
      
      void setup() { 
        // Setup locally attached sensors
      }
      
      void presentation() {
       // Present locally attached sensors 
      }
      
      void loop() { 
        // Send locally attached sensor data here 
      }
      
      

      3) Sensor Arduino Pro mini

      • What uses to communicate with RS485 bus ? Hardware RS232 Pin RX /TX or AltSoftSerial Pin 2/7/8 ?
      • If use AltSoftSerial: PIN 2/8/9 connected directly without pull-up resistors or current limiting ?
      • When uploading have I must turn of debug mode in MyConfig.h when use RS485?
      /**
      ...
      // Enable RS485 transport layer
      #define MY_RS485
      
      // Define this to enables DE-pin manag ement on defined pin 
      #define MY_RS485_DE_PIN 2
      
      // Set RS485 baud rate to use
      #define MY_RS485_BAUD_RATE 9600
      
      #include <SPI.h>
      #include <MySensor.h>
      #include <DHT.h>  
      
      #define MY_NODE_ID 15
      #define CHILD_ID_HUM 0
      #define CHILD_ID_TEMP 1
      #define HUMIDITY_SENSOR_DIGITAL_PIN 3
      unsigned long SLEEP_TIME = 2000; // Sleep time between reads (in milliseconds)
      
      // Initialize sensors
      DHT dht;
      float lastTemp;
      float lastHum;
      boolean metric = true; 
      MyMessage msgHum(CHILD_ID_HUM, V_HUM);
      MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
      
      // Debug
      //#include <SoftwareSerial.h>
      //SoftwareSerial mySerial(3, 4); // RX, TX
      
      void setup()  
      {    
        //mySerial.begin(4800);
        //mySerial.println("Hello, world?");  
        dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN); 
        metric = getConfig().isMetric;  
      }
      
      
      void presentation()  { 
        // Send the Sketch Version Information to the Gateway
        sendSketchInfo("Falskiego LED salon", "1.0");
      
        // Register all sensors to gw (they will be created as child devices)
        present(CHILD_ID_HUM, S_HUM);
        present(CHILD_ID_TEMP, S_TEMP);
      }
      
      
      void loop()     
      {     
        delay(dht.getMinimumSamplingPeriod());
       
        // Fetch temperatures from DHT sensor
        float temperature = dht.getTemperature();
        if (isnan(temperature)) {
            Serial.println("Failed reading temperature from DHT");
        } else if (temperature != lastTemp) {
          lastTemp = temperature;
          if (!metric) {
            temperature = dht.toFahrenheit(temperature);
          }
          send(msgTemp.set(temperature, 1));
          #ifdef MY_DEBUG
          Serial.print("T: ");
          Serial.println(temperature);
          #endif
        }
        
        // Fetch humidity from DHT sensor
        float humidity = dht.getHumidity();
        if (isnan(humidity)) {
            Serial.println("Failed reading humidity from DHT");
        } else if (humidity != lastHum) {
            lastHum = humidity;
            send(msgHum.set(humidity, 1));
            #ifdef MY_DEBUG
            Serial.print("H: ");
            Serial.println(humidity);
            #endif
        }
        
        sleep(SLEEP_TIME); //sleep a bit
      }
      
      

      Schema
      Schema
      Schema

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      That's exactly what I looking for !. In my version of the library that are missing.
      In my version of the library that (supports RS485) are missing.
      I downloaded the Library https://github.com/mysensors/Arduino/archive/master.zip this is my problem.
      Should I download from https://github.com/mysensors/Arduino/tree/development/libraries/MySensors.

      The last question: Do I have just these two files download and replace from second url and that all ?

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      I think that constat value:

      #define MY_RS485
      

      https://github.com/mysensors/Arduino/blob/development/libraries/MySensors/examples/GatewaySerialRS485/GatewaySerialRS485.ino#L56

      It is doing nothing and changes nothing. This constat value is only on exmaple sketch. It is not a reference to the constat value in the library MySensros and mysensors-serial-transport.

      Searching 1628 files for "MY_RS485"
      0 matches

      ??? I still do not know how to use the RS485 instead of NRF24 ???

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      In the examples, there is no information on how to disable the radio NRF24 and enable RS485, this is my main problem.

      MySensors still try init Radio NRF, because no radio connected in sending "radio init fail"

      Renovate the house and so I want to use it:
      Raspberry Pi (Domoticz) <--- USB ---> MySensor Gateway RS485 <--- RS485 (Cat5e) ---> MySensors Sensors & Actuators (x 20)

      Will show photos when I finish.

      posted in Development
      radekzm
      radekzm
    • RE: RS485/RS232/Serial transport class for mysensors.org

      HELP: Please instructions on how I can run this RS485 transport class for beginners.

      Some basic questions:

      1. First point instructions: File "SerialTransport.h" and "SerialTransport.cpp" download to C:\Program Files (x86)\Arduino\libraries\MySensors[here]. is this correct ?
      2. On the second point instructions: "Add #include <SerialTransport.h> to your .ino sketch" but examples do not have this:
        https://github.com/mysensors/Arduino/tree/development/libraries/MySensors/examples/MotionSensorRS485
        https://github.com/mysensors/Arduino/tree/development/libraries/MySensors/examples/GatewaySerialRS485
        way ?
        In what file i must put this line "#include <SerialTransport.h>" ? main sketch ?
      3. The third point instructions: Replace transport class with: "Replace transport class with: " where exactly ? Maybe I have a different version MySensors because I can not find the declaration "#define MY_RADIO_RF24" and replace it with a "#define MY_RS485". I do not know how to change the NRF to RS485 in lib MySensors. Please precise instructions with examples for the current version lib MySensors.
      4. Can I get examples of sketch (confirmed that work with the physical bus RS485) Gateway and sensor.

      I use Windows, path of arduino lib is: C:\Program Files (x86)\Arduino\libraries.

      The only thing that works:
      When I connect RS485 to USB on Raspberry Pi (domoticz) and on the other side sensor (Arduino Pro Mini + DHT22) received on Raspberry:

      radek@raspberrypi $ cat /dev/ttyUSB0
      radi init fail
      

      It sent the sensor by the RS485 to Rasberry PI. So the RS485 is working properly.

      Sorry for my English and thank you for your help.

      posted in Development
      radekzm
      radekzm