Skip to content

JVALPASS/Secure_Child_Seat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Secure Child Car Seat

Secure_Child_Car_Seat is a project that wants to show the potential of the IoT and the Serverless approach for make our lives easier, putting children's lives in safety. So in particualar the system alert with an SMS the parents when the child is on the seat, but the belt is not attached.
This project is designed for building a computing architecture, based on open-source software, that exploit Function-as-service model in the context of IoT. The idea is provides a system which allows as in Amazon Aws or Microsoft Azure, and so on, to deploy functions that are trigged by events generated from small devices such as sensors and mobile (IoT devices), commonly these devices communicates using message-passing, in particular on dedicated protocols as AMQP or MQTT.
In particular, in this case i decide to develope the projects with two kind of implementations, one use the message protocol AMQP another one MQTT

Prerequisites

  • OS:
    • Ubuntu 18.04 LTS or more recent
  • Software:
    • Docker and Docker Compose (Application containers engine)
    • Nuclio (Serverless computing provider)
    • RabbitMQ (AMQP and MQTT message broker)
    • Node.js

Installation

This project is made on top of one local machine an Linux Ubuntu 20.04 LTS LTS machine.

Docker

Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Install Docker using the Docker CE installation GUIDE.

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce

IMPORTANT FIX Ubuntu 18.04 changed to use systemd-resolved to generate /etc/resolv.conf. Now by default it uses a local DNS cache 127.0.0.53. That will not work inside a container, so Docker will default to Google's 8.8.8.8 DNS server, which may break for people behind a firewall. Refers to the Stackoverflow discussion.

$ sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Docker Compose

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services.

TIP Docker compose is the technology used by Nuclio to easily create, build and deploy Docker application containers (the functions in this case).

Install Docker Compose using the Docker Compose installation guide.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Nuclio

Nuclio (High-Performance Serverless event and data processing platform) is a new "serverless" project, derived from Iguazio's elastic data life-cycle management service for high-performance events and data processing. The simplest way to explore Nuclio is to run its graphical user interface (GUI) of the Nuclio dashboard. TIP The Nuclio documentation is available at this [link].

Start Nuclio using a docker container.

$ docker run -p 8070:8070 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp nuclio/dashboard:stable-amd64

RabbitMQ

RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.

Start RabbitMQ instance with MQTT enabled using docker.

$ docker run -p 9000:15672  -p 1883:1883 -p 5672:5672  cyrilix/rabbitmq-mqtt 

IFTTT MESSAGE TRIGGER

Create an IFTT account. Then you need to create a new Applet:

  • Set this name to Event Name: "Magnet disconnected"
  • Use WebHooks in if and select "receive a web request with a JSON paylod" section:

  • Select "SMS" in then :

  • Set the parameter in the SMS:

  • Remember to connect the service:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published