TELEPHONE LINES | Unfortunately due to the level of orders we are currently experiencing, we aren't always able to answer calls. If your query is urgent, please do leave a message or email sales@hobbycomponents.com and we will get back to you as soon as we are able. |
New products
New products
mLink Home Sensor
The mLink Home sensor is a compact multiple sensor module featuring a DHT22 temperature/humidity sensor, a LDR light sensor and a PIR motion detector. These features make this module ideal for sensing occupancy and environmental conditions within a room.
Communication with the sensors is made via the modules serial (I2C) interface which is compatible with microcontrollers featuring an I2C interface including most types of Arduinos. Being an mLink module it is also compatible with other modules in our mLink range and can simply be daisy-chained together allowing multiple different mLink modules to be controlled via one serial interface.
The mLink Home sensor is a compact multiple sensor module featuring a DHT22 temperature/humidity sensor, a LDR light sensor and a PIR motion detector. These features make this module ideal for sensing occupancy and environmental conditions within a room.
Communication with the sensors is made via the modules serial (I2C) interface which is compatible with microcontrollers featuring an I2C interface including most types of Arduinos. Being an mLink module it is also compatible with other modules in our mLink range and can simply be daisy-chained together allowing multiple different mLink modules to be controlled via one serial interface.
For Arduino users you can use the mLink library (see below for library and examples) to control any type of mLink module. Only one single instance of the library is needed to control multiple types of mLink modules resulting in very little resource overhead and therefore making it great for Arduinos with small amounts of memory and pin counts.
Module code:
|
HCMODU0198
|
Supply Voltage(VDD):
|
5V (3.3V with solder pad bridged - see forum post)
|
Current consumption:
|
7mA
|
Current consumption (sleep):
|
0.5mA
|
I2C Interface speed:
|
400kbits/s (fast mode)
|
I2C default address (HEX):
|
0h5B
|
Maximum number of modules:
|
5 with pullups fitted, 112 with pullups removed*
|
Temperature sensor range:
|
-40 to 80oC
|
Temperature sensor resolution:
|
0.1oC
|
Humidity sensor range:
|
0 to 10 %RH
|
Humidity sensor resolution:
|
0.1 %RH
|
LDR sensor range:
|
0 to 255
|
PIR Trigger on time:
|
~4 seconds
|
PIR Sensor angle:
|
100 degree cone
|
Sensor range:
|
~3 to 5 metres
|
Module dimensions ex headers (LxWxH):
|
45mm x 30mm x 18mm
|
*Note the maximum number of connected modules will depend on cable lengths and power requirements of each module. Do not exceed 5 mLink modules connected in series with I2C pullups fitted to all modules. For disconnecting pullups see forum post.
Arduino Connection Example:
Because the modules use an I2C interface this also means multiple modules can be controlled from a single Arduino I2C interface simply by daisy-chaining them together. Note to control multiple mLink modules of the same type requires changing the default I2C address of the additional modules. See example Arduino sketch on forum post.
Example Arduino Sketch:
-
#include "mLink.h" // Include the library
-
-
#define I2C_ADD 0x5B // Default I2C address
-
-
mLink mLink; // Create an instance of the library
-
-
-
void setup()
-
{
-
Serial.begin(9600);
-
mLink.init(); // Initialise the library
-
}
-
-
-
void loop()
-
{
-
mLink.HSense_Start_Meas(I2C_ADD); // Trigger a new temp/hum measurement
-
while(mLink.busy(I2C_ADD)); // Wait for the measurement to complete
-
-
// Read the sensors
-
float temp = mLink.HSens_Temp(I2C_ADD);
-
float hum = mLink.HSens_Hum(I2C_ADD);
-
byte LDR = mLink.HSens_LDR(I2C_ADD);
-
boolean PIR = mLink.HSens_PIR(I2C_ADD);
-
-
// Print out the results
-
Serial.print("Temperature: "); Serial.println(temp, 1);
-
Serial.print("Humidity: "); Serial.println(hum, 1);
-
Serial.print("Light: "); Serial.println(LDR);
-
Serial.print("PIR: ");
-
PIR ? Serial.println("Triggered!") : Serial.println("Idle");
-
-
Serial.println();
-
-
delay(1000);
-
}