Datasocks : Realtime IoT made simple ✅

Monitor and control remotely in real time your IoT devices without the pain of dealing with networking.

IoT Made simple

Demo

Test An account, an API Key and you are good to go !

The idea behind Datasocks is to provide an easy way to connect, monitor and control multiple IoT devices without having to setup a web server and deal with networking.

Study Case

  • You want to get the temperature and the humidity level of your room to be sure that your plants will survive 🌱. You also want to be able to water them at any moment.
  • For that you decide to go with a singleboard computer (like a Raspberry Pi) or an Arduino.
  • Once done, you realise you need to setup a web server/app in your house,deal with opening your home network to the internet and the security issues that are implied to it.

Here's come Datasocks : After setting up Datasocks on a VPS (on Linode let's say 😉) with minimal requirements, generating an API Key for your device and embed it into a script into your device , you are good to go.

Your plants will thank you. 🌱😋

Deploy

Thanks to Linode's Stackscript feature you can quickly setup an instance with datasocks pre-installed

cloud.linode.com/stackscripts/1018923

The only thing to set up next is an .env file and start the docker compose process

docker-compose --env-file ./.env up

Features

  • Create and own multiple dashboards
  • Create cards to display the last value of a metric
  • Create graphs (Lineplot for now) to measure the evolution on a time period
  • Create buttons to activate functions on your devices (Still in dev)
  • Manage mutiple devices

Why Websockets

  • No need to setup a web server on the device itself and expose it to the Internet
  • Bi-Directionnial communications
  • Asynchronous system

Tech Stack

  • Backend using Django, DRF and Channels
  • Frontend in vanilla js using Bootstrap and Chartjs
  • Docker and Docker-compose
  • NGINX
  • Redis

Github Repo : github.com/duranbe/datasocks

It's for now designed as a self-hosted and private application only, hence for now the support for only one admin user.

This project was made during and for the Linode x Hashnode Hackathon