iot-dashboard: Fully integrated architecture platform with a dashboard for Logistics Monitoring, Internet of Things.

Overview

iot-dashboard

Fully integrated architecture platform with a dashboard for Logistics Monitoring, Internet of Things.

  • Written in Python.
  • Flask application as back-end.
  • PostgreSQL as SQL database.
  • Database connection pooling.
  • Simple dashboard in plain HTML/CSS.
  • Communication protocol interface for IoT devices.
  • Communication protocol for the Mictrack MT821/MT825 GPS tracker in UDP multithreaded mode.
  • Geofences to save GPS tracker battery when it is not in zone.
  • Geofence alerts.

Platform architecture

Dashboard layout

Database schema

Pre-requisites 📋

  • Linux operating system.
  • Python (version >= 3.8) installed.
  • pip installed.
  • PosgreSQL server installed, I recommend lastest stable version. You can follow this tutorial. I also recommend to set up the configuration file "pg_hba.conf" and set a IPv4 host entry to listen at "0.0.0.0" address and allow md5 authentication, there are many guides about "pg_hba.conf" out there.
  • Port forwarding for the ports described here.
  • pgAdmin 4 (Optional).

Installation 🔧

Once you have met all the requirements mentioned in the previous section, just follow these steps:

  • Clone or download this repo via HTTPS/SSH in your file system.
  • Navigate to the repository directory:
cd /path/to/your/directory/iot-dashboard
  • Create a new virtual environment in the root folder of the repository and activate it:
python3 -m venv venv
. venv/bin/activate
  • Once the virtual environment is activated (you are inside it), install all required Python packages from requirements:
pip install -r requirements.txt
  • Finally, run the application installation script (if asked, enter your user password):
./scripts/install.sh

Upgrade ⤵️

To upgrade all python packages simply run the upgrade script within the virtual environment:

./scripts/upgrade.sh

Usage 🚀

Start application

In order start the entire application just run the start script within the virtual environment (log files will be automatically created):

./scripts/start.sh

If you only wish to run the Flask instance separately:

flask run --host=0.0.0.0

Finally, if you only wish to run the Micktrack MT821/MT825 communication protocol separately:

python -m comm_protocol.mt82x

Shutdown application

./scripts/shutdown.sh

Restart application

./scripts/restart.sh

Application status

./scripts/status.sh

Be care the application could have been started without this scripts (e.g. starting manually from another folder), so the status and shutdown scripts could fail or show wrong results.

Owner
Engineer and engineering the life.
a library for using WS2812b leds (aka neopixels) with Raspberry Pi Pico

pico_ws2812b a library for using WS2812b leds (aka neopixels) with Raspberry Pi Pico You'll first need to save the ws2812b.py file to your device (for

76 Nov 25, 2022
My 500 LED xmas tree

xmastree2020 This repository contains the code used for Matt's Christmas tree, as featured in "I wired my tree with 500 LED lights and calculated thei

Stand-up Maths 581 Jan 07, 2023
Point Density-Aware Voxels for LiDAR 3D Object Detection (CVPR 2022)

PDV PDV is LiDAR 3D object detection method. This repository is based off [OpenPCDet]. Point Density-Aware Voxels for LiDAR 3D Object Detection Jordan

Toronto Robotics and AI Laboratory 114 Dec 21, 2022
Monitor Live USB Plug In & Plug Out Events

I/O - Live USB Monitoring Author: Jonathan Scott @jonathandata1 Date: 3/13/2021 CURRENT VERSION 1.0 This is just a simple bash script that calls a pyt

Jonathan Scott 17 Dec 03, 2022
Zev es un Bot/Juego RPG de Discord creado en y para aprender Python.

Zev es un Bot/Juego RPG de Discord creado en y para aprender Python.

Julen Smith 3 Jan 12, 2022
Setup DevTerm to be a cool non-GUI device

DevTerm hobby project I bought this amazing device: DevTerm A-0604. It has a beefy ARM processor, runs a custom version of Armbian, embraces Open Sour

Alex Shteinikov 9 Nov 17, 2022
Turns a compatible Raspberry Pi device into a smart USB drive for PS4/PS5.

PSBerry A WIP project for Raspberry Pi, which turns a compatible RPI device into a smart USB drive for PS4/PS5. Allows for save management of PS4 game

Filip Tomaszewski 2 Jan 15, 2022
Raspberry Pi & Accelerometer with Losant's EEA

Raspberry Pi & Accelerometer with Losant's EEA This is a repository that contains companion code to this EEA How To guide. Each folder is named accord

Losant 1 Oct 29, 2021
Example code to sending USB Gadget multimedia keys via Python

Send Multimedia USB HID Keys via Python As an USB Gadget in Linux This gives a simple script with zero dependencies that can easily run on any Linux d

DevOps Nirvana 2 Jan 02, 2023
Pi-hole with Inky pHAT ePaper display

Pi-hole with Inky pHAT ePaper display This is my Pi-hole with an ePaper display.

11 Sep 13, 2022
It is a program that displays the current temperature of the GPU and CPU in real time and stores the temperature history.

HWLogger It is a program that displays the current temperature of the GPU and CPU in real time and stores the temperature history. Sample Usage Run HW

Xeros 0 Apr 05, 2022
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico

rgbkeypad A Python class for controlling the Pimoroni RGB Keypad for the Raspberry Pi Pico. Compatible with MicroPython and CircuitPython. keypad = RG

Martin O'Hanlon 43 Nov 11, 2022
Implemented robot inverse kinematics.

robot_inverse_kinematics Project setup # put the package in the workspace $ cd ~/catkin_ws/ $ catkin_make $ source devel/setup.bash Description In thi

Jianming Han 2 Dec 08, 2022
Raspberry Pi Pico support for VS Code

Pico-Go VS Code Extension Pico-Go provides code auto-completion and allows you to communicate with your Raspberry Pi Pico board using the built-in REP

Chris Wood 114 Dec 28, 2022
A script that publishes power usage data of iDrac enabled servers to an MQTT broker for integration into automation and power monitoring systems

iDracPowerMonitorMQTT This script publishes iDrac power draw data for iDrac 6 enabled servers to an MQTT broker. This can be used to integrate the pow

Lucas Zanchetta 10 Oct 06, 2022
A Macropad using the Raspberry Pi Pico, programmed with CircuitPython.

A Macropad using the Raspberry Pi Pico, programmed with CircuitPython.

15 Oct 14, 2022
Windhager myComfort custom component for Home Assistant

Windhager myComfort custom component for Home Assistant

5 Apr 27, 2022
从零开始打造一个智能家居系统

SweetHome 从零开始打造智能家居系统的尝试,主要的实现有 可以扫码添加设备并控制设备的Android App 可以控制亮灭的灯,并可以设置在Android App连接到指定Wifi后自动亮起 可以控制开关的窗帘,机械结构部分自己设计并3D打印出来 树莓派主控,实现Http请求接口和ZigBe

金榜 5 May 01, 2022
A battery pack simulation tool that uses the PyBaMM framework

Overview of liionpack liionpack takes a 1D PyBaMM model and makes it into a pack. You can either specify the configuration e.g. 16 cells in parallel a

PyBaMM Team 40 Jan 05, 2023
Andreas Frisch 1 Jan 10, 2022