Navigation

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

    ksga

    @ksga

    0
    Reputation
    27
    Posts
    577
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    ksga Follow

    Best posts made by ksga

    This user hasn't posted anything yet.

    Latest posts made by ksga

    • RE: 💬 NodeManager

      @user2684
      Tried again with adafruits library and got it working changing the address.
      But still can't get any useful data from it using NodeManager.

      Did a bit of copy/paste and got this code working (with adafruit and the alternative library):

      #define MY_RADIO_NRF24
      
      #include <MySensors.h>
      #include <SPI.h>
      #include <BH1750.h>
      #include <Wire.h>
      #include <BME280I2C.h>
      
      #define BARO_CHILD 0
      #define TEMP_CHILD 1
      #define HUM_CHILD 2
      #define CHILD_ID_LIGHT 3
      
      #define R1 687000
      #define R2 222000
      #define VMIN 3.30
      #define VMAX 4.18
      #define ADC_PRECISION 1023
      #define VREF 1.107
      
      unsigned long SLEEP_TIME = 300000;
      const float ALTITUDE = 10;
      
      BME280I2C bme;
      BH1750 lightSensor;
      
      MyMessage pressureMsg(BARO_CHILD, V_PRESSURE);
      MyMessage tempMsg(TEMP_CHILD, V_TEMP);
      MyMessage humMsg(HUM_CHILD, V_HUM);
      MyMessage lightMsg(CHILD_ID_LIGHT, V_LEVEL);
      
      float lastbaro = -1;
      float lasttemp = -1;
      float lasthum = -1;
      float lastlux = -1;
      float oldBatteryPcnt = -1;
      int BATTERY_SENSE_PIN = A0;
      
      void setup()
      {
        lightSensor.begin();
        bme.begin();
        analogReference(INTERNAL);
        pinMode(BATTERY_SENSE_PIN, INPUT);
        delay(100);
      }
      
      void presentation()
      {
        sendSketchInfo("BME280_BH1750", "1.1");
        present(BARO_CHILD, S_BARO);
        present(TEMP_CHILD, S_TEMP);
        present(HUM_CHILD, S_HUM);
        present(CHILD_ID_LIGHT, S_LIGHT_LEVEL);
      }
      
      void loop()
      {
        float baro_local = bme.pres() / 100.0;
        float baro = ( baro_local / pow((1.0 - ( ALTITUDE / 44330.0 )), 5.255));
        if (baro != lastbaro) {
            send(pressureMsg.set(baro,2));
            lastbaro = baro;
        }
        
        float temp = bme.temp();
        if (temp != lasttemp) {
            send(tempMsg.set(temp,1));
            lasttemp = temp;
        }
        
        float hum = bme.hum();
        if (hum != lasthum) {
            send(humMsg.set(hum,1));
            lasthum = hum;
        }
        
        float lux = lightSensor.readLightLevel();
        if (lux != lastlux) {
            send(lightMsg.set(lux,0));
            lastlux = lux;
        }
        float batteryPcnt = getBatteryPercentage();
        if (oldBatteryPcnt != batteryPcnt) {
        // Power up radio after sleep
        sendBatteryLevel(batteryPcnt);
        oldBatteryPcnt = batteryPcnt;
        }
        
        sleep(SLEEP_TIME);
        
      }
      
      float getBatteryPercentage()
      {
      delay(500);
      
      int inputValue = analogRead(BATTERY_SENSE_PIN);
      float voltageDividerFactor = (R1 + R2) / R2;
      float maxValue = voltageDividerFactor * VREF;
      float voltsPerBit = maxValue / ADC_PRECISION;
      float batteryVoltage = voltsPerBit * inputValue;
      float batteryPercentage = ((batteryVoltage-VMIN)/(VMAX-VMIN))*100;
      
      return batteryPercentage;
      }
      
      posted in OpenHardware.io
      ksga
      ksga
    • RE: 💬 NodeManager

      @user2684 Sorry about the delay - but life claimed some time (stupid life claiming time I want to use for stuff 😐 )

      Disabled MODULE_ANALOG_INPUT, MODULE_DIGITAL_INPUT and MODULE_DIGITAL_OUTPUT, and even tried without BH1750 - but still no luck.
      Node registers correctly and fires bogus data on one or two sensors...

      Pretty sure I have to use the other library - tried using Adafruit's examples, and it claims no BME is attached...

      I can make all the logic changes to NodeManager, but have not been able to initialize the sensor - maybe I could upload my edits to Git and someone could help me get the last bits together ???

      Made the changes here.

      posted in OpenHardware.io
      ksga
      ksga
    • RE: 💬 NodeManager

      @user2684 Yeah.. missed that it rebooted... Thanks.

      I cleared EEPROM again, recompiled with and without debug (no usable result without, so decided to add eyes again 🙂 )

      void before() part of the sketch looks like this:

      // before
      void before() {
        // setup the serial port baud rate
        Serial.begin(MY_BAUD_RATE);  
        /*
         * Register below your sensors
        */
        nodeManager.setSleep(SLEEP,1,MINUTES);
        nodeManager.registerSensor(SENSOR_BH1750);
        nodeManager.registerSensor(SENSOR_BME280);
        /*
         * Register above your sensors
        */
        nodeManager.before();
      }
      

      and config.h:

      /***********************************
       * NodeManager configuration
       */
      
      // if enabled, enable debug messages on serial port
      #define DEBUG 1
      //#define DEBUG 0
      
      // if enabled, will load the sleep manager library. Sleep mode and sleep interval have to be configured to make the board sleeping/waiting
      #define SLEEP_MANAGER 1
      // if enabled, enable the capability to power on sensors with the arduino's pins to save battery while sleeping
      #define POWER_MANAGER 0
      // if enabled, will load the battery manager library to allow the battery level to be reported automatically or on demand
      #define BATTERY_MANAGER 0
      // if enabled, allow modifying the configuration remotely by interacting with the configuration child id
      #define REMOTE_CONFIGURATION 1
      // if enabled, persist the remote configuration settings on EEPROM
      #define PERSIST 0
      
      // if enabled, send a SLEEPING and AWAKE service messages just before entering and just after leaving a sleep cycle and STARTED when starting/rebooting
      #define SERVICE_MESSAGES 0
      // if enabled, a battery sensor will be created at BATTERY_CHILD_ID and will report vcc voltage together with the battery level percentage
      #define BATTERY_SENSOR 0
      
      // Enable this module to use one of the following sensors: SENSOR_ANALOG_INPUT, SENSOR_LDR, SENSOR_THERMISTOR, SENSOR_MQ, SENSOR_ML8511
      #define MODULE_ANALOG_INPUT 1
      // Enable this module to use one of the following sensors: SENSOR_DIGITAL_INPUT
      #define MODULE_DIGITAL_INPUT 1
      // Enable this module to use one of the following sensors: SENSOR_DIGITAL_OUTPUT, SENSOR_RELAY, SENSOR_LATCHING_RELAY
      #define MODULE_DIGITAL_OUTPUT 1
      // Enable this module to use one of the following sensors: SENSOR_DHT11, SENSOR_DHT22
      #define MODULE_DHT 0
      // Enable this module to use one of the following sensors: SENSOR_SHT21
      #define MODULE_SHT21 0
      // Enable this module to use one of the following sensors: SENSOR_SWITCH, SENSOR_DOOR, SENSOR_MOTION
      #define MODULE_SWITCH 0
      // Enable this module to use one of the following sensors: SENSOR_DS18B20
      #define MODULE_DS18B20 0
      // Enable this module to use one of the following sensors: SENSOR_BH1750
      #define MODULE_BH1750 1
      // Enable this module to use one of the following sensors: SENSOR_MLX90614
      #define MODULE_MLX90614 0
      // Enable this module to use one of the following sensors: SENSOR_BME280
      #define MODULE_BME280 1
      
      #endif
      

      The serial output seems to show no reboot this time ;):

      REG I=1 P=18 P=16 T=37
      REG I=2 P=18 P=6 T=0
      REG I=3 P=18 P=7 T=1
      REG I=4 P=18 P=8 T=4
      NodeManager v1.4
      INT1 M=255
      INT2 M=255
      RADIO OK
      PRES I=200, T=23
      PRES I=1 T=16
      PRES I=2 T=6
      PRES I=3 T=7
      PRES I=4 T=8
      READY
      
      MY I=3 M=1
      BH1 I=1 L=-10924
      BME I=2 T=0.00
      SEND D=0 I=2 C=0 T=0 S= N=0 F=0.00
      BME I=3 H=0.00
      SEND D=0 I=3 C=0 T=1 S= N=0 F=0.00
      BME I=4 P=-793.67
      SLEEP 60s
      
      AWAKE
      BH1 I=1 L=-10924
      BME I=2 T=0.00
      SEND D=0 I=2 C=1 T=0 S= N=0 F=0.00
      BME I=3 H=0.00
      SEND D=0 I=3 C=1 T=1 S= N=0 F=0.00
      BME I=4 P=-793.67
      SLEEP 60s
      

      I would guess there should be enough memory on the arduino:

      Sketch uses 26.024 bytes (80%) of program storage space. Maximum is 32.256 bytes.
      Global variables use 1.262 bytes (61%) of dynamic memory, leaving 786 bytes for local variables. Maximum is 2.048 bytes.
      

      Definately not fixed 😞
      Maybe I could try adding support for the alternative BME library to NodeManager...

      posted in OpenHardware.io
      ksga
      ksga
    • RE: 💬 NodeManager

      Way too cool solution 👯

      I decided to give it a go with my Light/Baro/Hum/Temp node.
      Installed the dependencies from Adafruit, cleared EEPROM, compiled and flashed - no issues 👍

      The node reports the expected sensors to MyController.
      The BH1750 light sensor works like a charm, but I'm not getting anything from the BME280 except from a 0.0°C reading on temperature (which, even though spring is pretty lousy so far is a bit on the low side for my office).

      Output on serial looks like this:

      PWR G=6 V=7
      REG I=1 P=18 P=16 T=37
      REG I=2 P=18 P=6 T=0
      REG I=3 P=18 P=7 T=1
      REG I=4 P=18 P=8 T=4
      NodeManager v1.4
      INT1 M=255
      INT2 M=255
      RADIO OK
      PRES I=200, T=23
      PRES I=201, T=30
      BATT V=3.35 P=94
      SEND D=0 I=201 C=0 T=38 S= I=0 F=3.35
      PRES I=1 T=16
      PRES I=2 T=6
      PRES I=3 T=7
      PRES I=4 T=8
      READY
      
      MY I=1 M=1
      ON P=7
      BH1 I=1 L=2500
      SEND D=0 I=1 C=0 T=37 S= N=2500 F=0.00
      BME I=2 T=0.00
      SEND D=0 I=2 C=0 T=0 S= N=0 F=0.00
      BME I=3 H=69.25
      SEND D=0 I=3 C=0 T=1 S= N=0 F=69.25
      BME I=4 P=0.00
      SEND D=0 I=4 C=0 T=4 S= N=0 F=0.00
      OFF P=7
      SLEEP 300s
      
      AWAKE
      ON P=7
      BH@PWR G=6 V=7
      REG I=1 P=18 P=16 T=37
      REG I=2 P=18 P=6 T=0
      REG I=3 P=18 P=7 T=1
      REG I=4 P=18 P=8 T=4
      NodeManager v1.4
      INT1 M=255
      INT2 M=255
      RADIO OK
      PRES I=200, T=23
      PRES I=201, T=30
      BATT V=3.35 P=94
      SEND D=0 I=201 C=0 T=38 S= I=0 F=3.35
      PRES I=1 T=16
      PRES I=2 T=6
      PRES I=3 T=7
      PRES I=4 T=8
      READY
      
      MY I=1 M=1
      ON P=7
      BH1 I=1 L=9951
      SEND D=0 I=1 C=0 T=37 S= N=9951 F=0.00
      BME I=2 T=0.00
      SEND D=0 I=2 C=0 T=0 S= N=0 F=0.00
      BME I=3 H=69.25
      SEND D=0 I=3 C=0 T=1 S= N=0 F=69.25
      BME I=4 P=0.00
      SEND D=0 I=4 C=0 T=4 S= N=0 F=0.00
      OFF P=7
      SLEEP 300s
      

      The node was running fine for months using the same BH1750 library, but the BME280 library by Tyler Glenn.

      Any ideas?

      Should notice that I'm using this kind of BME280 from Ali

      posted in OpenHardware.io
      ksga
      ksga
    • RE: Help needed - SSR switch / SCR dimmer

      @Koresh
      No worries - all help is appreciated - fast or slow 🙂

      posted in General Discussion
      ksga
      ksga
    • RE: Help needed - SSR switch / SCR dimmer

      @Koresh
      Cool.. could you share the code?

      posted in General Discussion
      ksga
      ksga
    • RE: Help needed - SSR switch / SCR dimmer

      @FutureCow
      Looks like it. But no code published...
      Also - is the ESP8266 capable of handling the interrupts without messing up the timing when it is also responsible for communicating with the controller and the rest of the stuff??

      posted in General Discussion
      ksga
      ksga
    • RE: !TSM:FPAR: FAIL !TSM: FAILURE TSM:PDT

      I'm getting this error quite frequently when flashing new sketches to my nodes.
      Flash the EPROM clear sketch and reflash the sketch you want on the node should fix it.

      posted in Troubleshooting
      ksga
      ksga
    • RE: Help needed - SSR switch / SCR dimmer

      @Koresh
      Does your solution looks anything like this?

      posted in General Discussion
      ksga
      ksga
    • RE: Help needed - SSR switch / SCR dimmer

      @Koresh
      Sounds like a good plan. Have you shared the code/design anywhere?

      @stedew
      Thanks fo the link 🙂
      Browsed Ali and ebay, but shipping is killing me on these trafos.
      Got me wondering... a lot of cheap AC-DC transformers are flooding these sites in 5-12V variants.
      Why not just take one of those apart - salvage the trafo and scrap the rest?

      I only need a few hundred mA to run arduino, radio and relay...

      This is the kind of stuff I'm talking about (claims to be able to deliver 2A 5VDC - but that would only be if you had to start a fire...):
      0_1481269256312_IMG_20161209_083757.jpg
      0_1481269266253_IMG_20161209_083806.jpg

      posted in General Discussion
      ksga
      ksga