💬 NModule Temperature, Humidity, Light, Door sensor shield
-
Great, I think this case should fit nicely. http://www.ebay.com/itm/5PCS-Small-Desk-top-Plastic-Enclosure-Box-Case-White-51x36x20mm-CASE-025-A1-5/192269740428
Internally it is 43 x 28(30) x 16 . Almost perfect for us without much choice (read: without 3d printer) :) -
Hello, I have tested the following things on this shield :
- i2c sensors
- door sensor: simple reed switch and NO/NC reed switch
- led: through hole and SMD
- running on CR2032 battery
Everything is fine, so I'm removing the "work in progress" flag :)
-
Awesome!
Just a question, the CR2032 battery would be "sandwiched" between the nmodule and the shields?
Also, if the shield is not used, then the battery would be on the same side where the radio is (based on photos), but are you then using the "power" part of the board as the shield? Or wiring it manually? Or does the "power" part acts as another "power shield"?
Would be great if you could elaborate this part, maybe on the nmodule itself, about how to assemble it together with the cr2032 battery (or maybe I missed something :( )p.s. you can update the shields description in the table with shields on the main module https://www.openhardware.io/view/364/NModule#tabs-instructions
-
Awesome!
Just a question, the CR2032 battery would be "sandwiched" between the nmodule and the shields?
Also, if the shield is not used, then the battery would be on the same side where the radio is (based on photos), but are you then using the "power" part of the board as the shield? Or wiring it manually? Or does the "power" part acts as another "power shield"?
Would be great if you could elaborate this part, maybe on the nmodule itself, about how to assemble it together with the cr2032 battery (or maybe I missed something :( )p.s. you can update the shields description in the table with shields on the main module https://www.openhardware.io/view/364/NModule#tabs-instructions
@dakipro yes it is, you can see the edge of the CR2032 on the first picture in NModule project.
You have 2 different way to do it for the battery:
- use shield with CR2032 holder, like this one of the ADXL shield, in this case the battery is inserted from the side between NModule and the shield
- use "power" part of the NModule, in this case the CR2032 holder and capacitor on the shield are left empty, the board is wider but it will be thinner because you can put the shield very close to NModule
It just depends on what is more suitable for your use case, what enclosure you found etc.
Here are some images I think it will makes things more clear than writing 3 pages of explanations.
(I use those for testing so I use headers to be able to plug various shields, of course final soldered boards should be soldered to be more thin and more rigid)NModule with "power" part used for CR2032 and 2xAAA:

NModule with no "power" part and using the CR2032 on the Door/TH sensor shield:

-
I am probably annoying you with the questions, but I do hope they will benefit the board and the modules :)
One more about magnetic reed switches, you are recommending the ones that are registering both open and closed, due to battery consumption. And it makes sense to use them, but I would like to use them outside the module casing, and it is difficult to find them with their own casing, like the "normally closed" ones (case only improves waf, but still important... :) ).
Does it make significant difference for doors that open-close 5-10 times a day, is it worth the hassle to go for 3 pin ones and somehow improvise on the casing, or is it easier to just buy more batteries :) -
I am probably annoying you with the questions, but I do hope they will benefit the board and the modules :)
One more about magnetic reed switches, you are recommending the ones that are registering both open and closed, due to battery consumption. And it makes sense to use them, but I would like to use them outside the module casing, and it is difficult to find them with their own casing, like the "normally closed" ones (case only improves waf, but still important... :) ).
Does it make significant difference for doors that open-close 5-10 times a day, is it worth the hassle to go for 3 pin ones and somehow improvise on the casing, or is it easier to just buy more batteries :)@dakipro the problem is not the number of opening of the doors. It's the time the door stays closed. Because with "normal" reed switch when the magnet is in front the switch is closed and you have some current flowing through the reed switch. It's not catstrophic but it will probably cut the battery life in half.
You can find them on aliexpress they are not very expensive, and I see no reason to put the reed outside of casing, I suppose it's to hide the case away from view, but then you have a wire from your case to the door and it's pretty ugly too :P -
Well I can do it the easy way as you are describing it :)
Half the battery time is significant then. I now opened one of the "simple" reeds that have their own enclosure, and it is possible to remove 2 pin reed and replace it with 3pin one (just dig out hot glue). Thin white wire from nmodule to the reed should not be noticeable in the frame.

Red is the reed switch, and yes I can put the module on the corner of the doors and have it hidden since most of the doors are open entire day. But in a few years when we redecorate I am planning to get 5V-12V in all the rooms, it will approximately come on the green circle, then I can hide entire nmodule inside the wall, and just have a thin wire to the reed sensor. (I will probably even put reed inside the frame of the doors and put wire inside the wall, but I need a proof of concept for now :) )
-
@Nca78 can you please check the "drill holes" file in the source for this shield, I was testing pcbs.io and it complained about "Gerber Normalization Failed For Layer: Drill Holes". (all works fine for the main nModule)
On oshpark I get "I can't find a board outline file." (I get this error on oshpark for all the boards/layouts)
-
@Nca78 can you please check the "drill holes" file in the source for this shield, I was testing pcbs.io and it complained about "Gerber Normalization Failed For Layer: Drill Holes". (all works fine for the main nModule)
On oshpark I get "I can't find a board outline file." (I get this error on oshpark for all the boards/layouts)
-
@dakipro I just tested on pcbs.io and :
- if I put all the "design" files folder in the zip I upload, I have a "duplicate drill file" error
- if I remove the product.txt file (which is a "legal" thing related to license but has same txt extension than drill files) then pcbs.io seems happy with the upload and shows me the "drill holes" images
-
Ahh... its been a few years since I ordered a pcb last time, forgot all the details :)
Thank you, it works like you described it, I am now looking forward to making the modules :)btw, I found out that local library has a 3d printer I could use, so I am hoping to make a few different/similar cases for the modules.
I am also considering the motion sensor together with light/temp/door... But I will start "simpler" for now, also waiting for your progress report on the nModule motion shield for the best sensor to pickThanks again
-
hi, I was just playing around with the code while I wait for the boards, and I noticed the use of
ArduinoSystemStatus library, as mentioned in the code#include <SystemStatus.h> // Get it here: https://github.com/cano64/ArduinoSystemStatusBut the library on github does not have a getVCCPercent() method as used in the code on line 262
currentBatteryPercent = SystemStatus().getVCCPercent(BATTERY_VCC_MIN, BATTERY_VCC_MAX);Do you remember where did you download SystemStatus from, I couldn't find anything on google nor github.
The code does not compile with library from the link above (as method is missing). I guess it is not difficult to replace it, but perhaps it is worth mentioning. -
hi, I was just playing around with the code while I wait for the boards, and I noticed the use of
ArduinoSystemStatus library, as mentioned in the code#include <SystemStatus.h> // Get it here: https://github.com/cano64/ArduinoSystemStatusBut the library on github does not have a getVCCPercent() method as used in the code on line 262
currentBatteryPercent = SystemStatus().getVCCPercent(BATTERY_VCC_MIN, BATTERY_VCC_MAX);Do you remember where did you download SystemStatus from, I couldn't find anything on google nor github.
The code does not compile with library from the link above (as method is missing). I guess it is not difficult to replace it, but perhaps it is worth mentioning.@dakipro yes it's strange, all reference I find when looking for the method point to MySensors forum.
I don't remember writing this method, but I probably did. I will either make a proper fork of the library, or update my code to include the GetVccPercent method.
Before that here is the method
In h file in "public:" :int getVCCPercent(int vccMin, int vccMax);In c file :
int SystemStatus::getVCCPercent(int vccMin, int vccMax) { int vcc = getVCC(); if (vcc > vccMax) { return 100; } else if (vcc < vccMin) { return 0; } else { return (10 * (vcc - vccMin)) / ((vccMax - vccMin) / 10); } } -
Thanks, I wrote something similar "inline" just to get the node out.
I also noticed that reed switch is not mentioned in the code (or I missed it). Not that it is difficult to implement, but maybe you have some more improvements :)To be honest, I wasn't expecting any source code for the node so I really appreciate that you shared it, and also made it very clear and easy to use. I also like optimizations related to the CR battery, so thank you for that
-
I made a sketch for both normal and NO/NC reed switch, I will check and publish it.
-
As mentioned on the nModule thread, I finally managed to get it to work.
And as usual, I have a few questions @Nca78 :)From your photos of the module, you have a door sensor separate from the light/temperature, is that only "strategical" choice, or is it some technical limitation?
Meaning, would it be possible to have all of them on one sensor, as TempHumLighDoor sensor?And I might be pushing it now, but... would it be possible to add a motion sensor on top of that? Can you connect two sensors on same interrupt pin? (both interrupts are occupied by the no-nc door sensor, thus leaving no interrupt for motion sensor) or is there some fancy trick that would allow both of them to be "interruptable"?
-
As mentioned on the nModule thread, I finally managed to get it to work.
And as usual, I have a few questions @Nca78 :)From your photos of the module, you have a door sensor separate from the light/temperature, is that only "strategical" choice, or is it some technical limitation?
Meaning, would it be possible to have all of them on one sensor, as TempHumLighDoor sensor?And I might be pushing it now, but... would it be possible to add a motion sensor on top of that? Can you connect two sensors on same interrupt pin? (both interrupts are occupied by the no-nc door sensor, thus leaving no interrupt for motion sensor) or is there some fancy trick that would allow both of them to be "interruptable"?
@dakipro said in 💬 NModule Temperature, Humidity, Light, Door sensor shield:
From your photos of the module, you have a door sensor separate from the light/temperature, is that only "strategical" choice, or is it some technical limitation?
Meaning, would it be possible to have all of them on one sensor, as TempHumLighDoor sensor?It's a choice, you can use them both at the same time. But for me it's not convenient as the doors are not the place where I want to put the temp/hum sensors.
So yes you can have a TempHumLightDoor sensor.And I might be pushing it now, but... would it be possible to add a motion sensor on top of that? Can you connect two sensors on same interrupt pin? (both interrupts are occupied by the no-nc door sensor, thus leaving no interrupt for motion sensor) or is there some fancy trick that would allow both of them to be "interruptable"?
If you go this way the more simple is to use only interrupt 3 with a high value resistor and a normally opened reed. It will leave you with interrupt 2. Power consumption is not going to be as low as with no/nc reed, but if you're including a PIR your battery life on a CR2032 will drop severely so it won't matter much to have 2-3 uA more for the door sensor.
The other solution is to use pin change interrupts, it's not very difficult in itself, but you have to rewrite a sleep function that manages them as the sleep function in MySensors will not.
-
And no mixing interrupt from any other sensor with the no/nc reed switch will not work
-
I see. How about using CR123 battery for such a "all-in-one" sensor, I see it has 5-6 times capacity of CR2032.
Would it be able to drive such sensor for a year perhaps (i know it is impossible to say, but just speculating)?
Or two AAAs?@dakipro I would go for the CR123 you will last over one year with it with 1MOhm resistor for the reed switch and a AM312 PIR.
AAA will have less available capacity because the AM312 will fail a bit below 2.7V so a big share of their capacity will be wasted, while CR123 will have around 10% of capacity left.