A Multi-Use Mini Sensor Platform

OH MySensor Platform

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.

Design

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:

  • small: smaller then 5x5cm so that they can be cheaply produced but not square so that they can be used with small cases
  • low profile: it should be using small smd parts that you can still solder by hand so that it fits in a small case together with a sensor and a battery
  • have easily accessible connections for most sensors

 

Hardware

The node is based on an at mega 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.

Power

The board also includes all the needed capacitors and various options for powering the node:

  • by adding an external battery (e.g. 2xAA) and using a (3-pin)boost converter and/or an AMS1117 voltage converter to reach the desired voltage level. Both of these can be bridged (the AMS has jumper pins build into the design) if you don’t want to use them
  • use the pins for a CR2032 battery holder and bridge the booster/converter
  • use an external power brick (and bridge booster/converter)

Sensors

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

  • SDA/SCL pins (pull-ups are on the board too) for I2C sensors like the HTU21D and Si7021
  • both these pins are switched on the other row and directly beside GND/power, so that you should be able to directly solder the sensor breakout boards to the pcb
  • D2/D3 pins of the at mega which are the digital pins that controller the interrupts 0 and 1 (for something like switches and motion sensors)
  • A1 and A2 to be able to connect analog sensors like a plant/soil humidity sensor

Software

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: at mega
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 git hub repo but you could run pretty much every code from the my sensor forum too.

Update: I have just added a new sensor type 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.
Read More: A Multi-Use Mini Sensor Platform

Leave a Comment

Your email address will not be published. Required fields are marked *