Navigation

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

    Posts made by user2684

    • RE: 💬 eGeoffrey

      @3more Looks like you email address was not marked as verified, I unblock it manually so you should be good to go now. Keep on eye on the spam folder in case something came or will go in there. Thanks!

      posted in OpenHardware.io
      user2684
      user2684
    • RE: 💬 eGeoffrey

      @3more thanks for letting me know, let me double check it and I'll let you know

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Nrf5x on NodeManager

      @Francisco_Elias if understood correctly you are experiencing troubles in making a door sensor working attached to a pin different than 3 right? If this is the case, it is an expected behaviour, since interrupt pins on arduino pro mini are 2 and 3, those are the only two in which NodeManager configure the interrupts, even if there are boards supporting more interrupt pins. Let me know if this is a too strict limitation or feel free to open an issue directly on Github (https://github.com/mysensors/NodeManager/issues).
      Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: Nrf5x on NodeManager

      @Francisco_Elias said in Nrf5x on NodeManager:

      The only thing I'm still trying to make it working is the Door sensor. Using Nodemanger is not working for me.

      In case you want to give a try to the development version of NodeManager (https://github.com/mysensors/NodeManager/tree/development) there have been a few enhancements to support this board. Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: Compilation error

      Hi, yes a few things have changed in the latest versions of the MySensors library and the current version of NodeManager is not compiling correctly. Give a try to the development version (https://github.com/mysensors/NodeManager/tree/development) in which the fix has been applied and let me know. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: Nodemanage + EasyPCB Sleep

      @MatiasV Probably you would also need to wait a bit before reading after powering on the sensor. You can try adding a delay (in millis) as third argument to setPowerPins() of PowerManager so before the reading would take place, the Power Manager will wait a bit after power on and before giving control back to the sensor.

      posted in NodeManager
      user2684
      user2684
    • RE: Nodemanage + EasyPCB Sleep

      @ElCheekytico my bad sorry I was referring to a PNP2222a or similar and for some reason I wrote down MCP1702. Yes, this is the approach I'm using as well, just pass the vcc pin which is activating the transistor hence powering on the sensor. You should use also some resistors, for sure to drive the base, potentially on the collector/emitter depending on the transistor you are using

      posted in NodeManager
      user2684
      user2684
    • RE: Nodemanage + EasyPCB Sleep

      @ElCheekytico from the NodeManager's side, yes preferred option is to use PowerManager and connect vcc and gnd pins of the sensors to the configured two pins so that NodeManager can turn them on and off all sensors in between sleeping cycles. For these situations I usually solder a MCP1702 or similar on the prototyping area of the EasyPCB and connect sensors from there so to keep it small and self-contained.

      posted in NodeManager
      user2684
      user2684
    • RE: Modular sketch to be configured with JSON (idea)

      @monte, I've implemented in PR https://github.com/mysensors/NodeManager/pull/517 something going in the direction you pointed out. Before explaining just a simple assumption first: NodeManager is intended to run on a number of different boards, most of them with limited memory so this capability has to take this constraint into consideration (hence no json parsing, reuse of existing communication mechanism, capability disabled by default, etc.)

      Apart from this, I found a sort of compromise to enable/disable sensors, even remotely and optionally persisting the status across a reboot. All the implementation details are within the PR (down below, the PR also include other enhancements) feel free to provide comments here or on Github. Hope it could be useful to avoid reimplementing the entire logic from scratch

      user2684 created this issue in mysensors/NodeManager

      closed Core Multiple Fixes #517

      posted in Development
      user2684
      user2684
    • Compatibility issue between MySensors 2.3.2 and NodeManager 1.8

      For those using NodeManager just keep in mind there is a compatibility issue between MySensors 2.3.2 and NodeManager 1.8 which causes the compiler to thrown an error. This has been fixed in the development branch of NodeManager (https://github.com/mysensors/NodeManager/tree/development).

      If you will face this problem, either use MySensors v2.3.1 or switch to the development version of NodeManager.

      By the way, development of the new release is going fast and I hope should be finalized in the next couple of months.
      Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      @justfra realizing only now the issue you reported was not ESP32 related but due to a compatibility issues between MySensors v2.3.2 and NodeManager just fixed in the development version with https://github.com/mysensors/NodeManager/pull/508. Either try the latest development version of NodeManager or use MySensors v2.3.1. Thanks

      user2684 created this issue in mysensors/NodeManager

      closed Compatibility with newer versions of MySensors #508

      posted in NodeManager
      user2684
      user2684
    • RE: Nrf5x on NodeManager

      @Puneit-Thukral I run some tests a while ago and had no issues but never had the chance to have something running seriously and continuously to really troubleshoot NodeManager's behaviour with this board. If anybody is willing to volunteer and run some in depth testing, of course let me know here or privately. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: Modular sketch to be configured with JSON (idea)

      @monte said in Modular sketch to be configured with JSON (idea):

      Imagine you have base firmwares for most sensor types, or it can be generated with NodeManager.

      I don't see specific technical limitations to have this working. On the NodeManager side would be:

      • Include in the sketch all the sensors you want, which is already there
      • Have a logic to configure sensors remotely, which is mostly there through SensorConfiguration (https://github.com/mysensors/NodeManager/blob/master/sensors/SensorConfiguration.h). If then the configuration is through individual messages or json, it makes little difference. There might be some configuration settings missing since not all are available OTA
      • Implement a logic for configuring only specific sensors. Shouldn't be that difficult, probably best is to have a enable/disable switch for each sensor (https://github.com/mysensors/NodeManager/issues/500), having all the sensors disabled by default and then dynamically enabling them

      Bottomline not something to put in place in a few minutes but all the building blocks are there. I do not have at this time spare cycle to spend unfortunately but feel free to start looking at it if you like.

      user2684 created this issue in mysensors/NodeManager

      closed Add option to enable/disable a sensor dynamically and remotely #500

      posted in Development
      user2684
      user2684
    • RE: Modular sketch to be configured with JSON (idea)

      @monte first of all I like the idea of having a multi-purpose sensor which can embody different "personalities" on the fly. NodeManager came in exactly for the purpose of providing a simple to configure, modular firmware with a set of predefined sensor ready to use.

      BUT this is defined at compilation time not at runtime as you are suggesting. Reason is simple: since there are 60+ ready-to-use sensors in NodeManager, accommodating everything especially in a small arduino is not feasible, also considering the dependencies some sensors bring in. I see usually up to 3-4 sensors can fit the flash, no more. But I expect in different environments the situation could be different or at least for a subset of those.

      All of this to say I believe NodeManager is a good starting point for what you are intended to do since you already have modular code for a good number of sensors, hooks for the different phases of the lifecycle and a way for communicating with the node through a "service" channel if you need to send something and act upon it. So feel free to fork the project (preferred way) or start from there.
      All of NodeManager's details can be found on https://github.com/mysensors/NodeManager
      Thanks

      posted in Development
      user2684
      user2684
    • RE: NodeManager sensors with multiple interrupt pins

      @j54n1n at this time NodeManager can only handle interrupts through the designated pins and only one type of interrupt per pin. But feel free to submit a feature request on https://github.com/mysensors/NodeManager/issues and, if you have, any piece of code which may help in the implementation. Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 eGeoffrey

      For anyone interested in it, I've recently published an eGeoffrey app for Android. It is available on Google Play, just search for eGeoffrey and you find it. Of course you would need the so called egeoffrey-gateway accessible to have the app connecting to it and working correctly

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Sonoff gateway: sketch uploads fine but doesn't run

      @kimot thanks you've definitely given to me the right direction to look into.

      Looks like my chip info is different and is the following:

      esptool.py v2.6
      Serial port COM7
      Connecting....
      Detecting chip type... ESP8266
      Chip is ESP8266EX
      Features: WiFi
      MAC: ec:fa:bc:86:da:e2
      Uploading stub...
      Running stub...
      Stub running...
      Manufacturer: 5e
      Device: 4014
      Detected flash size: 1MB
      Hard resetting via RTS pin...
      

      I see that manufacturer 5e is given problems to many people so I've followed the advice I found here https://forum.micropython.org/viewtopic.php?t=3777 to actually solve the issue, specifically flashing with the -fm dout flag (e.g. esptool.py --port COM5 write_flash -fs 1MB -fm dout 0x0 file.bin) and now it works!

      Many thanks!

      posted in Troubleshooting
      user2684
      user2684
    • Sonoff gateway: sketch uploads fine but doesn't run

      Pretty weird behaviour here. I have two sonoff bought a couple of years ago acting as mqtt gateways with this sketch https://www.mysensors.org/build/sonoff running perfectly fine.

      I've recently bought another couple and despite uploading the same sketch it just does not work (the two of them). Sketch and wiring is the same of those working, arduino IDE's settings the same, the output when flashing is the same without errors, the PCB layout is identical (the new model has just 3 screws for the case instead of one but doesn't matter).

      After flashing just nothing happens (no serial output, no relay switching when pressing the button, no connection to the mqtt broker). I'd say it is a broken unit but doesn't make sense having two out of two broken and still able to be flashed (I'd have received a timeout error if the chip was completely broken). Tried flashing already multiple times without luck.

      Anybody seen a similar behaviour? Any special protection added to the ESP8266 chip in recent models I need to take rid of?

      Thanks!

      posted in Troubleshooting
      user2684
      user2684
    • RE: Request for contribution - controller selection matrix

      @hek thanks! It took us way more than expected to re-architect all the thing but now that is ready, happy with the result so your positive feedback is appreciated 🙂 Legacy myHouse issue was mainly around extensibility hence this distributed, plugin-based architecture allowing users to package functionalities and/or contents without me doing any change in the core code. And turning it in a cloud-based service (as an option) could be also really easy. But for now the hope is to build a little community around it so to make it evolve further. Just as a starting point 🙂

      posted in Controllers
      user2684
      user2684
    • RE: Request for contribution - controller selection matrix

      Done it! (https://www.mysensors.org/controller/egeoffrey). I've already removed the legacy myHouse project and updated the spreadsheet. If there is anything wrong in the changes, just let me know. Do I also need to create a subcategory under https://forum.mysensors.org/category/3/controllers? Thanks!

      posted in Controllers
      user2684
      user2684
    • RE: Request for contribution - controller selection matrix

      Thanks all, yes I do have privileges to edit pages. Will work on it and when ready publish directly the changes. Should I face any issue in the process I'll get back here. Thanks again!

      posted in Controllers
      user2684
      user2684
    • RE: Request for contribution - controller selection matrix

      During the last year I've invested my spare time in re-designing and re-architecting my old Home Automation project called myHouse which was also acting as a MySensors controller (https://www.mysensors.org/controller/myhouse). Now, I've given the project a brand new name (eGeoffrey - https://www.egeoffrey.com) and despite the basic principles are the same (likewise MySensors support), now is supposed to be way simpler to configure, use, customize and extend. Before doing any change, @AWI is it the correct approach if I delete the existing myHouse entry from the controller section, add a new one for eGeoffrey (since it is replacing it) and do the same with the column of the matrix? (do I need any special permission for editing the spreadsheet?) Thanks!

      posted in Controllers
      user2684
      user2684
    • RE: NodeManager: hookon example needed

      @rpunkt sorry for replying to late...hooks are pretty simple to use in Nodemanager once you enable them. Just define your custom function and pass it to the hook. In the example below I'm activating a buzzer every time my fingerprint sensor is successful. The function will be executed every time (e.g. in this case after every loop() of fingerprint), up to you to implement your logic in the hook function.

      void bip(Sensor* sensor) {
        if (fingerprint.success) buzzer.setStatus(ON);
      }
      
      fingerprint.setPostLoopHook(&bip);
      
      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager on STM32F103C8 - RS485 Gateway + INA219 + OLED

      @adampr1 sorry for reading this thread only now with so much delay 😕 Nice project btw! Which compilation error are you receiving from Nodemanager? I also wonder if you can leverage Nodemanager's hooks capabilities to interact with it in a more clean way. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      @justfra thanks for reporting this issue, I believe there is some sort of library conflicts which is arising across MySensors/Nodemanager versions...something which has to be investigated carefully, I'll track this bug with https://github.com/mysensors/NodeManager/issues/491

      user2684 created this issue in mysensors/NodeManager

      closed ESP32 compilation error #491

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      @rpunkt you just need to set setSleepMinutes() which will automatically put the board to sleep for the given timeframe. At the end of it, any sensor due to report at that time or before it, will do

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

      @rpunkt you don't necessarily need to use an additional pin for ground, just set the value to -1 in case you don't need it (https://github.com/mysensors/NodeManager/blob/master/nodemanager/PowerManager.cpp#L34). The logic is when PowerManager is set, at the end of a sleep cycle, the virtual vcc pin is set to HIGH and all the sensors' loop are executed, then is set back to LOW and board goes back to sleep.
      To use it for all the sensors try just with:

      #define NODEMANAGER_POWER_MANAGER ON
      PowerManager power(5,6, 500);
      nodeManager.setPowerManager(power);
      

      Also ensure the sensor can work with the limited current the arduino's pin is able to provide. Thanks

      posted in OpenHardware.io
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      @rpunkt my recommendation would be to create a custom sensor in NodeManager which is implementing the logic you like. Feel free to copy from https://github.com/mysensors/NodeManager/blob/master/sensors/SensorVL53L0X.h and create your own or make your own class by inheriting directly from SensorVL53L0X.

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      @rpunkt just use those directives in your sketch, no differences with NodeManager, those will be seen by the MySensors library and applied. Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: Nrf5x on NodeManager

      @ncollins thanks for the at-mention! I've just got a NRF52832 shipped so when I'll get it I will run some tests by myself. So far tests on these platforms have been based on user feedback which is ok but not ideal since couldn't really test in an extensive way. I'll keep you posted. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: compile NodeManager for STM32F103C8 but I get error:

      @adampr1 thanks for letting me know. There are definitely a few issues with NodeManager on STM32 that need to be solved (https://github.com/mysensors/NodeManager/issues?utf8=✓&q=stm32)
      and specifically for the first problem I've added a reference to the existing ticket https://github.com/mysensors/NodeManager/issues/460.
      It will for definitely be fixed in the next release. Thanks!

      mitchmitchell created this issue in mysensors/NodeManager

      closed STM32 processor does not have analog reference available, constant DEFAULT not defined #460

      posted in NodeManager
      user2684
      user2684
    • RE: Values not presenting in DisplaySSD1306

      @getz99 I remember we had a similar issue with the display before releasing v1.8 but I was sure it was fixed. Do the values stay at 0 forever or just at the very beginning? Meanwhile I've opened https://github.com/mysensors/NodeManager/issues/469 so to track this down. Thanks

      user2684 created this issue in mysensors/NodeManager

      closed Values not presenting in DisplaySSD1306 #469

      posted in NodeManager
      user2684
      user2684
    • RE: Water pulse meter value not reported automatically

      Thanks @fredswed and @gomba777 I've added to the roadmap the capabilities you are referencing to from https://www.mysensors.org/build/pulse_water so the align with NodeManager's. I'll likely come back to you once the development will get to that point for reviewing the implementation if you don't mind. Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: Water pulse meter value not reported automatically

      @fredswed thanks for your analysis. I think you hit a bug here,I believe is correct that _total is set to 0 when the value is sent (so to start counting again) but it should not send that 0 value message. Keeping track with https://github.com/mysensors/NodeManager/issues/458

      user2684 created this issue in mysensors/NodeManager

      open SensorWaterMeter reports 0 just after reporting the value #458

      posted in NodeManager
      user2684
      user2684
    • RE: Water pulse meter value not reported automatically

      @fredswed ok looks like the interrupt is intercepted and accumulated value is calculated correctly but the values are just not sent at the specified interval, right? Try calling setReportIntervalSeconds()
      on waterMeter rather than nodeManager. When you call nodeManager.setReportIntervalSeconds(30), this is applied to all the sensors with a report interval not set yet. But since SensorPulseMeter already calls setReportIntervalMinutes() I believe NodeManager will skip it. Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: Water pulse meter value not reported automatically

      @fredswed if not specified, sensor will report every hour (https://github.com/mysensors/NodeManager/blob/master/sensors/SensorPulseMeter.h#L45). The sensor itself will take care of summing up the accumulated value along the timeframe

      posted in NodeManager
      user2684
      user2684
    • RE: Newbie, adding more than one relay to nodemanager

      @mghaff inside before() you have to call the function setInvertValueToWrite() on the relay you want to apply it to. E.g.

      relay1.setInvertValueToWrite(true);
      relay2.setInvertValueToWrite(true);
      .....
      
      posted in NodeManager
      user2684
      user2684
    • RE: Water pulse meter value not reported automatically

      @fredswed definitely not the expected behaviour 🙂 Can you please set NODEMANAGER_DEBUG to ON and share NodeManager's logs as well. This can help me debugging the issue on NodeManager's side.
      Only thing I can see from you code is the use of pin 2. If the Pro Mini is using the radio for transmission, that pin is already used by the radio. Try using pin 3. Thanks

      posted in NodeManager
      user2684
      user2684
    • RE: Newbie, adding more than one relay to nodemanager

      Hi @mghaff, just add additional instances of the relay and you can configure them individually. E.g.

      #include <sensors/SensorRelay.h>
      SensorRelay relay1(4);
      SensorRelay relay2(5);
      SensorRelay relay3(6);
      
      posted in NodeManager
      user2684
      user2684
    • RE: PM10 + PM2.5 + UV + Temperature + Humidity + Pressure + Weather Forecast + Light Sensor

      @nca78 thanks a lot for the hit, I'll buy what you recommended and try it out! And yes the DSM501 seems pretty useless right now, I thought was because of the power supply but doesn't look like the case. Thanks again

      posted in My Project
      user2684
      user2684
    • PM10 + PM2.5 + UV + Temperature + Humidity + Pressure + Weather Forecast + Light Sensor

      Despite the long name, it is a pretty simple sensor to build and program.

      0_1546189322015_1.png

      BOM is:

      • 1: @sundberg84 EasyPCB fro RFM69
      • 2: BME280 for Temperature + Humidity + Pressure + Weather Forecast (https://www.aliexpress.com/item/BME280-Digital-Sensor-Temperature-Humidity-Barometric-Pressure-Sensor-Module-I2C-SPI-1-8-5V-GY-BME280/32849462236.html)
      • 3: LDR sensor for light level (https://www.aliexpress.com/item/KY-018-3pin-Optical-Sensitive-Resistance-Light-Detection-Photosensitive-Sensor-Module-for-arduino-DIY-Kit-KY018/32820189174.html)
      • 4: ML8511 for UV rays (https://www.aliexpress.com/item/Analog-output-module-GY-ML8511-UV-UV-sensor-Sensor-Breakout/32533518448.html)
      • 5: DSM501A dust sensor for PM10 and PM2.5 (https://www.aliexpress.com/item/DSM501A-Dust-Sensor-Module-PM2-5-Detection-Dector-Allergic-Smoke-Particles-Sensor-Module-For-Arduino-For/32880813740.html)
      • 5a: two pair of 1K/400R resistors as a voltage divider for allowing the 3.3V arduino to read the two 4.8V outputs of the DSM501A
      • 6: USB TTL to power both the board with the 3.3v output and the DSM501A with the 5V output (https://www.aliexpress.com/item/1pcs-USB-to-TTL-converter-UART-module-CH340G-CH340-3-3V-5V-switch/32668180966.html)

      Of course this cannot run on batteries since the DSM501A requires at least 90mA to work.
      Wiring is pretty simple, with BME280 connect to A4-A5 for I2C communication, the LDR to an analog pin, ML8511 to another analog pin, DSM501A connected to two digital pins through the voltage resistor 5a.

      0_1546189567141_2.png

      All those sensors are supported by NodeManager so the code is super-simple, with the board reporting battery and signal level periodically as well. All sensors reporting every 5 minutes but the DSM501A reporting every 10 minutes (since for a measure it take 1-2 minutes):

      /**********************************
       * MySensors node configuration
       */
      
      // General settings
      #define SKETCH_NAME "DustTemp"
      #define SKETCH_VERSION "1.0"
      #define MY_NODE_ID 13
      
      // RFM69 radio settings
      #define MY_RADIO_RFM69
      #define MY_IS_RFM69HW
      #define MY_RFM69_NEW_DRIVER
      
      // Advanced settings
      #define MY_BAUD_RATE 9600
      #define MY_SPLASH_SCREEN_DISABLED
      
      /***********************************
       * NodeManager configuration
       */
      
      #define NODEMANAGER_DEBUG OFF
      #define NODEMANAGER_INTERRUPTS OFF
      #define NODEMANAGER_SLEEP OFF
      #define NODEMANAGER_RECEIVE OFF
      #define NODEMANAGER_DEBUG_VERBOSE OFF
      #define NODEMANAGER_POWER_MANAGER OFF
      #define NODEMANAGER_CONDITIONAL_REPORT OFF
      #define NODEMANAGER_EEPROM OFF
      #define NODEMANAGER_TIME OFF
      #define NODEMANAGER_RTC OFF
      #define NODEMANAGER_SD OFF
      #define NODEMANAGER_HOOKING OFF
      #define NODEMANAGER_OTA_CONFIGURATION OFF
      #define NODEMANAGER_SERIAL_INPUT OFF
      
      // import NodeManager library (a nodeManager object will be then made available)
      #include <MySensors_NodeManager.h>
      
      /***********************************
       * Add your sensors
       */
       
      #include <sensors/SensorBattery.h>
      SensorBattery battery;
      
      #include <sensors/SensorSignal.h>
      SensorSignal signal;
      
      #include <sensors/SensorLDR.h>
      SensorLDR ldr(A1);
      
      #include <sensors/SensorML8511.h>
      SensorML8511 ml8511(A0);
      
      #include <sensors/SensorBME280.h>
      SensorBME280 bme280;
      
      #include <sensors/SensorDSM501A.h>
      SensorDSM501A DSM501A(6,5);
      
      /***********************************
       * Main Sketch
       */
      
      // before
      void before() {
      	
        /***********************************
         * Configure your sensors
         */
      
        // DSM501A sensor
        DSM501A.setReportIntervalMinutes(10);
         
        // node configuration
        nodeManager.setReportIntervalMinutes(5);
         
        // call NodeManager before routine
        nodeManager.before();
      }
      
      // presentation
      void presentation() {
        // call NodeManager presentation routine
        nodeManager.presentation();
      }
      
      // setup
      void setup() {
        // call NodeManager setup routine
        nodeManager.setup();
      }
      
      // loop
      void loop() {
        // call NodeManager loop routine
        nodeManager.loop();
      }
      
      #if NODEMANAGER_RECEIVE == ON
      // receive
      void receive(const MyMessage &message) {
        // call NodeManager receive routine
        nodeManager.receive(message);
      }
      #endif
      
      #if NODEMANAGER_TIME == ON
      // receiveTime
      void receiveTime(unsigned long ts) {
        // call NodeManager receiveTime routine
        nodeManager.receiveTime(ts);
      }
      #endif
      

      And this is the final result (yes the box doesn't look really great):

      0_1546189773866_3.png

      Overall everything works fine even if I'm not that satisfied of the DSM501A sensor since most of the times it doesn't return a valid read (negative value which is then ignored) and when it does the value looks to me a bit too high (I should be already dead if this level of pollution would be real :P).

      0_1546190106354_4.png

      Hope it can help

      KY-018 3pin Optical Sensitive Resistance Light Detection Photosensitive Sensor Module for arduino DIY Kit KY018

      $0.51

      1pcs GY-8511 ML8511 UVB UV Rays Sensor Breakout Test Module Detector Analog Output with pin

      $2.86

      DSM501A Dust Sensor Module PM2.5 Detection Dector Allergic Smoke Particles Sensor Module For Arduino For Air Condition

      $3.49
      posted in My Project
      user2684
      user2684
    • RE: NodeManger with motion sensor

      Hi, SensorMotion set the interrupt to RISING this is why you see an event only. If you want to see both you need to call setInterruptMode(CHANGE) on your instance of SensorMotion somewhere in before() to customize the behavior.

      posted in NodeManager
      user2684
      user2684
    • RE: Arduino minimum hw requirements (Nano problems)

      Hi, despite the continuous effort to make NodeManager small in size to fit into any board, when there are a few sensors registered and/or features enabled you can have issues to fit the board's memory. I'm running most of the tests on Pro Mini boards so with the same memory layout of your Nano to put myself in a worst case scenario but especially when using sensors requiring external libraries, the memory consumption could become an issue. Start by disabling NodeManager debug once you trust your code enough as a starting point but if you need all of those features all together you may also consider a board with more memory available. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      Hello All, NodeManager v1.8 has just been released! I've opened up as usual a dedicated thread on the forum containing all the details of new release: https://forum.mysensors.org/topic/9944/nodemanager-v1-8-now-available

      posted in OpenHardware.io
      user2684
      user2684
    • NodeManager v1.8 now available!

      NodeManager v1.8 is finally here!

      With 8 months of development from 12 different contributors, the new NodeManager v1.8 ships now as an Arduino library to allow an easier integration, a more consistent upgrade process across the versions and a simpler way of using it.

      This version includes also a number of enhancements and bug fixes, a better integration with the MySensors library (including the capability to use the web-based Log Parser) and support for an additional 11 new sensors, with a grand total of 62 built-in sensors that can be added to your project by just a single line of code.

      NodeManager v1.8 can be downloaded directly from Github https://github.com/mysensors/NodeManager where detailed installation instructions are also provided.
      Please read the README file carefully before starting so to get a sense on how to use it or what has changed from the previous releases.

      The full release notes for this version are listed below:

      • Split NodeManager's core classes in individual files and each sensor code in its own dedicated header file
      • New Arduino-compatible library structure to allow easier integration and more consistent updates across version
      • Included a complete set of examples which can be loaded directly from the Arduino IDE
      • Simplified the template sketch with a global nodeManager object and sensors that can be imported directly from there
      • Debug output is now fully compatible with the one used by the MySensors library and integrated into MySensors LogParser
      • Better control on how often, if and when to sync the time with the controller for time-aware nodes
      • Added a Measure Timer so to allow splitting between taking measures and reporting
      • Added support for every sensor to keep track of the last value assigned to a child in EEPROM and restoring it upon a reboot
      • Introduced new capabilities for reporting every minute/hour/day or only at a given minute/hour/day
      • Added ability to read from the serial port at the end of each loop cycle, useful for debugging interactive sensors
      • Added support for pH sensor
      • Added support for PCA9685 as RGB/RGBW/W dimmer
      • Added support for DSM501A dust sensor
      • Added support for PN532 NFC RFID module
      • Added support for CCS811 CO2/VOC sensor
      • Added support for MPR121 Capacitive Touch Sensor
      • Added support for serial GSM/SMS device
      • Added support for FPM10A fingerprint sensor
      • Added support for SDS011 Air quality sensor
      • Added support for ESP32 devices
      • Added support for nRF52 radio
      • Improved SensorDigitalInput and NeoPixelSensor
      • Si7021 sensor is now using the library from the MySensors example
      • Reviewed the MQ Sensor implementation
      • Optimized memory utilization
      • Added Travis Continuous Integration tests
      • Fixed wrong battery report when using battery pin and SensorRain/SensorSoilMoisture
      • Fixed DigitalOutput safeguard not working as expected
      • Fixed radio signal level reporting wrong values
      • Fixed SensorLatchingRelay2Pins wrong pin selection
      • Other minor bug fixes
      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      @maddinthebrain sorry for the huge delay...would you mind sharing the logs? Also feel free to open an issue on https://github.com/mysensors/NodeManager/issues with the logs. Thanks!

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Is it possible to present an external sensor value on display with ModeManager

      Hi, not sure why I didn't get a notification even if mentioned directly, sorry for that. If you send a V_TEXT message to the SSD1306 child id in the format "<row_number>,<text>" then text will be printed at row_number (https://github.com/mysensors/NodeManager/blob/development/sensors/Display.h#L99). Not necessarily ideal for your use case since at the next refresh of the display the value would be lost so if you need to better control what it is displayed, probably best would be to create your custom class inheriting from DisplaySSD1306.h and implement your logic there. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: cant get setSafeguard to work with NodeManager 1.8dev

      Sorry for the delay first of all, unfortunately I didn't get the notification of this thread 😕 If you are using a latching relay I'd recommend using SensorLatchingRelay1Pin or SensorLatchingRelay2Pins which should take better all the aspects of a latching relay. Then you can still use the safeguard for closing the door after a given timeframe. And yes you have to set a reporting interval even if not intuitive at all. This is because the safeguard is checked in the loop cycle which is called only if a reporting interval is set. So if you have a safeguard set to 1 minute, the report interval should be 1 minute or less. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: Door + flood sensor

      @jhussain the board is the one pointed out by @mfalkvidd and as for the wiring it is very simple: the door sensor has one wire connected to pin 3 (since interrupt based) and the other to ground, the flood sensor has one connected to pin 6 (can be any) and the other to ground.

      posted in My Project
      user2684
      user2684
    • RE: 💬 NodeManager

      Hello all, NodeManager v1.8 is almost ready and likewise with the previous releases I like to give brave users a few weeks to test it out before actually releasing it. If you are one of those, download it from https://github.com/mysensors/NodeManager/tree/development; for a full list of changes, have a look at https://github.com/mysensors/NodeManager/projects/2.

      Of course feel free to open a ticket on Github for any issue you could come across. Thanks!

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

      @mhofer a few issues came out with conditional reporting during some recent tests, https://github.com/mysensors/NodeManager/pull/430 just merged into development should have solved them. Could you please give it a try? Thanks!

      user2684 created this issue in mysensors/NodeManager

      closed Fix conditional report issues #430

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Failure in library "TSL2561-Arduino-Library"

      @ab13akl thanks for confirming, I'll then close the issue on the NodeManager side but by keeping track of it other users facing the same problem should at least be able to identify it quicker and have a ready-to-use workaround, many thanks for sharing!

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      @reinhold oh you're right I didn't even noticed that DOOR would show up in the debug output, thanks. Anyway with v1.8-dev this should have gone since debug output has been completely re-worked (and made compatible with https://www.mysensors.org/build/parser). Thanks

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Failure in library "TSL2561-Arduino-Library"

      @ab13akl I was reviewing this in more details and if I have understood correctly the change you have made was in the Adafruit library, right? Do you think there is anything we can do on the NodeManager's side? Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      @reinhold just for completeness, that "DOOR" can be customized too by calling setDescription() of the (only) child of the SensorDoor instance. Thanks!

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

      @iteafreely your understanding is correct. I see two options here: you can either create a new custom sensor inheriting from SensorDoor and adding an additional child and the extra logic you require or create two instances of SensorDoor and playing with hooking functions to make one checking on the other. In this latter case you probably need some additional variables to keep track of the status.

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Sensor reporting after External Interrupt

      @john-oliva sorry for the delayed answer first of all, I got no notification of this thread unfortunately. Regarding the signed/unsigned int, you hit unfortunately a bug we are working on it right now in the development version (https://github.com/mysensors/NodeManager/pull/391); whether you use setReportIntervalMinutes() or setReportIntervalDays() in v1.7, still the underlying variable which stores the value is a signed int hence your input would not fit, sorry for that.

      Let me also clarify the difference between sensor.setReportIntervalMinutes() and node.setReportIntervalMinutes(). The latter would act as a sort of default value: if no report interval has been set by the user, this default value will be used. This is why it would not apply when already called to the sensor instance.

      As for the issue with reporting and external interrupt, if NodeManager is not time-aware it thinks when the interrupt occurred the entire sleep timeframe has elapsed and the timer is updated accordingly, even if only one second has passed by. Unfortunately I think there is no alternative, with or without NodeManager (MySensors' sleep() doesn't know and hence return the time actually slept). Only with a RTC attached NodeManager can know how much time has really elapsed and then the calculations are correct and put the node to sleep for the remainder timeframe.

      If the issue persists, would be great if you can share NodeManager's logs here so ti dig a bit more into it. Thanks!

      user2684 created this issue in mysensors/NodeManager

      closed Architecture Review #391

      posted in NodeManager
      user2684
      user2684
    • RE: Failure in library "TSL2561-Arduino-Library"

      @ab13akl thanks for reporting this issue, tracking it down with https://github.com/mysensors/NodeManager/issues/402, will definitely look at it throughout v1.8 development. Thanks again!

      user2684 created this issue in mysensors/NodeManager

      closed Failure in library "TSL2561-Arduino-Library" #402

      posted in NodeManager
      user2684
      user2684
    • RE: Clock with temperature, humidity and CO2 level sensors

      @zrom69 sorry for the delay! This is because I was using the development version of NodeManager available at https://github.com/mysensors/NodeManager/tree/development where SensorMQ implementation has been completely reviewed. Sorry for not making it clear!

      posted in My Project
      user2684
      user2684
    • RE: 💬 NodeManager

      @jiri-hron I think you can achieve what you need by using FEATURE_TIME. In this way when woken up, NodeManager will go back to sleep only for the remainder time left. Not ideal but I couldn't find a better way to understand for how long the node has been sleeping before the interrupt.

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Clock with temperature, humidity and CO2 level sensors

      @pihome sure will do!

      posted in My Project
      user2684
      user2684
    • RE: 💬 NodeManager

      @alowhum many thanks for the feedback, really appreciated!

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

      Every new version of NodeManager, I try to review and hopefully improve its architecture. This time looked like a simple and quick task but eventually ended up in a complete and deep review of the code. Many many many things have changed with the main objective to better integrate with the MySensors library and simplify the life of users willing to contribute or to add support for new sensors.

      The new file structure (with a dedicated file for each supported sensor) and the way the package is delivered (as an arduino library now) go into this direction. There are also included a good amount of new features but still in most of the cases, resulting a smaller code.

      All the details are available at https://github.com/mysensors/NodeManager/pull/391 which will be merged into the development branch shortly.

      Due to the many changes, if anybody would be willing to give it a try and report any bug, would be really great. Thanks!

      user2684 created this issue in mysensors/NodeManager

      closed Architecture Review #391

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Design a MySensors object with KiCad (french tutorial)

      @ericperonnin thanks a lot for the videos, I've just started with KiCad (with PCB design generally speaking) and starting from your tutorial has been an excellent way to get up to speed in a short time!

      posted in KiCad
      user2684
      user2684
    • RE: 💬 Power Meter Pulse Sensor

      @cstewy many thanks and very interesting. You basically saying it consumes less by waking up every 125ms rather than being asleep but with the sensor eating up current continuously. Definitely worth trying thanks! Meanwhile I've reduced the number of radio transmission and the batteries lasted for a couple of months but still is not ideal. Thanks! I'll try and report back

      posted in Announcements
      user2684
      user2684
    • Compact battery-powered motion + temperature + humidity project

      Very compact battery powered project based on @NeverDie Arduino Pro Mini Shield for RFM69(H)W board (https://www.openhardware.io/view/268/Arduino-Pro-Mini-Shield-for-RFM69HW) with attached a:

      • Mini Pir motion sensor (https://www.aliexpress.com/item/New-Arrival-Mini-IR-Pyroelectric-Infrared-PIR-Motion-Human-Sensor-Automatic-Detector-Module-high-reliability-12mm/32749804501.html)
      • SHT21 temperature + humidity sensor (https://www.aliexpress.com/item/HTU21D-SHT21-IIC-I2C-Digital-Temperature-Humidity-Sensor-Breakout-Board-Module-For-Weather-Stations-Humidor-Control/32846196764.html)

      I'd warmly recommend that PIR sensor, it's tiny, it works down to 2.7v (so not requiring any voltage regulator for this 3.3v project especially if the arduino runs at 1Mhz like all my boards), consumes nothing and produces very little false positives.

      Code and pictures down below.

      /**********************************
       * MySensors node configuration
       */
      
      // General settings
      #define SKETCH_NAME "Pir"
      #define SKETCH_VERSION "1.0"
      //#define MY_DEBUG
      #define MY_NODE_ID 6
      
      // RFM69 radio settings
      #define MY_RADIO_RFM69
      //#define MY_RFM69_FREQUENCY RFM69_433MHZ
      #define MY_IS_RFM69HW
      #define MY_RFM69_NEW_DRIVER
      //#define MY_RFM69_ENABLE_ENCRYPTION
      #define MY_RFM69_NETWORKID 110
      //#define MY_DEBUG_VERBOSE_RFM69
      //#define MY_RF69_IRQ_PIN D1
      //#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
      //#define MY_RF69_SPI_CS D2
      //#define MY_RFM69_ATC_MODE_DISABLED
      
      // Advanced settings
      #define MY_BAUD_RATE 9600
      //#define MY_SMART_SLEEP_WAIT_DURATION_MS 500
      #define MY_SPLASH_SCREEN_DISABLED
      //#define MY_DISABLE_RAM_ROUTING_TABLE_FEATURE
      //#define MY_SIGNAL_REPORT_ENABLED
      
      /***********************************
       * NodeManager modules for supported sensors
       */
      
      #define USE_BATTERY
      #define USE_SIGNAL
      #define USE_CONFIGURATION
      #define USE_SHT21
      #define USE_INTERRUPT
      
      /***********************************
       * NodeManager built-in features
       */
      
      // Enable/disable NodeManager's features
      #define FEATURE_DEBUG ON
      #define FEATURE_POWER_MANAGER ON
      #define FEATURE_INTERRUPTS ON
      #define FEATURE_CONDITIONAL_REPORT OFF
      #define FEATURE_EEPROM OFF
      #define FEATURE_SLEEP ON
      #define FEATURE_RECEIVE ON
      #define FEATURE_TIME OFF
      #define FEATURE_RTC OFF
      #define FEATURE_SD OFF
      #define FEATURE_HOOKING OFF
      
      /***********************************
       * Load NodeManager Library
       */
      
      #include "NodeManagerLibrary.h"
      NodeManager node;
      
      /***********************************
       * Add your sensors below
       */
      
      // built-in sensors
      SensorBattery battery(node);
      SensorConfiguration configuration(node);
      SensorSignal signal(node);
      
      // Attached sensors
      SensorSHT21 sht21(node);
      SensorMotion motion(node,3);
      
      /***********************************
       * Main Sketch
       */
      
      // before
      void before() {
        // setup the serial port baud rate
        Serial.begin(MY_BAUD_RATE);
        /*
        * Configure your sensors below
        */
      
        // battery sensor
        battery.setMinVoltage(1.8);
        battery.setMaxVoltage(3.2);
        
        // pir sensor
        motion.setInterruptMode(RISING);
        motion.setInitialValue(LOW);
      
        // sht21 sensor
        sht21.setReportIntervalMinutes(5);
      
        // node configuration
        node.setSleepMinutes(5);
        
        /*
        * Configure your sensors above
        */
        node.before();
      }
      
      // presentation
      void presentation() {
        // call NodeManager presentation routine
        node.presentation();
      }
      
      // setup
      void setup() {
        // call NodeManager setup routine
        node.setup();
      }
      
      // loop
      void loop() {
        // call NodeManager loop routine
        node.loop();
      }
      
      #if FEATURE_RECEIVE == ON
      // receive
      void receive(const MyMessage &message) {
        // call NodeManager receive routine
        node.receive(message);
      }
      #endif
      
      #if FEATURE_TIME == ON
      // receiveTime
      void receiveTime(unsigned long ts) {
        // call NodeManager receiveTime routine
        node.receiveTime(ts);
      }
      #endif
      

      0_1532192269076_1.png

      0_1532192281955_2.png

      HTU21D SHT21 IIC/I2C Digital Temperature & Humidity Sensor Breakout Board Module For Weather Stations Humidor Control

      $2.03
      posted in My Project
      user2684
      user2684
    • Door + flood sensor

      Pretty simple door + flood project based on @sundberg84 EasyPCB RFM69 board with attached a:

      • Flood sensor: https://www.aliexpress.com/item/DC-220V-Liquid-Water-Level-Sensor-Right-Angle-Float-Switch-for-Fish-Tank/32643554836.html
      • Door sensor: https://www.aliexpress.com/item/10pairs-lot-NC-and-NO-two-kinds-type-Wired-Metal-Roller-Shutter-Door-Magnetic-Contact-Switch/32843185792.html

      Both the sensors have one wire connected to Ground and on the other wire to an Arduino pin. Principle is simple: we write HIGH to the pin (or let NodeManager doing the job), when the sensor switches (e.g. the circuit is closed), we catch the FALLING interrupt (or the LOW value).

      Since battery powered, the door sensor has to be normally open (e.g. when the door is closed, the circuit is open and no current is wasted). Many Chinese vendors, at least from my experience, makes confusion on this topic and send the wrong one or call it in a wrong way. This is why I bought those sensors with both NO and NC, so I'm sure to have enough flexibility.

      Code with NodeManager's is pretty simple, down below. Only caveat is both the sensors theoretically would be interrupt based but on a Pro Mini there is only one usable pin for it. I've gone crazy trying to use PinChangeInterrupt with NodeManager so eventually I decided to go for the easy way: if there is a water leakage inside my house, I can wait up to 5 minutes, so I'm just polling the flood sensor's pin periodically and send the value to the controller at a regular interval (using SensorDigitalInput).

      Pictures of the project down below.

      /**********************************
       * MySensors node configuration
       */
      
      // General settings
      #define SKETCH_NAME "Door"
      #define SKETCH_VERSION "1.0"
      //#define MY_DEBUG
      #define MY_NODE_ID 5
      
      // RFM69 radio settings
      #define MY_RADIO_RFM69
      //#define MY_RFM69_FREQUENCY RFM69_433MHZ
      #define MY_IS_RFM69HW
      #define MY_RFM69_NEW_DRIVER
      //#define MY_RFM69_ENABLE_ENCRYPTION
      #define MY_RFM69_NETWORKID 110
      //#define MY_DEBUG_VERBOSE_RFM69
      //#define MY_RF69_IRQ_PIN D1
      //#define MY_RF69_IRQ_NUM MY_RF69_IRQ_PIN
      //#define MY_RF69_SPI_CS D2
      //#define MY_RFM69_ATC_MODE_DISABLED
      
      // Advanced settings
      #define MY_BAUD_RATE 9600
      //#define MY_SMART_SLEEP_WAIT_DURATION_MS 500
      #define MY_SPLASH_SCREEN_DISABLED
      //#define MY_DISABLE_RAM_ROUTING_TABLE_FEATURE
      //#define MY_SIGNAL_REPORT_ENABLED
      
      /***********************************
       * NodeManager modules for supported sensors
       */
      
      #define USE_BATTERY
      #define USE_SIGNAL
      #define USE_CONFIGURATION
      #define USE_DIGITAL_INPUT
      #define USE_INTERRUPT
      
      /***********************************
       * NodeManager built-in features
       */
      
      // Enable/disable NodeManager's features
      #define FEATURE_DEBUG ON
      #define FEATURE_POWER_MANAGER OFF
      #define FEATURE_INTERRUPTS ON
      #define FEATURE_CONDITIONAL_REPORT OFF
      #define FEATURE_EEPROM OFF
      #define FEATURE_SLEEP ON
      #define FEATURE_RECEIVE ON
      #define FEATURE_TIME OFF
      #define FEATURE_RTC OFF
      #define FEATURE_SD OFF
      #define FEATURE_HOOKING OFF
      
      /***********************************
       * Load NodeManager Library
       */
      
      #include "NodeManagerLibrary.h"
      NodeManager node;
      
      /***********************************
       * Add your sensors below
       */
      
      // built-in sensors
      SensorBattery battery(node);
      SensorConfiguration configuration(node);
      SensorSignal signal(node);
      
      // Attached sensors
      SensorDigitalInput flood(node,6);
      SensorMotion door(node,3);
      
      /***********************************
       * Main Sketch
       */
      
      // before
      void before() {
        // setup the serial port baud rate
        Serial.begin(MY_BAUD_RATE);
        /*
        * Configure your sensors below
        */
      
        // battery sensor
        battery.setMinVoltage(1.8);
        battery.setMaxVoltage(3.2);
        
        // door sensor
        door.setInitialValue(HIGH);
        door.setInterruptMode(FALLING);
        door.setInvertValueToReport(true);
      
        // flood sensor
        flood.setReportIntervalMinutes(5);
        flood.children.get(1)->setPresentation(S_BINARY);
        flood.children.get(1)->setType(V_STATUS);
      
        // node configuration
        node.setSleepMinutes(5);
        
        /*
        * Configure your sensors above
        */
        node.before();
      }
      
      // presentation
      void presentation() {
        // call NodeManager presentation routine
        node.presentation();
      }
      
      // setup
      void setup() {
        // call NodeManager setup routine
        node.setup();
      }
      
      // loop
      void loop() {
        // call NodeManager loop routine
        node.loop();
      }
      
      #if FEATURE_RECEIVE == ON
      // receive
      void receive(const MyMessage &message) {
        // call NodeManager receive routine
        node.receive(message);
      }
      #endif
      
      #if FEATURE_TIME == ON
      // receiveTime
      void receiveTime(unsigned long ts) {
        // call NodeManager receiveTime routine
        node.receiveTime(ts);
      }
      #endif
      

      0_1532190948397_1.png

      0_1532190963945_2.png

      DC 220V Liquid Water Level Sensor Right Angle Float Switch for Fish Tank

      $0.63

      10pairs/lot NC NO Magnetic Contact Switch Door Sensor Wired Metal Roller Shutter Door Home Alarm System

      $18.00
      posted in My Project
      user2684
      user2684
    • My first board (Arduino Pro Mini Shield for RFM69)

      I'm very new to Kicad and PCB design so I'd be very grateful if anybody has any thought, comment, suggestion, etc. to share regarding my first board. I'm sharing the entire kicad project at https://www.openhardware.io/view/605/Arduino-Pro-Mini-Shield-for-RFM69.
      Even something such as best practice/naming convention, etc. which may sound trivial for an experienced designer could be helpful for a beginner like me 🙂
      Thanks!

      posted in Hardware
      user2684
      user2684
    • RE: Battery powered fingerprint reader

      @scalz forgot to mention, other reason why I'm using a 1Mhz bootloader is because having other nodes at 1Mhz in my network for running on batteries below 2.8v, the gateway is 1Mhz as well and I've always noticed issues when mixing 1Mhz and 8Mhz nodes with RFM69 radio. Since 2.2.0 they can at least kind of communicate but due to the different speed I guess, sometimes something gets lost. With NRF24L01 mixing looks good instead.

      posted in My Project
      user2684
      user2684
    • RE: Clock with temperature, humidity and CO2 level sensors

      And if you don't like a hot MQ sensor just aside your bed, or want a 3.3v sensor or even something which can run on battery (even if not recommended) , you can try using a CCS811 which is more expensive (€7) than a MQ sensor but not as expensive as many other digital sensors for detecting e.g. CO2 (https://www.aliexpress.com/item/CJMCU-811-CCS811-Carbon-Monoxide-CO-VOCs-Air-Quality-Numerical-Gas-Sensor-Module/32846769569.html).
      There's a library on Adafruit. I'd not say it is that accurate for measurements but for sure way better than the MQ.

      CJMCU-811 CCS811 Carbon Monoxide CO VOCs Air Quality Numerical Gas Sensor Module

      $5.58
      posted in My Project
      user2684
      user2684
    • Clock with temperature, humidity and CO2 level sensors

      My bedside alarm clock recently got broken so I decided to build up one by myself.
      The prototype looks like that:
      0_1529326386412_1.png

      • 1: arduino pro mini 3.3v
      • 2: RFM69 radio
      • 3: MQ135 sensor to measure CO2 level
      • 4: 20k/10k voltage divider to connect the MQ AO pin to an analog pin of the arduino (the MQ sensor runs at 5v, the arduino at 3.3v so we need to "scale" the output)
      • 5: DS3231 RTC so when the power goes down the node will be able to restore its clock even without requesting time to the controller
      • 6: SHT21 sensor for temperature and humidity
      • 7: SSD1306 OLED display 128x64

      The "production" version looks like this:
      0_1529326672488_2.png
      I'm again using the versatile EasyPCB from @sundberg84, here in the middle. The voltage divider has been soldered on the board, where battery measurement level is used to be placed. Of course Vin is not connected but instead it is used for MQ's AO pin connection.
      The SH21 and MQ sensors are just outside the box so to have accurate readings. The project is powered by 0.5€ USB ttl Chinese key which allows to power both the board (3.3v) and the MQ sensor (5v).
      I've also added a push button, hidden within the case which will request the time to the controller for the first initialization of the RTC.

      As for the code this is what I'm using based on NodeManager (with the latest SensorMQ code change not yet merged into the development branch):

      /**********************************
       * MySensors node configuration
       */
      
      // General settings
      #define SKETCH_NAME "Clock"
      #define SKETCH_VERSION "1.0"
      //#define MY_DEBUG
      #define MY_NODE_ID 1
      
      // RFM69 radio settings
      #define MY_RADIO_RFM69
      //#define MY_RFM69_FREQUENCY RFM69_433MHZ
      #define MY_IS_RFM69HW
      #define MY_RFM69_NEW_DRIVER
      
      /***********************************
       * NodeManager modules for supported sensors
       */
      
      #define USE_SIGNAL
      #define USE_SHT21
      #define USE_INTERRUPT
      #define USE_MQ
      #define USE_SSD1306
      
      /***********************************
       * NodeManager built-in features
       */
      
      // Enable/disable NodeManager's features
      #define FEATURE_DEBUG OFF
      #define FEATURE_POWER_MANAGER OFF
      #define FEATURE_INTERRUPTS ON
      #define FEATURE_CONDITIONAL_REPORT OFF
      #define FEATURE_EEPROM OFF
      #define FEATURE_SLEEP OFF
      #define FEATURE_RECEIVE ON
      #define FEATURE_TIME ON
      #define FEATURE_RTC ON
      #define FEATURE_SD OFF
      #define FEATURE_HOOKING ON
      
      /***********************************
       * Load NodeManager Library
       */
      
      #include "NodeManagerLibrary.h"
      NodeManager node;
      
      /***********************************
       * Add your sensors below
       */
      
      // built-in sensors
      SensorSignal signal(node);
      
      // Attached sensors
      SensorSHT21 sht21(node);
      SensorMQ mq(node,A0);
      DisplaySSD1306 ssd1306(node);
      SensorInterrupt button(node,3);
      
      /***********************************
       * Main Sketch
       */
      
      void syncTime(Sensor* sensor) {
        // update the time with the controller
        node.syncTime();
        // update the display
        ssd1306.onLoop(ssd1306.children.get(1));
      }
      
      // before
      void before() {
        // setup the serial port baud rate
        Serial.begin(MY_BAUD_RATE);
        /*
        * Configure your sensors below
        */
      
        // temperature/humidity sensor
        sht21.setReportIntervalMinutes(5);
      
        // gas sensor
        mq.setReportIntervalMinutes(5);
        mq.setRoValue(56842);
        mq.setCurveScalingFactor(38.35);
        mq.setCurveExponent(-2.74);
        
        // display
        ssd1306.setReportIntervalSeconds(30);
      
        // button
        button.setInitialValue(HIGH);
        button.setInterruptMode(FALLING);
        button.setInterruptHook(&syncTime);
        
        /*
        * Configure your sensors above
        */
        node.before();
      }
      
      // presentation
      void presentation() {
        // call NodeManager presentation routine
        node.presentation();
      }
      
      // setup
      void setup() {
        // call NodeManager setup routine
        node.setup();
      }
      
      // loop
      void loop() {
        // call NodeManager loop routine
        node.loop();
      }
      
      #if FEATURE_RECEIVE == ON
      // receive
      void receive(const MyMessage &message) {
        // call NodeManager receive routine
        node.receive(message);
      }
      #endif
      
      #if FEATURE_TIME == ON
      // receiveTime
      void receiveTime(unsigned long ts) {
        // call NodeManager receiveTime routine
        node.receiveTime(ts);
      }
      #endif
      

      To show on the display only the information relevant for this project, I had to override DisplaySSD1306 onLoop() function in this way:

      void DisplaySSD1306::onLoop(Child* child) {
        long timestamp = now()+60*60*2;
        _oled->setCursor(0,0);
        // print the current date
        _oled->setFont(X11fixed7x14);
        _oled->print(F("    "));
        if (day(timestamp) < 10) _oled->print(F("0"));
        _oled->print(day(timestamp));
        _oled->print(F("-"));
        if (month(timestamp) < 10) _oled->print(F("0"));
        _oled->print(month(timestamp));
        _oled->print(F("-"));
        _oled->println(year(timestamp));
        // print the current time
        _oled->setFont(lcdnums12x16);
        _oled->set2X();
        if (hour(timestamp) < 10) _oled->print(F("0"));
        _oled->print(hour(timestamp));
        _oled->print(F(":"));
        if (minute(timestamp) < 10) _oled->print(F("0"));
        _oled->println(minute(timestamp));
        // print the sensors' data
        _oled->setFont(Adafruit5x7);
        _oled->set1X();
        _oled->println("");
        _oled->print(((ChildFloat*)_node->getChild(1))->getValueFloat());
        _oled->print(F("C "));
        _oled->print((int)((ChildFloat*)_node->getChild(2))->getValueFloat());
        _oled->print(F("% "));
        _oled->print(((ChildInt*)_node->getChild(3))->getValueInt());
        _oled->print(F("ppm"));
        _oled->clearToEOL();
      }
      

      Finally some pictures of the project once finalized:
      0_1529327416355_3.png

      0_1529327427911_4.png

      posted in My Project
      user2684
      user2684
    • RE: 💬 Gas Sensor

      I spent the last few days trying to get a sense out of the black magic behind the calculations used for this sensor.
      I got the math now but still there is something I feel like it is not completely accurate with the current implementation.
      First of all the resulting ppm seems like a sort of normalized value; since I know e.g. CO2 ppm in clean air is around 400, the code seems not to take this into consideration. Also, configure it with a different MQ sensor doesn't seem an easy task.
      For these reasons I've tried starting from scratch, inspired by http://davidegironi.blogspot.com/2014/01/cheap-co2-meter-using-mq135-sensor-with.html#.WyLQo6qFNn5.
      Starting point is the power function y = a*x^b. The way to make the code more generic is to let the user provide the coordinates of two points (like @APL2017 was suggesting a while ago) which is an easy task and let the code solve the two equations and derive the values of a and b. Then, since ppm = a(rs/ro)^b, with a known value of ppm (e.g. the concentration in clear air of the gas, for co2 is 411), the equation can be solved for Ro by measuring Rs from the adc. Once a, b and Ro are known, the ppm comes naturally by solving again ppm = a(rs/ro)^b.
      I'm not sure this is better than the other methods but at least I get the same results from the blog above, both in terms of values of a, b and Ro as well as a real value of CO2 ppm measured with a MQ135.
      The downside of this of course is the difficulty to provide a known value of ppm for the calibration for other gas like e.g. Ch4, but if I claim I'm showing a ppm value, I want to be sure this is a real ppm 🙂
      The code is here, within the dev branch of NodeManager, any feedback would be appreciated!
      https://github.com/user2684/NodeManager/blob/19e37a45792be4d698a1316bf6eb4f954a8455f5/NodeManagerLibrary.ino#L2441

      posted in Announcements
      user2684
      user2684
    • RE: 💬 NodeManager

      @felix-haverkamp got it, thanks, I've opened this issue https://github.com/mysensors/NodeManager/issues/366.

      Regarding the sensor motion, weird, by default should attach to CHANGE interrupt so to intercept both. Any chance to share NodeManager's debug log as well? Thanks

      user2684 created this issue in mysensors/NodeManager

      closed Improve the documentation #366

      posted in OpenHardware.io
      user2684
      user2684
    • RE: MPR121 or other capacitive touch sensor

      @nick-willis interesting thanks, adding it to the queue for the next release (https://github.com/mysensors/NodeManager/issues/365)

      user2684 created this issue in mysensors/NodeManager

      closed Add support for MPR121 Capacitive Touch Sensor #365

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager: TTP229 does not send Passcode

      @hard-shovel @igork hi guys, I've just come across this thread. Not sure if you got the problem solved, if not, please let me know or open an issue on the NodeManager's github page. Thanks!

      posted in Troubleshooting
      user2684
      user2684
    • RE: 💬 NodeManager

      @felix-haverkamp if you set setValueDelta() to e.g. 0.1 or 0.01, then the sensor will not report if the value has not changed, if I have understood correctly your point. setValueDelta() will set the minimum difference (+ or -) that the new value should have in order to be reported. Let me know I've misunderstood something. Thanks

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

      @felix-haverkamp the signal node is supposed to send the RSSI when the radio supports it. What you are looking at is a v1.7 bug, fixed in the dev branch of v1.8. If you want an easy fix without the need to upgrade, just remove the uint32_t cast at line 5017 of NodeManagerLibrary.ino (https://github.com/mysensors/NodeManager/blob/master/NodeManagerLibrary.ino#L5017).
      To send the values only if the value has changed, you need first of all to turn FEATURE_CONDITIONAL_REPORT on, then you can use setValueDelta() and setForceUpdateMinutes() of the Child class to achieve what you are looking for

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Battery powered fingerprint reader

      @scalz thanks for advice first of all. Agree, the 1Mhz clock was unnecessary for this project but I usually leverage this configuration not because of the power consumption but mainly to allow the board running with 2 AA batteries way below 3V. But for sure an over complication here 🙂
      @crankycoder the fingerprint sensor should be able to keep track of 200+ fingerprint which have to be enrolled first (through a windows utility or an ad-hoc arduino sketch). Regarding the library in NodeManager I've integrated the Adafruit's one, the one on sparkfun seems designed for a different sensor.

      posted in My Project
      user2684
      user2684
    • Battery powered fingerprint reader

      This project is about a battery powered fingerprint sensor I placed just outside the door of my house. The last person leaving the house or the first entering it would use the sensor so the controller could arm/disarm the alarm but of course can be used to control anything (e.g. opening the door). Since the controller gets the id of the fingerprint when there is a match, would also know who is entering the house so greeting the person by name out loud (kind of funny :P).

      The fingerprint sensor I'm using is a FPM10A that can be found on Aliexpress for 5$ (https://www.aliexpress.com/item/Fingerprint-Reader-Sensor-Module-FPM10A-Optical-Fingerprint-Fingerprint-Module-Locks-Serial-Communication-Interface-For-Arduino/32835820214.html).
      Wiring is pretty simple (http://www.duino.lk/image/cache/catalog/Components/fingerprint scaner/fingerprint_sensor_6pwhs7n-500x500.jpg) , it uses a serial connection for the communication and sample code and a library is available from Adafruit (together with a Windows utility that can be used for troubleshooting and for enrolling your fingerprints).

      If battery powered, the sensor cannot of course stay always on since consuming around 150mAh. This is why I've attached a button to the project so the person using it can press the button, the node wakes up, the sensor turns on and the person can put the finger on it. After that, the board goes back to sleep. I've also added a buzzer to shortly beep in case of a positive match.

      This is how the project looks like:
      alt text

      • 1: EasyPCB from @sundberg84 RFM69 version
      • 2: FPM10A sensor. RX and TX connected to pin 5 and 6 (using SoftwareSerial).
      • 3: MCP1302 voltage regulator to provide 3.3v out of the 3 AA batteries (4.5v). I preferred using this configuration since the FPM10A works so so when the voltage is below 3v. The regulator is placed in the booster position so to measure the battery level
      • 4: battery measurement, resistors 1M and 300k ohm
      • 5: since the FPM10A has to be powered on only on demand and an arduino pin cannot provide enough current, I'm using a pn2222a transistor connected to an arduino pin on one side through a 220ohm resistor (with a 10k resistor going to ground) and the FPM10A gound on the other side
      • 6: button for waking up the board and starting the fingerprint sensor
      • 7: 3 AA battery pack
      • 8: buzzer

      This is the code I'm using (from the NodeManager's development branch):

      /**********************************
       * MySensors node configuration
       */
      
      // General settings
      #define SKETCH_NAME "Fingerprint"
      #define SKETCH_VERSION "1.0"
      #define MY_NODE_ID 9
      
      // RFM69 radio settings
      #define MY_RADIO_RFM69
      #define MY_IS_RFM69HW
      #define MY_RFM69_NEW_DRIVER
      
      // Advanced settings
      #define MY_BAUD_RATE 9600
      #define MY_SPLASH_SCREEN_DISABLED
      
      /***********************************
       * NodeManager modules for supported sensors
       */
      
      #define USE_BATTERY
      #define USE_SIGNAL
      #define USE_DIGITAL_OUTPUT
      #define USE_INTERRUPT
      #define USE_FPM10A
      
      /***********************************
       * NodeManager built-in features
       */
      
      // Enable/disable NodeManager's features
      #define FEATURE_DEBUG ON
      #define FEATURE_POWER_MANAGER ON
      #define FEATURE_INTERRUPTS ON
      #define FEATURE_CONDITIONAL_REPORT OFF
      #define FEATURE_EEPROM OFF
      #define FEATURE_SLEEP ON
      #define FEATURE_RECEIVE ON
      #define FEATURE_TIME OFF
      #define FEATURE_RTC OFF
      #define FEATURE_SD OFF
      #define FEATURE_HOOKING ON
      
      /***********************************
       * Load NodeManager Library
       */
      
      #include "NodeManagerLibrary.h"
      NodeManager node;
      
      /***********************************
       * Add your sensors below
       */
      
      // built-in sensors
      SensorBattery battery(node);
      SensorSignal signal(node);
      PowerManager power(-1,A1,1000);
      
      // Attached sensors
      SensorFPM10A fingerprint(node,5,6);
      SensorDigitalOutput buzzer(node,A5);
      
      /***********************************
       * Main Sketch
       */
      
      void bip(Sensor* sensor) {
        if (fingerprint.success) buzzer.setStatus(ON);
      }
      
      // before
      void before() {
        // setup the serial port baud rate
        Serial.begin(MY_BAUD_RATE);
      
        // battery sensor
        battery.setMinVoltage(3.2);
        battery.setMaxVoltage(4.6);
        battery.setBatteryInternalVcc(false);
        battery.setBatteryPin(A0);
        battery.setBatteryVoltsPerBit(0.00459433);
      
        // buzzer sensor
        buzzer.setPulseWidth(20);
        
        // fingerprint sensor
        fingerprint.setPowerManager(power);
        fingerprint.setWaitFingerForSeconds(15);
        fingerprint.setInterrupt(3,FALLING,HIGH);
        fingerprint.setPostLoopHook(&bip);
      
        // node configuration
        node.setSleepMinutes(60);
      
        node.before();
      }
      
      // presentation
      void presentation() {
        // call NodeManager presentation routine
        node.presentation();
      }
      
      // setup
      void setup() {
        // call NodeManager setup routine
        node.setup();
      }
      
      // loop
      void loop() {
        // call NodeManager loop routine
        node.loop();
      }
      
      #if FEATURE_RECEIVE == ON
      // receive
      void receive(const MyMessage &message) {
        // call NodeManager receive routine
        node.receive(message);
      }
      #endif
      
      #if FEATURE_TIME == ON
      // receiveTime
      void receiveTime(unsigned long ts) {
        // call NodeManager receiveTime routine
        node.receiveTime(ts);
      }
      #endif
      

      Basically the node sleeps and wakes up every hour to report battery and signal level. When the button (attached to pin 3) is pressed, the node wakes up and the FPM10A is powered on by PowerManager (which turns HIGH pin A1 so saturating the transistor and activating the sensor). If there is a fingerprint match, then the fingerprint id is sent back to the gateway and the node goes back to sleep. Before doing so a short "bip" is sent to the buzzer.
      If nothing happens for 15 seconds, the node goes back to sleep regardless.

      Just a little trick, since I'm running all my arduino nodes at 1Mhz, the FPM10A has to be configured to work at 9600 baud (57600 is the default). The only library that I found with a working example to change this into the device is the following https://github.com/brianrho/FPM/blob/master/examples/setParam/setParam.ino

      Fingerprint Reader Sensor Module FPM10A Optical Fingerprint Fingerprint Module Locks Serial Communication Interface For Arduino

      $5.79
      posted in My Project
      user2684
      user2684
    • RE: Battery-powered irrigation controller

      @ionu very sorry for missing your reply for more than 6 months but I didn't get any notification 😞 Your understanding is correct, if you just connect the + and - of the battery to the valve you should hear a "click" and if you reverse the wire, another "click". I wonder if that battery would be powerful enough, I've noticed that valve drains really a lot of current (>1A) when triggering. Try with AA batteries at first, just to check if the valve is functioning.

      My project has evolved over the time, let me share a picture below:
      0_1528148437750_irrigation.png

      • 1: is the amazing EasyPCB from @sundberg84 RFM69 version
      • 2: since the valve works at 3.7v I'm powering the project with 3 AA batteries. I've noticed the valve works just fine with 4.5v when full, till down to around 3v
      • 3: this is a step down regulator for providing 3.3v to the arduino and the radio. I've soldered it there on the EasyPCB (where a booster is supposed to be soldered) since I needed to use the voltage divider which is not available when using the voltage regulator spot. For this reason the battery is connected to the "<=3.3" plug
      • 4: this is the voltage divider for measuring the battery, since we have 4.5v I've coupled the 1M with a 300k
      • 5: this is the bi-stable valve. Can be found on amazon for 5 euros. Ships from china of course
      • 6: this is a 2200uF capacitor placed between the + and the - of the H bridge controlling the valve. Without it, the huge current drain would destroy the battery shortly
      • 7: this is an analog rain sensor. It is powered on by an arduino pin so to save battery while sleeping
      • 8: this is an analog soil moisture. It is powered on by an arduino pin so to save battery while sleeping
      • 9: this is a button to manually turn the valve on or off. It is connected to the arduino pin 3
      • 10: this is the H-bridge capable of controlling the valve since rated at 2A

      The code I'm using, based on NodeManager, is the following:

      /**********************************
       * MySensors node configuration
       */
      
      // General settings
      #define SKETCH_NAME "Irrigation"
      #define SKETCH_VERSION "2.0"
      #define MY_NODE_ID 6
      
      // RFM69 radio settings
      #define MY_RADIO_RFM69
      #define MY_IS_RFM69HW
      #define MY_RFM69_NEW_DRIVER
      
      // Advanced settings
      #define MY_BAUD_RATE 9600
      #define MY_SMART_SLEEP_WAIT_DURATION_MS 1000
      #define MY_SPLASH_SCREEN_DISABLED
      
      /***********************************
       * NodeManager modules for supported sensors
       */
      
      #define USE_BATTERY
      #define USE_SIGNAL
      #define USE_CONFIGURATION
      #define USE_ANALOG_INPUT
      #define USE_DIGITAL_OUTPUT
      #define USE_INTERRUPT
      
      /***********************************
       * NodeManager built-in features
       */
      
      // Enable/disable NodeManager's features
      #define FEATURE_DEBUG ON
      #define FEATURE_POWER_MANAGER ON
      #define FEATURE_INTERRUPTS ON
      #define FEATURE_CONDITIONAL_REPORT OFF
      #define FEATURE_EEPROM OFF
      #define FEATURE_SLEEP ON
      #define FEATURE_RECEIVE ON
      #define FEATURE_TIME OFF
      #define FEATURE_RTC OFF
      #define FEATURE_SD OFF
      #define FEATURE_HOOKING ON
      
      /***********************************
       * Load NodeManager Library
       */
      
      #include "NodeManagerLibrary.h"
      NodeManager node;
      
      /***********************************
       * Add your sensors below
       */
      
      // built-in sensors
      SensorBattery battery(node);
      SensorConfiguration configuration(node);
      SensorSignal signal(node);
      PowerManager power(-1,A1,300);
      
      // Attached sensors
      SensorRain rain(node,A4);
      SensorSoilMoisture soil(node,A5);
      SensorInterrupt button(node,3);
      SensorLatchingRelay2Pins valve(node,5,6);
      
      /***********************************
       * Main Sketch
       */
      
      void toggleValve(Sensor* sensor) {
        valve.toggleStatus();
      }
      
      // before
      void before() {
        // setup the serial port baud rate
        Serial.begin(MY_BAUD_RATE);
        /*
        * Configure your sensors below
        */
      
        // battery sensor
        battery.setMinVoltage(3.2);
        battery.setMaxVoltage(4.6);
        battery.setBatteryInternalVcc(false);
        battery.setBatteryPin(A0);
        battery.setBatteryVoltsPerBit(0.00459433);
        battery.setReportIntervalMinutes(30);
      
        //signal sensor
        signal.setReportIntervalMinutes(30);
      
        // valve
        valve.setSafeguard(60);
        valve.setWaitAfterSet(2000);
        valve.setLegacyMode(true);
      
        // button
        button.setInterruptHook(&toggleValve);
        button.setInitialValue(HIGH);
        button.setInterruptMode(FALLING);
        button.setInvertValueToReport(true);
        node.setInterruptDebounce(1000);
        
        // rain sensor
        rain.setPowerManager(power);
        rain.setReportIntervalMinutes(10);
        rain.setRangeMin(300);
        rain.setReverse(true);
      
        // soil moisture sensor
        soil.setPowerManager(power);
        soil.setReportIntervalMinutes(10);
        soil.setRangeMin(500);
      
        // node configuration
        node.setSleepSeconds(60);
       
        /*
        * Configure your sensors above
        */
        node.before();
      }
      
      // presentation
      void presentation() {
        // call NodeManager presentation routine
        node.presentation();
      }
      
      // setup
      void setup() {
        // call NodeManager setup routine
        node.setup();
      }
      
      // loop
      void loop() {
        // call NodeManager loop routine
        node.loop();
      }
      
      #if FEATURE_RECEIVE == ON
      // receive
      void receive(const MyMessage &message) {
        // call NodeManager receive routine
        node.receive(message);
      }
      #endif
      
      #if FEATURE_TIME == ON
      // receiveTime
      void receiveTime(unsigned long ts) {
        // call NodeManager receiveTime routine
        node.receiveTime(ts);
      }
      #endif
      

      Rain and soil moisture are connected to A4 and A5, reports every 10 minutes and are powered on just before taking the measure through pin A1. The button through the hooking function toggles the valve, when pressed. The valve (or better the H-bridge) is connected through pin 5 and 6 (off and on). The node wakes up every minute to pick up from the controller new orders (using smart sleep). There is also a safeguard of 60 minutes (if something goes wrong with the communication, irrigation is turned off regardless after 60 minutes).

      posted in My Project
      user2684
      user2684
    • RE: 💬 NodeManager

      @arthurdented the I_POST_SLEEP_NOTIFICATION and I_PRE_SLEEP_NOTIFICATION are due to smart sleep which is on by default. Regarding the V_VOLTAGE I think what it comes closer to your need would be a SensorBattery configured with a very short reporting interval but regardless, when an interrupt occurs, no sensors other than the one associated with the interrupt would execute their main function. For your specific use case you can try changing or tweaking the condition at this line to make it working in the way you need: https://github.com/mysensors/NodeManager/blob/master/NodeManagerLibrary.ino#L4700

      posted in OpenHardware.io
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      @grau the current door sensor implementation (SensorDoor class) leverages attachInterrupt(); not sure how many interrupt pins are there on a ESP8266 but if there are enough it should work

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 Power Meter Pulse Sensor

      I tried to build something similar and it is working nicely, thanks for sharing the idea! However, I've noticed the light sensor (alone) consumes 1mA constantly which is quite a lot when used for a battery powered project. Even if I report to the controller once per hour (summing up the power consumption along the way), still the light sensor needs to be always on, meaning I'd probably need to replace batteries after a month or so. Is there any workaround or alternative sensor which I can use or am I doing something completely wrong? Thanks

      posted in Announcements
      user2684
      user2684
    • RE: 💬 NodeManager

      @cpl_ir super weird, looks like the linker cannot find NodeManager's object file. Are you sure all NodeManager's files are within the same directory? NodeManager cannot be installed as a standard Arduino's library but all the files need to be in the same directory of your main sketch. Thanks!

      posted in OpenHardware.io
      user2684
      user2684
    • RE: Power / pulse meter

      @simbo is this by chance happening because while the node is going to sleep or resume from it the interrupt is lost or because when the value of the interrupt is checked (HIGH or LOW) it is already back to the original value and so the change is not detected? Just trying to understand better, for sure I've never run a test with interrupts in less than one second so this is potentially a bug. Also, any code you can share would help in debugging the issue. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: SetsleepSeconds is not a member of class NodeManager

      @usernobody even if you're right, gateway and sleep do not fit very well, it should compile just fine. Do you have the compilation error to share? Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      @mvader thanks for the feedback, I've added this issue on Github so to fix this in the next dev release https://github.com/mysensors/NodeManager/issues/344

      user2684 created this issue in mysensors/NodeManager

      closed Sensebender: power LDR on pin 7 #344

      posted in OpenHardware.io
      user2684
      user2684
    • RE: NodeManager v1.7-beta: feedback needed

      @nick-willis strange, I run exactly the same test and was working fine, I wonder if there was any change in the code just after messing this up. I will test it again, meanwhile if you can collect NodeManager's logs based on this configuration and share would be great. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager v1.7 now available!

      @getz99 thanks for the feedback! By default each sensor/child prints on the screen its description and for a DS18B20 is its address, this is why you see that strange string 🙂 Of course you can change it in before() with:

      ds18b20.children.get(1)->setDescription("Whatever you like");
      
      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      Hi, the new version of NodeManager (v1.7) is now available! For those interested in having a look at the new features, supported sensors and capabilities, I've opened a dedicated thread on the forum here https://forum.mysensors.org/topic/9165/nodemanager-v1-7-now-available
      Thanks

      posted in OpenHardware.io
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      Hi, the new version of NodeManager (v1.7) is now available! For those interested in having a look at the new features, supported sensors and capabilities, I've opened a dedicated thread on the forum here https://forum.mysensors.org/topic/9165/nodemanager-v1-7-now-available
      Thanks

      posted in NodeManager
      user2684
      user2684
    • NodeManager v1.7 now available!

      It took a few months but finally NodeManager v1.7 is here!
      With this release the entire NodeManager's architecture has been reviewed, mainly to improved the overall user experience and optimize the code so to use the memory in a more efficient manner. If coming from the previous release, you will find NodeManager way easier to use and more powerful now.
      Last but nost least the number of built-in sensors has no reached 52 (yes, fifty-two, including support for LCD displays), which can be enabled by just uncommeting a single line. For these sensors NodeManager will take care of importing the required library, presenting them to the gateway/controller, executing periodically the main function of the sensor, all without an additional line of code.

      Collaboration for this release has been also great with 15 PRs from other users of the community who I want to really thank.

      NodeManager v1.7 can be downloaded directly from Github https://github.com/mysensors/NodeManager.
      Please read the README file carefully before starting so to get a sense on how to use it or what has changed from the previous releases.

      The full release notes for this version are listed below:

      • Reviewed the entire NodeManager's architecture with children now automatically created from within each sensor
      • Optimized the code so to use the memory in a more efficient manner
      • Improved the overall user experience, also with sensors' patterns in the main sketch
      • Sensors can now be enabled by uncommenting the corresponding USE_* define and requiring a single line to be created and initialized
      • NodeManager's advanced features can be enabled/disabled by setting the corresponding FEATURE_* define
      • Simplified the configuration of each sensor, now without the need of getting the sensor back through a nasty casting
      • Merged config.h into the main sketch so to centralize the configuration in a single place
      • Added time-aware capability, with or without an attached RTC
      • Intra-sensor communication now possible with the possibility for the user to nicely hook into the sensor's code
      • Battery and signal reports are now available through the regular sensors SensorBattery and SensorSignal
      • Remote API interaction for all the sensors has been moved into the regular sensor SensorConfiguration
      • Fixed bug preventing negative temperatures to be reported for all the sensors
      • Added ability for each sensor to report only when value is above or below a configured threshold
      • Addded support for SD card reader
      • Added support for RFM95 radio
      • Added supoport for MySensors Sensebender Gateway and Sensebender Micro boards
      • Added support for generic LCD devices through an abstract Display class
      • SensorDimmer now supports both V_STATUS and V_PERCENTAGE
      • SensorPulseMeter now supports running on batteries
      • SensorDs18B20 optimized and now supporting V_ID
      • SensorSwitch (now renamed into SensorInterrupt) now catches interrupt in a more reliable way
      • SensorLatchingRelay now specialized and renamed into SensorLatchingRelay1Pin and SensorLatchingRelay2Pins
      • Added support for HD44780 i2c LCD
      • Added support for MG996R Servo sensor
      • Added support for VL53L0X laser time-of-flight distance sensor
      • Added support for SensorPlantowerPMS particulate matter sensors
      • Added support for SHT31 temperature and humidity sensor
      • Added support for SI7021 temperature and humidity sensor
      • Added support for for Neopixel LED
      • Added support for Chirp Sensor soil moisture sensor
      • Added support for SparkFun RGB and Gesture Sensor
      • Added support for TTP226/TTP229 Touch control sensor
      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager v1.7-beta: feedback needed

      @nick-willis good advice, let me see if I can add this just before releasing v1.7 (https://github.com/mysensors/NodeManager/issues/334). Regarding the 21.60 etc. is because each child has a float precision set and if set to two (the default), two decimals will be always reported, regardless of the sensor. You can customize it with something like this:

      dht22.children.get(1)->float_precision = 1;
      

      Thanks

      user2684 created this issue in mysensors/NodeManager

      closed Add option to configure delta for conditional reporting #334

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager v1.7-beta: feedback needed

      @nick-willis thanks for the feedback first of all! You're right, there is a mistake in the documentation related to the Sensor API, I'll fix it ASAP. Anyway, once you turn FEATURE_CONDITIONAL_REPORT on, you can call the following independently for each sensor:

      // [7] if true will report the measure only if different than the previous one (default: false)
          void setTrackLastValue(bool value);
          // [9] if track last value is enabled, force to send an update after the configured number of minutes
          void setForceUpdateMinutes(int value);
      

      I wonder though if this would work as expected even if you need a single decimal comparison (e.g. since a float is stored and the float precision set is not considered when e.g. temperature changes from 20.11 to 20.19, it will get reported which is not what you are expecting). I'll check this one out too. Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager v1.7-beta: feedback needed

      @pragtich cool! Glad the new features have been helpful for you and thanks for sharing your example

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager v1.7-beta: feedback needed

      @pragtich thanks very clear now. I wonder if a way to achieve what you are trying to accomplish can be by leveraging https://github.com/mysensors/NodeManager/pull/312 which is basically allowing to add custom code by hooking into the different sensors' functions. You could add a callback into loop which is calling setValueInt() to the child which will eventually be reported to the gateway, provided a reporting interval is set. Would this be useful? Thanks!

      user2684 created this issue in mysensors/NodeManager

      closed Inter-sensor communication #312

      posted in NodeManager
      user2684
      user2684
    • RE: NodeManager v1.7-beta: feedback needed

      @joris-pragt thanks for your feedback first of all! The way I'm using things here is to make the node sleeping at e.g. 1 hour intervals so it will report its heartbeat once awake, but still keeping onLoop() empty. Would it be feasible in your case as well? Ideally I'd prefer not to report the same value without an interrupt because some controller may act upon it, even if is not changed. Let me know if I've missed something.
      Thanks!

      posted in NodeManager
      user2684
      user2684
    • RE: 💬 NodeManager

      Hi, for anybody interested in giving the upcoming NodeManager v1.7 a try or share a feedback, please have a look at https://forum.mysensors.org/topic/9085/nodemanager-v1-7-beta-feedback-needed. Thanks!

      posted in OpenHardware.io
      user2684
      user2684
    • RE: NodeManager: plugin for a rapid development of battery-powered sensors

      Hi, for anybody interested in giving the upcoming NodeManager v1.7 a try or share a feedback, please have a look at https://forum.mysensors.org/topic/9085/nodemanager-v1-7-beta-feedback-needed. Thanks!

      posted in NodeManager
      user2684
      user2684
    • NodeManager v1.7-beta: feedback needed

      Hi, NodeManager v1.7 is almost ready and all the major features and bug fixes for this release have been now implemented. For those willing to give it a try to identify any potential issue or just share a comment, please feel free to do so (https://github.com/mysensors/NodeManager/tree/development).

      There are no compatibility issue with the MySensors library but an automatic upgrade from NodeManager v1.6 is not possible due to a deep architecture review.

      Please review the README file and the release notes for a summary of the new features. For a full list of what has changed please refer to https://github.com/mysensors/NodeManager/milestone/9?closed=1.

      Ideally I'd love to release it in a couple of weeks if no major issues will be reported. Thanks in advance!
      Thanks!

      posted in NodeManager
      user2684
      user2684