Skip to content
A location-based Internet of Things System built with Nodejs, RaspberryPi and controlled throught a VueJS dashboard
JavaScript CSS HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Home Monitoring IoT System

This repo contains my thesis project. It’s dealing with the build and the implementation way of a location-based Internet of Things System.


The system is built with a Raspberry Pi in which are attached several devices such cameras and LEDs. The attached devices are controlling by a NodeJS application which acts as client and it’s responsible for sending and receiving information from Server. The Server, also built with NodeJS, acts as the middleman between the Raspberry Pi and the users’ web application. The users’ web application is build on JavaScript Front-end Framework VueJS with components of CSS Framework Bulma. In the web application the user can monitor and manipulate the devices’ status. Also he can monitor the location of other users and get notified when someone is arriving home. User’s location is accessible through web browsers’ geolocation API and is been displayed with use of Google Maps API. All real-time functions are made through SocketIO.


A detailed documentation, in Greek, can be found here.

Run the project in your machine

You should have both Git and NodeJS installed on your Computer and your Raspberry Pi.

On Computer

  1. Type git clone
  2. cd IoT
  3. npm i
  4. node index.js

Your project now should be runing at port 5000 in your local machine

On Raspberry Pi

  1. git clone
  2. cd IoT/raspberryPi
  3. npm i
  4. Type nano rasperryPi.js change the value of url variable in second line with your local IP.
  5. Check that the value of sensorPin variable on line 38 and devices variable on line 43 and 49 have the proper number based on your set up.
  6. In nano editor press Ctrl + X to exit and Y to save the changes.
  7. node raspberryPi.js

Browse on Your_IP:5000, manipulate the LEDs values, monitor the humidity and temperature values and get live capture from the cameras!

You can’t perform that action at this time.