Forum >Replies by lia.ifat
userhead lia.ifat
Replies (20)
  • You Reply:

    The sensor operates based on light scattering and absorption. Reducing the Tx-Rx distance to 25mm will likely increase the intensity of light received by the detector. This can shift the baseline readings, making the turbidity values appear lower than they are. The dynamic range of the sensor may be affected. This can make extreme turbidity values harder to distinguish. If you want to accommodate turbidity, TDS, and pH sensors into a single PCB, you can make one like this. It will give you a complete picture of water quality. 

     

    https://www.pcbway.com/project/shareproject/PCB_DESIGN_AND_DEVELOPMENT_FOR_PH_TURBIDITY_AND_TDS_MODULES_5a8d79e8.html

     

  • You Reply:

    Yes. You have to use two different data pins. You just need to modify the code given in the wiki page:

    https://wiki.dfrobot.com/Gravity__Infrared_CO2_Sensor_For_Arduino_SKU__SEN0219

     

    If you want to make a PCB, you will get some idea about the cost here:

    https://www.allpcb.com/blog/pcb-ordering/pcb-cost-per-unit.html

  • You Reply:

    You can try this code to change the address. 

     

    #include <SoftwareSerial.h>

    #define TX_PIN 3   // TX pin to MAX485 DI
    #define RX_PIN 2   // RX pin from MAX485 RO
    #define DE_RE 4    // RS485 Direction Control

    SoftwareSerial rs485Serial(RX_PIN, TX_PIN); // RX, TX

    void sendCommand(byte *cmd, int length) {
       digitalWrite(DE_RE, HIGH);  // Enable RS485 Transmit
       delay(10);
       rs485Serial.write(cmd, length);
       delay(10);
       digitalWrite(DE_RE, LOW);   // Disable RS485 Transmit (Enable Receive)
    }

    void setup() {
       Serial.begin(9600);      // Debugging Serial Monitor
       rs485Serial.begin(9600); // RS485 Baud Rate
       pinMode(DE_RE, OUTPUT);
       digitalWrite(DE_RE, LOW); // Default to Receive Mode

       // Modbus RTU Command to Change Address from 0x01 to 0x02
       byte changeAddressCmd[] = { 
           0x01, 0x06, 0x00, 0x03, 0x00, 0x02, 0x79, 0x84
       };

       Serial.println("Changing RS485 Sensor Address from 0x01 to 0x02...");
       sendCommand(changeAddressCmd, sizeof(changeAddressCmd));

       delay(1000);
       Serial.println("Address Change Sent! Now testing new address...");
    }

    void loop() {
       byte requestDataCmd[] = { 
           0x02, 0x03, 0x00, 0x00, 0x00, 0x02, 0xC4, 0x39
       };

       sendCommand(requestDataCmd, sizeof(requestDataCmd));

       delay(500); // Wait for response
       while (rs485Serial.available()) {
           Serial.print(rs485Serial.read(), HEX);
           Serial.print(" ");
       }
       Serial.println();
       delay(2000);
    }
     

    If you want to make a simple soil moisture sensor, you may try this:

     

    https://www.pcbway.com/project/shareproject/Customized_LM393D_Soil_Moisture_Sensor_Board_4985ec99.html

  • You Reply: Check if the sensor's DIP switch is set for I2C mode since your code is configured for I2C (#define I2C_COMMUNICATION).Verify the I2C address with I2C scanner code. See if it  is 0x74. Temporarily turn off temperature compensation by replacing gas.setTempCompensation(gas.ON); with gas.setTempCompensation(gas.OFF); and observe if the readings stabilize. If nothing helps, maybe it's bad hardware. If you think about making a blood oxygen sensor, you can see here: https://www.pcbway.com/blog/3/Blood_Oxygen_Sensor_OEM_example_fdc19b88.html
  • You Reply:

    The SCD4X.setAutoCalibMode(true); line explicitly enables automatic self-calibration (ASC). If this line is not included in your code, ASC’s status will depend on the default configuration of the sensor and the library. If your sensor operates in typical environments (e.g., office spaces, homes, or outdoor settings with periodic ventilation), ASC is highly beneficial and should remain enabled for long-term accuracy. 

    For cross-checking your data you can use another Co2 sensor like the MQ135.

     

    https://www.theengineeringprojects.com/2024/03/mq135-air-quality-sensor.html

  • You Reply:

    Yes. You have to use an I2C multiplexer. 

  • You Reply:

    The Solar Power Manager 5V (DFR-559) is designed with a low quiescent current feature when disabled. When the EN pin is pulled low to disable the board and there is no solar input voltage, the battery consumption is expected to be less than 1 mA, as stated in its specifications.

  • You Reply:

    I think you need to see here https://github.com/DFRobot/DFRobot_SpeechSynthesis_V2

  • You Reply:

    Use an I2C scanner script to check if the Maqueen is acknowledging the I2C addresses (0x10, 0x14, etc.).

  • You Reply:

    Go to Sketch > Include Library > Add .ZIP Library.Navigate to the downloaded .zip file and select it.Ensure no errors are displayed after installation.

  • You Reply:

    Open the device manager (Windows) or use ls /dev/tty* (Linux/macOS) to verify that your Beetle ESP32-C6 is recognized and assigned a COM/serial port.

  • You Reply:

    The Ozone Sensor SEN0321 (from DFRobot) uses a 4-pin I2C interface for communication. To connect it to an Intel NUC via USB, you’ll need an I2C to USB adapter or bridge.

  • You Reply:

    I hope they are working on this issue.

  • You Reply:

    Using MCtimer2 (or any timer with interrupts) can help you measure precise timing intervals when you're working with data that needs to be sampled at a specific rate or requires high accuracy.

  • You Reply:

    The beam angle itself cannot be changed, as it's determined by the sensor's optics and design.

  • You Reply:

    Adjust sensitivity-related parameters like Noise Floor, Watchdog Threshold, and Spike Rejection.

  • You Reply:

    I cannot see any way to change the address.

    https://wiki.dfrobot.com/RS485_Soil_Sensor_Temperature_Humidity_EC_PH_SKU_SEN0604

    Let's see what dfrobot has to say. 

  • You Reply:

    The persistent "presence detected" issue may be due to environmental IR interference or suboptimal placement of the sensor. Test in a controlled environment and adjust sensitivity or detection parameters if possible. Light has huge effect of the output of such sensors. Make sure there is enough light. 

  • You Reply:

    RS485 communication requires managing the direction of data flow. The USB-to-RS485 converter usually relies on hardware (automatic) or manual control of the RE/DE (Receive Enable/Driver Enable) pins to switch between transmit and receive modes. The CH340-based converter should handle this automatically.

  • You Reply:

    You can see here https://learn.dfrobot.com/makelog-313293.html