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
LeonL

Leon

@Leon
About
Posts
3
Topics
1
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Sending sensor data from arduino pro mini via NRF24L01+ to raspberry pi 4
    LeonL Leon

    @haloway13
    Hey, as I said below, I have found a solution to the problem.

    I have made use of two other tutorials.
    (Attention German language!)
    https://draeger-it.blog/arduino-lektion-48-temperatursensor-ds18b20/
    https://tutorials-raspberrypi.de/funkkommunikation-zwischen-raspberry-pis-und-arduinos-2-4-ghz/

    If you look at the wiring, I can send you my code so far:

    #include <SPI.h>
    #include "printf.h"
    #include "RF24.h"
    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    #define ONE_WIRE_BUS 2  //Sensor DS18B20 at digital pin 2
    
    RF24 radio(7, 8); // using pin 7 for the CE pin, and pin 8 for the CSN pin
    OneWire oneWire(ONE_WIRE_BUS);
    
    DallasTemperature sensors(&oneWire); // Transfer of the OnewWire reference to communicate with the sensor.
    
    uint8_t address[][6] = {"1Node", "2Node"}; // Let these addresses be used for the pair
    bool radioNumber = 1; //to use different addresses on a pair of radios, we need a variable to uniquely identify which address this radio will use to transmit
    int sensorCount;
    
    float payload = 0.0; 
    int ID = 0; 
    float temperature = 0.0;
    float battery = 0.0;
    
    void setup() {
      Serial.begin(115200);
      while (!Serial) {
        // some boards need to wait to ensure access to serial over USB
      }
      
      // initialize the transceiver on the SPI bus
      if (!radio.begin()) {
        Serial.println(F("radio hardware is not responding!!"));
        while (1) {} // hold in infinite loop
      }
    
      // Set the PA Level low to try preventing power supply related problems
      // because these examples are likely run with nodes in close proximity to
      // each other.
      radio.setPALevel(RF24_PA_LOW);  // RF24_PA_MAX is default.
    
      sensors.begin(); // Start communication with the sensor
      sensorCount = sensors.getDS18Count(); // Reading the number of connected
    
      // save on transmission time by setting the radio to only transmit the
      // number of bytes we need to transmit a float
      radio.setPayloadSize(sizeof(payload)); // float datatype occupies 4 bytes
    
      // set the TX address of the RX node into the TX pipe
      radio.openWritingPipe(address[radioNumber]);     // always uses pipe 0
    
      // set the RX address of the TX node into a RX pipe
      radio.openReadingPipe(1, address[!radioNumber]); // using pipe 1
      
      radio.stopListening();  // put radio in TX mode
    
    } // setup
    
    void loop() {
    
      if(sensorCount ==0){
         Serial.println("No temperature sensors found");
         Serial.println("Please check your circuit!");
       }
      
      sensors.requestTemperatures();
      
        // This device is a TX node
        payload = sensors.getTempCByIndex(0);
        
        unsigned long start_timer = micros();                    // start the timer
        bool report = radio.write(&payload, sizeof(float));      // transmit & save the report
        unsigned long end_timer = micros();                      // end the timer
    
        if (report) {
          Serial.print(F("Transmission successful! "));          // payload was delivered
          Serial.print(F("Time to transmit = "));
          Serial.print(end_timer - start_timer);                 // print the timer result
          Serial.print(F(" us. Sent: "));
          Serial.println(payload);                               // print payload sent
        } else {
          Serial.println(F("Transmission failed or timed out")); // payload was not delivered
        }
    
        // to make this example readable in the serial monitor
        delay(1000);  // slow transmissions down by 1 second
    
    } // loop
    
    Troubleshooting

  • Sending sensor data from arduino pro mini via NRF24L01+ to raspberry pi 4
    LeonL Leon

    @evb
    Hey, thanks for the quick reply.
    I have checked the wiring several times for correctness.
    Also the config was set up according to the instructions.

    Meanwhile I have found an alternative solution.
    Thanks a lot for your help!

    Troubleshooting

  • Sending sensor data from arduino pro mini via NRF24L01+ to raspberry pi 4
    LeonL Leon

    Hello,
    for a project I need to send sensor data to a gateway.

    For this I followed the following tutorial:
    https://www.mysensors.org/build/connect_radio
    https://www.mysensors.org/build/temp
    https://www.mysensors.org/build/raspberry

    The output of my Arduino looks like this:

    16 MCO:BGN:INIT NODE,CP=RNNNA---,FQ=8,REL=255,VER=2.3.2
    28 MCO:BGN:BFR
    51 TSM:INIT
    53 TSF:WUR:MS=0
    61 TSM:INIT:TSP OK
    61 TSM:FPAR
    65 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    2074 !TSM:FPAR:NO REPLY
    2076 TSM:FPAR
    2078 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    4087 !TSM:FPAR:NO REPLY
    4089 TSM:FPAR
    4091 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    6103 !TSM:FPAR:NO REPLY
    6105 TSM:FPAR
    6107 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    8116 !TSM:FPAR:FAIL
    8118 TSM:FAIL:CNT=1
    8120 TSM:FAIL:DIS
    8122 TSF:TDI:TSL
    18124 TSM:FAIL:RE-INIT
    18126 TSM:INIT
    18132 TSM:INIT:TSP OK
    18135 TSM:FPAR
    18139 ?TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    20148 !TSM:FPAR:NO REPLY
    

    The Raspberry has the following output (in debug mode):

    pi@raspberrypi:~/MySensors $ sudo ./bin/mysgw 
    Mar 04 13:25:39 INFO  Starting gateway...
    Mar 04 13:25:39 INFO  Protocol version - 2.4.0-alpha
    Mar 04 13:25:39 DEBUG MCO:BGN:INIT GW,CP=RNNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
    Mar 04 13:25:39 DEBUG TSF:LRT:OK
    Mar 04 13:25:39 DEBUG TSM:INIT
    Mar 04 13:25:39 DEBUG TSF:WUR:MS=0
    Mar 04 13:25:39 DEBUG TSM:INIT:TSP OK
    Mar 04 13:25:39 DEBUG TSM:INIT:GW MODE
    Mar 04 13:25:39 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
    Mar 04 13:25:39 DEBUG MCO:REG:NOT NEEDED
    Mar 04 13:25:39 DEBUG Listening for connections on pE��:5003
    Mar 04 13:25:39 DEBUG MCO:BGN:STP
    Mar 04 13:25:39 DEBUG MCO:BGN:INIT OK,TSP=1
    Mar 04 13:25:39 DEBUG TSM:READY:NWD REQ
    Mar 04 13:25:40 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    

    Can someone maybe tell me where my error is and how I can read the sensor data?

    Troubleshooting
  • Login

  • Don't have an account? Register

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