While building my custom Home Automation system for my apartment I already designed some actuators in the form of my RGBW Controller. Several of these control the lighting in some of my rooms. To "intelligently" use your actuators (e.g. light, power, ...) you need to collect some information first though. To do this I designed a MySensor based platform that can be connected to most of the available cheap sensor, digital and analog ones alike.
Some parts of my design are based on the Sensebender Micro and the Slim Battery node project. Both of them are great, but both of them had some "problems". One has no housing (and doesn't fit in most of the good ones I found), and the other has a housing but needs a lot of manual work to build. So I designed my own one which should be:
The node is based on an atmega 328P and the NRF24L01+. It supports signing by integrating an ATSHA204A and has an software controlled led onboard (for low power usage). Serial connection for debugging and a 6 pin ISP connection for programming can be added. The cases used are these from aliexpress but other should work too.
The board also includes all the needed capacitors and various options for powering the node:
I have added 2 6-pin connector rows to the board that breakout all the pins needed for all sensors I could think of. They include
I am running the nodes on 3.3V and 8MHz so you can use the arduino pro mini settings from the arduino ide if you want. I added some settings that also reduce BOD to 1.8V:
##############################################################
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock / 1.8V bod)
atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=19200
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x06
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard
Currently I have written software for a temperature/humidity sensor, a motion detector and a soil humidity sensor. The code for them can be found in my github repo but you could run pretty much every code from the mysensor forum too.
Update: I have just added a new sensortype using a LDR to measure the light level. I am using this in my controller to automatically turn on the lights once it gets darker. Code and pictures can be found here.
The holes in the pcb for the CR2032 battery holder are a little small and not perfectly placed. I could just file down the pins though for them to fit. I will change that in a future version. I might also add another jumper for the boost converter (atm you have to bridge 2 pins with some wire).
Just buy this cheap pcb (which is not perfect yet, see above) and add the parts from the BOM or just download the project or gerber files and send them to your preferred pcb manufacturer. The SMD atmega is the hardest part to solder but it can still be done with a small tip and some flux / solder wick.
Name | Size | # Downloads |
---|---|---|
MiniSensor-B.Cu.gbl | 48.66 kB | 796 |
MiniSensor-B.Mask.gbs | 1.87 kB | 769 |
MiniSensor-B.SilkS.gbo | 16.74 kB | 748 |
MiniSensor-Edge.Cuts.gml | 495 B | 800 |
MiniSensor-F.Cu.gtl | 73.02 kB | 798 |
MiniSensor-F.Mask.gts | 3.04 kB | 769 |
MiniSensor-F.SilkS.gto | 46.27 kB | 746 |
MiniSensor.drl | 1012 B | 687 |
MiniSensor.kicad_pcb | 138.76 kB | 784 |
MiniSensor.kicad_pcb-bak | 138.02 kB | 821 |
MiniSensor.net | 19.19 kB | 797 |
MiniSensor.pdf | 58.82 kB | 525 |
MiniSensor.sch | 21.74 kB | 820 |
Name | Size | # Downloads |
---|---|---|
Motion.ino | 3.17 kB | 799 |
SoilMoisture.ino | 5.04 kB | 741 |
Light.ino | 2.67 kB | 732 |