Tuesday, 18 November 2014

ArduinoHomeAutomationProject: The SensorNode; PART 1: HARDWARE CONSIDERATIONS


Well, it´s time to get a little more concrete what the sensor node should do.
It should definitely measure the temperature, shouldn´t it?
In my case I also wanted to get some data about humidity and luminous intensity.
Further it should be possible to display the sensor readings and the time (if you want) to the user.

Now we defined what data we want to get from the environment, but we also want to interact with it.
My plan is to switch lights and electric radiators on and off.

The above mentioned things are enough to setup a prototype.


We are going to use Arduino for our project, so we will prefer those sensors where an Arduino compatible library exists. We also should be aware of the sensor tolerance and its accuracy.

  •  a Sensor with a temperature range from 0 - 50°C and an accuracy of +/- 0,5°C will not make much sense for a wheaterstation. 
  • a Sensor with a range from -40 - 90°C and an accuracy of +/- 2°C will not fit our needs.
I found those nice little DHT22 Sensors which have a temperature-range of -40 - 80°C with +/- 0,5°C and a humidity measuring range of 0 - 100% (accuracy +/-2%). You can get them for a few bucks on Aliexpress. We also need some 4.7k pull-up resistors for those sensors. There is a Arduinolibrary available on https://github.com/adafruit/DHT-sensor-library.

For measuring the luminous intensity we can take a LDR and a 10k Resistor for  the voltage divider.
We don´t need a library for that, because the sensor-reading with Arduino will be pretty much like "analogRead(PIN)" + some calculation for the interpretation of the data.

Further we will implement some switches or buttons which we are going to connect with a 10k resistor to the Arduino. These switches can be used to manually switch lights on and off.

Now let´s have a look at how we present the data to the user. Take a display which is already tested with Arduino and be aware that it has enough space to display all the data.
With a 16x2 LCD you possibly run out of space and have to switch the display modes, but you can give it a shot, it is well tested and there are library’s around.
In my opinion a good choice would be an 0,96" I2C OLED. They are small, they are cheap, and you have a really good resolution to display the data.
You can get the library’s here:
Last but not least we should consider which type of transmission we will use. For easier code implementation I recommend something that supports the Serial UART bus of Arduino. 
I´m going to test the whole thing with MAX RS485 chips to build a long range RS485 bus-network (max. about 1000m via 2wire connection). If I can get some RF transceivers like "433Mhz Wireless Serial CC1101 Module" or "RF1100-232-TTL" I´m going to test them.


Auer Markus
Karwendelstr. 13
A - 6020 Innsbruck