- Arduino Uno or equivalent
Optionally (if actual project deployment required):
- 2x 10K NTC thermistors
- Power relay (solid state or mechanical)
- Status LED
- Supporting components for thermistors, LED and relay (resistors, transistor and diode if using mechanical relay).
Stage 2 and higher additionally requires:
- nRF24L01+ module (low power or high power design, depending on range required)
- Interfacing hardware for Arduino/X:duino or equivalent and nRF24L01+ radio module. (If using a dev board with a built-in nRF24L01+ connection header, then nothing more may be required. Otherwise, protoboard for point-to-point wiring, or something like the RFX nRF24L01+ proto shield would be suitable.)
The stage 2 and higher versions also requires a RFX gateway server to connect to, of course.
The actual controller built for this write-up was deployed in the roof space using a RFX 328 dev board with a RFX nRF24L01+ proto shield in a dual voltage rail set-up (refer to RFX 328 dev board kit assembly instructions for additional details), and a 5V mechanical relay.
However, for software testing and development, a Uno clone with a RFX nRF24L01+ proto shield sitting on a desk beside a laptop running the Arduino IDE was used. This set-up conveniently saved climbing into the roof space every time a software change needed testing!
- For the sketch testing on the desktop Uno, I didn’t bother to duplicate connecting up thermistors to the analog input pins, nor a relay to the digital output pins. This meant the temperature read values were floating random values from the analog inputs, and of course it wasn’t actually switching anything, but that wasn’t an issue for testing once the IO routines had been sorted out — the sketch will run perfectly happily without the peripherals being attached.
- However, for stage 2 and above testing, a nRF24L10+ module was always required to be connected.
- To keep the current “production” version running in the roof cavity from conflicting with the test version of the sketch, I simply allocated them different BOARD_ID numbers when building. (The production version was set at BOARD_ID 2, while the test version was set at BOARD_ID 102.) This was only a consideration for stages 2 and above, when the boards were connecting to the network via the RFXduino gateway device.
For completeness, the standard wiring connections used for the sensor and relay hardware is provided below.
Schematics for thermistors/relays/LED:
Schematic for 10K NTC thermistor connections.
R1 should be 10K for a 25C 10K NTC thermistor.
Schematic for 5V mechanical relay connections (LED1 and R2 optional).
The values for Q1, D1, R1 and R2 are indicative.