EasySensors / ButtonSizeNode

The Button Size Node is a low cost wireless Arduino IDE compatible (the Atmel ATMega328P) micro-controller + RFM69HW(HCW) 915, 868 or 433 MHz radio on-board. BS2032
16 stars 4 forks source link

enter image description here enter image description here

The Button Size Node is a low cost wireless Arduino IDE compatible (the Atmel ATMega328P 8MHz) microcontroller with RFM 69 HW(CW) radio on board and few other nice additions.

Best sutable for Home Automation, IOT. Could be used as core board for radio controlling any DIY project. You may think of it as Arduino Pro Mini plus all the items in the picture below::

Specification:

Pin out:

Arduino Pins Description
A0, A1 Available ARDUINO analog GPIO / DIGITAL GPIO
A6 Connected to Battery voltage sensor (via divider)
A4 Connected to si1132 and bh1750 SDA
A5 Connected to si1132 and bh1750 SCL
A3 Connected to ATSHA204A
D3, D4, D5, D6,D7, D9 Available ARDUINO digital GPIO
D8 Connected to CS FLASH chip (OTA) M25P40
MISO, MOSI, SCK, RST Connected to ISP header
ANT RFM69 antenna
Vcc and Bat+ Unregulated power up to 6.5 Volts
Gnd Ground
Scissors line you cat cut with scissors, sensors and battery holder part, if you need just controller and radio

Arduino IDE Settings

Arduino IDE Settings

programming FTDI adapter connection

enter image description here

Both 3.3V and 5V power options can be used.

How to use it as home automation (IOT) node controller

ButtonSizeNode.ino is the Arduino example sketch using MySensors API.

Things worth mentioning about the MySensors Arduino sketch:

Code Description
Light meter BH1750 Library by Christopher Laws MySensorsArduinoExamples BH1750
Temperature and humidity sensor Si7021 SparkFun Library SparkFun_Si7021_Breakout_Library
#define MY_RADIO_RFM69
#define MY_RFM69_FREQUENCY RF69_433MHZ
#define MY_IS_RFM69HW
Define which radio we use – here is RFM 69
with frequency 433 MHZ and it is HW
type – one of the most powerful RFM 69 radios.
If your radio is RFM69CW - comment out line
with // #define MY_IS_RFM69HW
#define MY_NODE_ID 0xE0 Define Node address (0xE0 here). I prefer to use static addresses
and in Hexadecimal since it is easier to identify the node
address in Domoticz devices list after it
will be discovered by controller ( Domoticz).
However, you can use AUTO instead of the hardcoded number
(like 0xE0) though. Domoticz will automatically assign node ID then.
#define MY_OTA_FIRMWARE_FEATURE
#define MY_OTA_FLASH_JDECID 0x2020
Define OTA feature. OTA stands for “Over The Air firmware updates”.
If your node does not utilize Sleep mode you can send new “firmware”
(compiled sketch binary) by air. Here is the link on how to do it.
Skip to the step "How to upload a new sketch just with OTA" as all initial
steps have been completed in the ButtonSizeNode.
For OTA we use JDEC Flash chip where the node stores
new firmware and once it has been received and checksum (CRC)
is correct it reboots and flashes your new
code into the node controller. 0x2020 "Erase type"
defined here for JDEC Flash chip .
#define MY_SIGNING_ATSHA204
#define MY_SIGNING_REQUEST_SIGNATURES
Define if you like to use Crypto Authentication to secure your nodes
from intruders or interference. After that, you have to “personalize”
all the nodes, which have those, defines enabled.
How to “personalize” nodes with encryption key.
You need both defines in the nodes you need to protect.
The Gateway Serial could be with only one of those
defines enabled - #define MY_SIGNING_ATSHA204

Connect the Node to FTDI USB adaptor, Select Pro Mini 8MHz board in Arduino IDE and upload the ButtonSizeNode.ino sketch.

Done

The board is created by Koresh

enter image description here enter image description here

For schematics lovers:

enter image description here

The board schematics Pdf link