Skip to content
  • 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
K

ksga

@ksga
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store
About
Posts
27
Topics
2
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • 💬 NodeManager
    K ksga

    @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;
    }
    
    OpenHardware.io contest2017 arduino newbie mysensors battery sensor

  • 💬 NodeManager
    K ksga

    @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.

    OpenHardware.io contest2017 arduino newbie mysensors battery sensor

  • 💬 NodeManager
    K ksga

    @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...

    OpenHardware.io contest2017 arduino newbie mysensors battery sensor

  • 💬 NodeManager
    K ksga

    Way too cool solution :dancers:

    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 :+1:

    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

    OpenHardware.io contest2017 arduino newbie mysensors battery sensor

  • Help needed - SSR switch / SCR dimmer
    K ksga

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

    General Discussion

  • Help needed - SSR switch / SCR dimmer
    K ksga

    @Koresh
    Cool.. could you share the code?

    General Discussion

  • Help needed - SSR switch / SCR dimmer
    K ksga

    @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??

    General Discussion

  • !TSM:FPAR: FAIL !TSM: FAILURE TSM:PDT
    K ksga

    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.

    Troubleshooting

  • Help needed - SSR switch / SCR dimmer
    K ksga

    @Koresh
    Does your solution looks anything like this?

    General Discussion

  • Help needed - SSR switch / SCR dimmer
    K ksga

    @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

    General Discussion

  • Help needed - SSR switch / SCR dimmer
    K ksga

    @stedew
    But only if I have them before the ON/OFF relay ;)

    Okay... so when looking at the specs for the H11AA1 I can see that the maximum current on the input is 60mA.
    Looking at lthis I've reached the conclusion - that I believe you wanted me to - that I have to lower the ac current before the zero-cross detector using an AC/AC transformer.
    I'm having a bit of trouble finding a suitable (read - cheap) 240 / 6-0-6 AC/AC transformer. Any suggestions (prefer ebay or ali)??

    General Discussion

  • Help needed - SSR switch / SCR dimmer
    K ksga

    @stedew
    Hi Stefan, and thanks.

    I agree that I might have to crawl before I run ;)
    In the link you provided there are two 30k ½W resistors in front of the bridge rectifier. Would they not produce a lot of heat as well?
    He uses a bridge rectifier. As far as I know the only function of that is to convert AC to DC, but it would still be 240V and be in a waveform.
    The zero-point detector I ordered (based on the Arduino playground schematic) can handle a bi-directional input, as opposed to the 4n25 that is used on Instructables, so couldn't I just leave the rectifier out?

    General Discussion

  • 💬 Atmospheric Pressure Sensor
    K ksga

    @flopp
    That would be awesome. I have one in the mail and are trying to get things ready 😀

    It will replace my SI7021 on my solar powered node...

    Announcements pressure bmp085

  • 💬 Atmospheric Pressure Sensor
    K ksga

    Anybody feeling like adopting this to the BME280 and including temperature and humidity readings?? Low cost single chip and power usage looks fairly low...

    Announcements pressure bmp085

  • Help needed - SSR switch / SCR dimmer
    K ksga

    So - I decided to enter the 21st century and get me some of those LED bulbs for an old chandelier (5 bulbs). Ordered these, dimmable 4W filament bulbs.
    This however means that I will have to replace my old iron core dimmer switch with a SCR-type dimmer (according to the specs on the LED bulbs I ordered from our old chap Ali).

    I've been reading a bit about the topic, and I have come to the conclusion that the solution could be something based of this.
    It would be pretty awesome if it could be combined with this, but for the moment it might be better just to do a perfboard version to prove the concept.

    I need a bit of help on the phase control circuit from Arduino playground:
    R1, R2 and R3: What dissipation is required 1/4, 1/2 or 1 W ? (I assume R4 on the DC side can be as small as I like it to be).
    Where to put the SSR-relay? Position 1. or 2.?
    0_1480928436712_AC_PhaseControl_SSR.PNG

    And then of course the fun part. How to implement the code from Arduino playground in this code?

    General Discussion

  • 💬 Heatpump / airconditioner controller
    K ksga

    Too cool - I can make my heatpump beep and stuff from my smartphone - live will surely never be the same again :)

    There is one more trick I would love to teach it though - it seems that the code is prepared for "fan swing" commands, but they don't seem to be implemented in either the Arduino code, or in the LUA script for Domoticz.

    Does anyone have some pointers on how to activate these bits?

    OpenHardware.io mysensors infrared heatpump contest2016

  • Battery percentage - Help needed
    K ksga

    UPDATE:
    So I decided to go ahead and connect the ProMini and nrf24l01+

    Now the output from the terminal fluctuated between 80% and 105% with no real pattern.
    So I added a 0.22uf across R2

    Now the output is stable:

    Battery percent: 104 %
    

    I still only measure 0.63V across R2.
    I guess the remaining error could be written down to the 1.1V reference being off. I think I read somewhere that it can be 10% off!

    Hardware

  • Battery percentage - Help needed
    K ksga

    @m26872 Thank you for sticking with me.. I'm quite puzzled by this.
    Removed all caps. Added a 1k resistor in front of the LED.
    Checked resistance of wires - individually and mounted (all ~0.5 Ohm)

    Readings remain the same:
    0_1453755173541_IMG_20160125_214414.jpg

    Where does the last "0,63V" go - and should the fact that it is the same as the current over R2 teach me something?

    Hardware

  • Battery percentage - Help needed
    K ksga

    @m26872 I decided to trip everything from my breadboard and start over.
    First thing - the voltage divider:
    Simple Bat+ > pos.rail > R1 (1M, new specimen, verified resistance with multimeter) > R2(220k)/0.22uf capacitor > neg.rail > Bat-
    In paralel I added an LED to put a bit of load on the battery for more realistic current.

    The results are:
    Battery current: 4.03V
    Neg.rail to coupling point R1-R2: 0.61V
    Coupling point R1-R2 to Pos.rail: 2.78V

    Does that make any sense?
    I would expect 0.61V+2.78V=4.03V (or maybe I still haven't grasped the concept.)

    Hopefully this photo will make someone wiser than me point out my many mistakes ;-)
    0_1453742475955_IMG_20160125_181636.jpg

    Hardware
  • Login

  • Don't have an account? Register

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