Multi-room Temperature and Humidity Monitor and Control (w/ ThingsBoard)

This repository is created as a part for fulfilling the requirement to the course SEP 769 Cyber Physical Systems.

A demostration video can be found here.


This project focuses on setting up a multi-room temperature and humidity monitoring and control system. An Arduino MKR1000 and a Raspberry Pi was used in this project to collect data from DHT11 sensor and controls the actuators. A TP-Link HS110 and a servo motor were used as the actuators in this project. A circulator fan was connected to the HS110 smart plug whileas the servo motor was used to control a wall switch for a exhaust fan.

The ThingsBoard community edition was used to provide the MQTT Broker, data storage, RPC Calls and dashboard interface. Both MKR1000 and Raspberry Pi were congifured to talk to the MQTT Broker hosted by ThingsBoard to update the temperature and humidity readings. Remote procedure calls (RPC) was used to send the remote control signals to both edge devices. Two local automatic control loop were also setup on each device to perform automatic actions by default

Sample Setup Image


Material Used

  • Raspberry Pi 4
  • Arduino MKR1000 WIFI
  • Breadboard (x2)
  • Servo Motor (SG90)
  • TP-Link Smart Plug HS110
  • Air Circulator Fan
  • 3D-printed Switch Mount

Library used




Arduino Code

The sketch used in this project can also be found on here.

System Schematic

System Block Diagram


Local Automatic Logic


Cloud Control Logic



View Github