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. OpenHardware.io
  3. 💬 Multi-Sensor: Temp/Humidity/PIR/ Leak/Magnet/Light/Accel

💬 Multi-Sensor: Temp/Humidity/PIR/ Leak/Magnet/Light/Accel

Scheduled Pinned Locked Moved OpenHardware.io
117 Posts 18 Posters 23.9k Views 17 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.
  • T Tiwo85

    Wich board do you use in arduino? I can only use Waveshare BLE4.0. At Generic etc. It seems, that the oscillator doesn't work probably.

    NeverDieN Offline
    NeverDieN Offline
    NeverDie
    Hero Member
    wrote on last edited by
    #101

    @tiwo85 said in 💬 Multi-Sensor: Temp/Humidity/PIR/ Leak/Magnet/Light/Accel:

    Wich board do you use in arduino? I

    Not sure what you're asking.

    T 1 Reply Last reply
    0
    • NeverDieN NeverDie

      @tiwo85 said in 💬 Multi-Sensor: Temp/Humidity/PIR/ Leak/Magnet/Light/Accel:

      Wich board do you use in arduino? I

      Not sure what you're asking.

      T Offline
      T Offline
      Tiwo85
      wrote on last edited by Tiwo85
      #102

      @neverdie I mean this:
      0_1517742775930_ArduinoBoard.png
      When I use Generic nRF51 or something else, the onboard LED turns on and doesn't turns off. When I use Waveshare BLE400 the sketch works as usual

      NeverDieN 1 Reply Last reply
      0
      • T Tiwo85

        @neverdie I mean this:
        0_1517742775930_ArduinoBoard.png
        When I use Generic nRF51 or something else, the onboard LED turns on and doesn't turns off. When I use Waveshare BLE400 the sketch works as usual

        NeverDieN Offline
        NeverDieN Offline
        NeverDie
        Hero Member
        wrote on last edited by NeverDie
        #103

        @tiwo85
        I use this:
        0_1517752283964_arduino_board_type.png
        You download it from @d00616 on github.

        1 Reply Last reply
        1
        • NeverDieN NeverDie

          For PIR capability, the multi-sensor can simply plug into this PIR module: https://www.openhardware.io/view/420/AM612-Passive-Infrared-Sensor-Breakout-Board

          T Offline
          T Offline
          Tiwo85
          wrote on last edited by
          #104

          @neverdie do you have a working example sketch. I try the example sketch from the 10years pir sensor an d modify a little bit, but it doesn't work. The sketch awake every 5 minutes and send the state from the pir and that's it.

          NeverDieN 1 Reply Last reply
          0
          • T Tiwo85

            @neverdie do you have a working example sketch. I try the example sketch from the 10years pir sensor an d modify a little bit, but it doesn't work. The sketch awake every 5 minutes and send the state from the pir and that's it.

            NeverDieN Offline
            NeverDieN Offline
            NeverDie
            Hero Member
            wrote on last edited by
            #105

            @tiwo85
            https://www.openhardware.io/view/510/Multi-Sensor-TempHumidityPIR-LeakMagnetLightAccel#tabs-source

            T 1 Reply Last reply
            0
            • NeverDieN NeverDie

              @tiwo85
              https://www.openhardware.io/view/510/Multi-Sensor-TempHumidityPIR-LeakMagnetLightAccel#tabs-source

              T Offline
              T Offline
              Tiwo85
              wrote on last edited by Tiwo85
              #106

              @neverdie thank you. I made this sketch work. But I need to get work interrupts. I use your code for the am612, but it doesn't work. Then I use the example from Redbear labs "Example interrupted" to turn on the led when p0.02 is high. I use Mysensors library and set My Core only. Then it runs. But when I try to integrate Mysensors routines "presentation" etc. And disable "my core only" , then the interrupt doesn't work.

              // SUMMARY: This demo sketch runs on the AM612 PIR v607 PCBto transmit battery voltage (heartbeat) and motion detections to a MySensors gateway using MySensors protocols.
              
              // Note: because this is a passive node, node ID must be set manually to a unique sensor node ID:
              #define MY_NODE_ID 143  // Passive mode requires static node ID
              
              //#define MY_CORE_ONLY
              
              #define MY_PASSIVE_NODE
              
              #define MY_RADIO_NRF5_ESB
              
              
              
              /**
               * The MySensors Arduino library handles the wireless radio link and protocol
               * between your home built sensors/actuators and HA controller of choice.
               * The sensors forms a self healing radio network with optional repeaters. Each
               * repeater and gateway builds a routing tables in EEPROM which keeps track of the
               * network topology allowing messages to be routed to nodes.
               *
               * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
               * Copyright (C) 2013-2017 Sensnology AB
               * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
               *
               * Documentation: http://www.mysensors.org
               * Support Forum: http://forum.mysensors.org
               *
               * This program is free software; you can redistribute it and/or
               * modify it under the terms of the GNU General Public License
               * version 2 as published by the Free Software Foundation.
               *
               *******************************
               *
               * REVISION HISTORY
               * Version 1.0 - tekka
               *
               * DESCRIPTION
               * Passive node example: This is a passive & independent reporting node
               *
               */
              
              // This demo sketch also draws from the MySensor's example MotionSensor sketch.
              
              #define IS_NRF51  //true iff the target is an nRF51.  If an nRF52, then comment this line out!
              
              #define SHORT_WAIT 50
              
              // Enable debug prints
              //#define MY_DEBUG
              
              #define PIN_LED1                (4) // 4 is sensor LED , 1 is onboard LED
              #define LED_BUILTIN          PIN_LED1
              
              #define PIN_SENSOR1                (10) // 2 is waterleak, 10 is PIR , 3 is Pin5/INT
              #define SENSOR1         PIN_SENSOR1
              
              
              #include <MySensors.h>
              
              //#define CHILD_ID_TEMP 1  //definitions contributed by smilvert (see above credit)
              #define CHILD_ID 2   // Id of the motion sensor child
              #define ID_S_MULTIMETER        28
              
              // Initialize general message
              //MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
              MyMessage msg(CHILD_ID, V_TRIPPED);
              MyMessage msg_S_MULTIMETER_V_VOLTAGE(ID_S_MULTIMETER,V_VOLTAGE);
              
              float batteryVoltage=0;  
              
              /*#include "nrf_temp.h"
              
              float read_temp_value(){
              
                float temp=0;
              
                // Starten Sie die Temperaturmessung. 
                NRF_TEMP->TASKS_START = 1; 
              
                // Warten Sie, bis die Temperaturmessung abgeschlossen ist.
                while (NRF_TEMP->EVENTS_DATARDY == 0){
                  // Do nothing.}
                }
                NRF_TEMP->EVENTS_DATARDY = 0;
              
                // Lesen Sie den Temperaturwert vom Sensor ab
                // Die Genauigkeit beträgt 0,25 Grad Celsius <=> 1 Einheit = 0,25 Grad Celsius
                // Teile durch 4, um einen C-Wert zu erhalten
                
                temp = ((float)nrf_temp_read() / 4.);
              
                // Hoàn thành quá trình đo. 
                NRF_TEMP->TASKS_STOP = 1; 
              
                return temp;
              }*/
              
              void blinkityBlink(uint8_t repetitions) {
                for (int x=0;x<repetitions;x++) {
                  digitalWrite(LED_BUILTIN ,HIGH);
                  delay(20);
                  digitalWrite(LED_BUILTIN ,LOW);
                  delay(100);
                  digitalWrite(LED_BUILTIN ,HIGH);
                  delay(20);
                  digitalWrite(LED_BUILTIN ,LOW);    
                  if (x<(repetitions-1)) {  //skip waiting at the end of the final repetition
                    delay(500);
                  }
                }
              }
              
              void handle_irq3(void) {
                if(HIGH == digitalRead(SENSOR1)){
                    digitalWrite(LED_BUILTIN , HIGH);
                    send(msg.set("1"));  // motion detected
                }
                else
                {
                    digitalWrite(LED_BUILTIN , LOW);
                     send(msg.set("0"));  // send all-clear to prepare for future detections
                }
              }
              
              void presentation()
              {
                // Send the sketch version information to the gateway and Controller
                sendSketchInfo("NRF Motion Sensor", "1.0");
                 // wait(SHORT_WAIT);
                 // present(CHILD_ID_TEMP, S_TEMP,"Onboard Temperature");
                wait(SHORT_WAIT);
                // Register all sensors to gw (they will be created as child devices)
                present(CHILD_ID, S_MOTION,"Motion Sensor");
              
                wait(SHORT_WAIT);
                
                present(ID_S_MULTIMETER,S_MULTIMETER,"Electric Station");
                wait(SHORT_WAIT);
              }
              
              
              void setup() {
                  // put your setup code here, to run once:
                  //hwInit();
                //hwPinMode(LED_BUILTIN,OUTPUT_D0H1);
                //hwPinMode(SENSOR1,INPUT);
              
                 //nrf_temp_init();
                pinMode(LED_BUILTIN , OUTPUT);
                  digitalWrite(LED_BUILTIN , LOW);
                blinkityBlink(5);  //signify power-up and start of operations
              
                // set interrupts, pin default is HIGH
                attachInterrupt(SENSOR1, handle_irq3, CHANGE);
              }
              
              void loop() {
                // put your main code here, to run repeatedly:
                //send(msgTemp.set(read_temp_value(),2));
                batteryVoltage=((float)hwCPUVoltage())/1000.0;  //take voltage measurement after transmission to hopefully measure lowest voltage that occurs. 
                send(msg_S_MULTIMETER_V_VOLTAGE.set(batteryVoltage,3));  //send battery voltage with 3 decimal places
                sleep(900000); //sleep 15 min
              }
              
              
              NeverDieN 1 Reply Last reply
              0
              • T Tiwo85

                @neverdie thank you. I made this sketch work. But I need to get work interrupts. I use your code for the am612, but it doesn't work. Then I use the example from Redbear labs "Example interrupted" to turn on the led when p0.02 is high. I use Mysensors library and set My Core only. Then it runs. But when I try to integrate Mysensors routines "presentation" etc. And disable "my core only" , then the interrupt doesn't work.

                // SUMMARY: This demo sketch runs on the AM612 PIR v607 PCBto transmit battery voltage (heartbeat) and motion detections to a MySensors gateway using MySensors protocols.
                
                // Note: because this is a passive node, node ID must be set manually to a unique sensor node ID:
                #define MY_NODE_ID 143  // Passive mode requires static node ID
                
                //#define MY_CORE_ONLY
                
                #define MY_PASSIVE_NODE
                
                #define MY_RADIO_NRF5_ESB
                
                
                
                /**
                 * The MySensors Arduino library handles the wireless radio link and protocol
                 * between your home built sensors/actuators and HA controller of choice.
                 * The sensors forms a self healing radio network with optional repeaters. Each
                 * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                 * network topology allowing messages to be routed to nodes.
                 *
                 * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                 * Copyright (C) 2013-2017 Sensnology AB
                 * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                 *
                 * Documentation: http://www.mysensors.org
                 * Support Forum: http://forum.mysensors.org
                 *
                 * This program is free software; you can redistribute it and/or
                 * modify it under the terms of the GNU General Public License
                 * version 2 as published by the Free Software Foundation.
                 *
                 *******************************
                 *
                 * REVISION HISTORY
                 * Version 1.0 - tekka
                 *
                 * DESCRIPTION
                 * Passive node example: This is a passive & independent reporting node
                 *
                 */
                
                // This demo sketch also draws from the MySensor's example MotionSensor sketch.
                
                #define IS_NRF51  //true iff the target is an nRF51.  If an nRF52, then comment this line out!
                
                #define SHORT_WAIT 50
                
                // Enable debug prints
                //#define MY_DEBUG
                
                #define PIN_LED1                (4) // 4 is sensor LED , 1 is onboard LED
                #define LED_BUILTIN          PIN_LED1
                
                #define PIN_SENSOR1                (10) // 2 is waterleak, 10 is PIR , 3 is Pin5/INT
                #define SENSOR1         PIN_SENSOR1
                
                
                #include <MySensors.h>
                
                //#define CHILD_ID_TEMP 1  //definitions contributed by smilvert (see above credit)
                #define CHILD_ID 2   // Id of the motion sensor child
                #define ID_S_MULTIMETER        28
                
                // Initialize general message
                //MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
                MyMessage msg(CHILD_ID, V_TRIPPED);
                MyMessage msg_S_MULTIMETER_V_VOLTAGE(ID_S_MULTIMETER,V_VOLTAGE);
                
                float batteryVoltage=0;  
                
                /*#include "nrf_temp.h"
                
                float read_temp_value(){
                
                  float temp=0;
                
                  // Starten Sie die Temperaturmessung. 
                  NRF_TEMP->TASKS_START = 1; 
                
                  // Warten Sie, bis die Temperaturmessung abgeschlossen ist.
                  while (NRF_TEMP->EVENTS_DATARDY == 0){
                    // Do nothing.}
                  }
                  NRF_TEMP->EVENTS_DATARDY = 0;
                
                  // Lesen Sie den Temperaturwert vom Sensor ab
                  // Die Genauigkeit beträgt 0,25 Grad Celsius <=> 1 Einheit = 0,25 Grad Celsius
                  // Teile durch 4, um einen C-Wert zu erhalten
                  
                  temp = ((float)nrf_temp_read() / 4.);
                
                  // Hoàn thành quá trình đo. 
                  NRF_TEMP->TASKS_STOP = 1; 
                
                  return temp;
                }*/
                
                void blinkityBlink(uint8_t repetitions) {
                  for (int x=0;x<repetitions;x++) {
                    digitalWrite(LED_BUILTIN ,HIGH);
                    delay(20);
                    digitalWrite(LED_BUILTIN ,LOW);
                    delay(100);
                    digitalWrite(LED_BUILTIN ,HIGH);
                    delay(20);
                    digitalWrite(LED_BUILTIN ,LOW);    
                    if (x<(repetitions-1)) {  //skip waiting at the end of the final repetition
                      delay(500);
                    }
                  }
                }
                
                void handle_irq3(void) {
                  if(HIGH == digitalRead(SENSOR1)){
                      digitalWrite(LED_BUILTIN , HIGH);
                      send(msg.set("1"));  // motion detected
                  }
                  else
                  {
                      digitalWrite(LED_BUILTIN , LOW);
                       send(msg.set("0"));  // send all-clear to prepare for future detections
                  }
                }
                
                void presentation()
                {
                  // Send the sketch version information to the gateway and Controller
                  sendSketchInfo("NRF Motion Sensor", "1.0");
                   // wait(SHORT_WAIT);
                   // present(CHILD_ID_TEMP, S_TEMP,"Onboard Temperature");
                  wait(SHORT_WAIT);
                  // Register all sensors to gw (they will be created as child devices)
                  present(CHILD_ID, S_MOTION,"Motion Sensor");
                
                  wait(SHORT_WAIT);
                  
                  present(ID_S_MULTIMETER,S_MULTIMETER,"Electric Station");
                  wait(SHORT_WAIT);
                }
                
                
                void setup() {
                    // put your setup code here, to run once:
                    //hwInit();
                  //hwPinMode(LED_BUILTIN,OUTPUT_D0H1);
                  //hwPinMode(SENSOR1,INPUT);
                
                   //nrf_temp_init();
                  pinMode(LED_BUILTIN , OUTPUT);
                    digitalWrite(LED_BUILTIN , LOW);
                  blinkityBlink(5);  //signify power-up and start of operations
                
                  // set interrupts, pin default is HIGH
                  attachInterrupt(SENSOR1, handle_irq3, CHANGE);
                }
                
                void loop() {
                  // put your main code here, to run repeatedly:
                  //send(msgTemp.set(read_temp_value(),2));
                  batteryVoltage=((float)hwCPUVoltage())/1000.0;  //take voltage measurement after transmission to hopefully measure lowest voltage that occurs. 
                  send(msg_S_MULTIMETER_V_VOLTAGE.set(batteryVoltage,3));  //send battery voltage with 3 decimal places
                  sleep(900000); //sleep 15 min
                }
                
                
                NeverDieN Offline
                NeverDieN Offline
                NeverDie
                Hero Member
                wrote on last edited by
                #107

                @tiwo85 I suggest you start a different thread on your interrupt problems, since that's really a separate issue and not specific to this hardware.

                1 Reply Last reply
                0
                • ehomeE Offline
                  ehomeE Offline
                  ehome
                  wrote on last edited by ehome
                  #108

                  Hi,

                  I like to buy this board and your AM612 breakout pcb through hardware.io.

                  But first I have few questions unfortunately I couldn't find the answers here in this thread/forum.

                  1. I assume this board has to be programmed via the 10pin box header. How can I connect it to my computer? I think there is some adapter or similar required? Any selfmade options available? In this thread I saw that it should be possible to program this device via the Arduino IDE?

                  2. Can I mount the following sensors at the same time without space conflicts:

                  • Motion PIR (AM612breakout)
                  • Temp + Humidity
                  • Light
                  1. Does this board have some free digital pins for door contact and or relais? (if yes, how many?)

                  2. (Optional) I think there are no MISO/MOSI/... pins for connecting a RFM69 module?

                  I don't like to use the battery option. I will power the board via power supply. Can I connect a 5V power supply to the battery pins or what is the best option?

                  Thanks in advance.

                  Nca78N 1 Reply Last reply
                  0
                  • ehomeE ehome

                    Hi,

                    I like to buy this board and your AM612 breakout pcb through hardware.io.

                    But first I have few questions unfortunately I couldn't find the answers here in this thread/forum.

                    1. I assume this board has to be programmed via the 10pin box header. How can I connect it to my computer? I think there is some adapter or similar required? Any selfmade options available? In this thread I saw that it should be possible to program this device via the Arduino IDE?

                    2. Can I mount the following sensors at the same time without space conflicts:

                    • Motion PIR (AM612breakout)
                    • Temp + Humidity
                    • Light
                    1. Does this board have some free digital pins for door contact and or relais? (if yes, how many?)

                    2. (Optional) I think there are no MISO/MOSI/... pins for connecting a RFM69 module?

                    I don't like to use the battery option. I will power the board via power supply. Can I connect a 5V power supply to the battery pins or what is the best option?

                    Thanks in advance.

                    Nca78N Offline
                    Nca78N Offline
                    Nca78
                    Hardware Contributor
                    wrote on last edited by Nca78
                    #109

                    Hello @ehome

                    1. it is based on an arduino pro mini (NModule board, don't forget that this is just a shield for NModule) , so you program the arduino pro-mini, usually using an FTDI adapter. You should find plenty of explanations online.
                      For programming bootloader/fuses, you can use and arduino nano with the ArduinoISP sketch: MOSI=>MOSI, MISO=>MISO, SCK=>SCK and SS (pin 10) of nano to reset pin of the pro mini. Here also you will find plenty of examples/videos etc online.
                      Start with reading the page about NModule:
                      https://www.openhardware.io/view/364/NModule

                    2. In theory yes if light sensor is on the AM612 breakout. I will test this configuration next week and confirm to you that it is working before you order the board. If you don't hear any news about that before the end of next week ring me a bell here as it probably means I forgot :)

                    3. You will use one of the external interrupt pins (pin 3) for the PIR sensor, so you will have one left (pin 2). If you don't use the leds there are 3 other input pins available on the NModule connector (A1,A2,A3, you can use them as digital inputs too), on battery powered sensors it needs pin change interrupts, but as you are using a power supply it won't be a problem.

                    4. No you can't connect a RFM module, NModule is only for SMD NRF24 modules

                    5. You should connect power to RAW and GND pins on the NModule connector. The best is to use AMS1117 regulator to get the 3.3V, it's probably overkill for your usage but it's very stable and will filter the noise of your power supply much better than the XC6206 (which more suitable for a li-ion powered node). In addition you will be able to use a power supply up to 12V

                    1 Reply Last reply
                    0
                    • ehomeE Offline
                      ehomeE Offline
                      ehome
                      wrote on last edited by
                      #110

                      @Nca78 many thanks for your answer. Maybe may question was a little bit too vague. I didn't mean the NMODULE board. I was speaking about the NRF51xxx board from @NeverDie

                      Nca78N 1 Reply Last reply
                      0
                      • ehomeE ehome

                        @Nca78 many thanks for your answer. Maybe may question was a little bit too vague. I didn't mean the NMODULE board. I was speaking about the NRF51xxx board from @NeverDie

                        Nca78N Offline
                        Nca78N Offline
                        Nca78
                        Hardware Contributor
                        wrote on last edited by
                        #111

                        @ehome said in 💬 Multi-Sensor: Temp/Humidity/PIR/ Leak/Magnet/Light/Accel:

                        @Nca78 many thanks for your answer. Maybe may question was a little bit too vague. I didn't mean the NMODULE board. I was speaking about the NRF51xxx board from @NeverDie

                        These are shield made to work with the NModule. For the same sensors I think @NeverDie has what you need in NRF5 versions, so ask him on the right thread :)

                        1 Reply Last reply
                        0
                        • xliborX Offline
                          xliborX Offline
                          xlibor
                          wrote on last edited by
                          #112

                          Hi all, i try NRF51822-04 module with this sketch and Si7021 as GY-21 sensor, communication over radio works great, but i still got Humidity 118% and Temperature 128°C

                          can anyone help me?

                          Si7021 is connected to P0.10 - SCL and P0.4 - SDA

                          W 1 Reply Last reply
                          0
                          • X Offline
                            X Offline
                            xmonika
                            wrote on last edited by
                            #113
                            1. I've downloaded the source files and tried to compile them.
                              I got fatal error: sketch/MyBoardNRF5.h: No such file or directory

                            2. Then I renamed MyNRF5Board.h to MyBoardNRF5.h
                              I got #error No forward link or gateway feature activated. This means nowhere to send messages! Pretty pointless.

                            3. Then I added #define MY_GATEWAY_SERIAL into the code
                              I got many errors i.e. 'PIN_AIN0' was not declared in this scope

                            How to compile the downloaded source files?

                            1 Reply Last reply
                            0
                            • R Offline
                              R Offline
                              reinhold
                              Hardware Contributor
                              wrote on last edited by
                              #114

                              Hi,
                              What is the power consumption you get with this board and i2c sensors? I built several boards and measured the consumption using a INA219 sensor (lowest resolution is 0.1mA). Without any I2C sensor initialized, it shows a power consumption well below 0.1mA (i.e. it always shows 0.0), but as soon as I use an I2C sensor, the consumption during sleep increases to 0.3mA, which drains the battery faster than desired for a battery node...

                              I tried it with several different implementations / sensors, and always got the same result:

                              • MyBoardNRF5 with BME280 (Adafruit library), sketch adapted from the one supplied with this board
                              • MyBoardNRF5 with BME280 using NodeManger
                              • MyBoardNRF5 with VL53L0x using NodeManager
                              • Custom board in Arduino IDE derived from Sandeep Mistry's generic 51822 board, with either of the above sketches

                              Is there anything special I need to do to get power consumption with i2c sensors down to the desired single-digit-µA-range during sleep?

                              O 1 Reply Last reply
                              0
                              • R reinhold

                                Hi,
                                What is the power consumption you get with this board and i2c sensors? I built several boards and measured the consumption using a INA219 sensor (lowest resolution is 0.1mA). Without any I2C sensor initialized, it shows a power consumption well below 0.1mA (i.e. it always shows 0.0), but as soon as I use an I2C sensor, the consumption during sleep increases to 0.3mA, which drains the battery faster than desired for a battery node...

                                I tried it with several different implementations / sensors, and always got the same result:

                                • MyBoardNRF5 with BME280 (Adafruit library), sketch adapted from the one supplied with this board
                                • MyBoardNRF5 with BME280 using NodeManger
                                • MyBoardNRF5 with VL53L0x using NodeManager
                                • Custom board in Arduino IDE derived from Sandeep Mistry's generic 51822 board, with either of the above sketches

                                Is there anything special I need to do to get power consumption with i2c sensors down to the desired single-digit-µA-range during sleep?

                                O Offline
                                O Offline
                                Omemanti
                                wrote on last edited by
                                #115

                                @reinhold I'm not sure if this helps, but I had 450uA drain when sleeping and shut down I2C everytime I'm done reading:

                                void i2c_off() // Shut i2c down, power consumption rises up to 450uA instead of 11 ua  - https://github.com/sandeepmistry/arduino-nRF5/issues/291#issuecomment-407492282
                                {
                                  NRF_TWI1->ENABLE=TWI_ENABLE_ENABLE_Disabled << TWI_ENABLE_ENABLE_Pos;
                                *(volatile uint32_t *)0x40004FFC = 0;
                                *(volatile uint32_t *)0x40004FFC;
                                *(volatile uint32_t *)0x40004FFC = 1;
                                
                                }```
                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  reinhold
                                  Hardware Contributor
                                  wrote on last edited by
                                  #116

                                  @Omemanti, thanks for the pointer. Unfortunately, this seems to be a hardware problem of the NRF52* boards, not of the NRF51822-04 that is used in NeverDie's board.

                                  Is there any way to find out which peripherals are enabled while the nrf51 is sleeping? I tried googling and also looked at the openocd documentation, but couldn't see any reference to reading out the which peripherals are turned off and which are running while the nrf is in deep sleep. (I'm using a cheap Chinese ST-link V2 dongle to program the nrf via SWD).

                                  1 Reply Last reply
                                  0
                                  • xliborX xlibor

                                    Hi all, i try NRF51822-04 module with this sketch and Si7021 as GY-21 sensor, communication over radio works great, but i still got Humidity 118% and Temperature 128°C

                                    can anyone help me?

                                    Si7021 is connected to P0.10 - SCL and P0.4 - SDA

                                    W Offline
                                    W Offline
                                    waspie
                                    wrote on last edited by
                                    #117
                                    This post is deleted!
                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    19

                                    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