Giter Club home page Giter Club logo

iotproject's Introduction

Projet IoT

Participants

  • Théo CLERE - Communication Passerelle-Android
  • Damien MAILHEBIAU - Communication Passerelle-Serial
  • Maxime DUBOIS - Communication RF
  • Sandro SPINA - Communication Passerelle-Android

Introduction

Ce projet IoT, développé dans le cadre du cours d'IoT à CPE, se concentre sur la collecte et l'affichage des données de température et de luminosité. Il exploite des micro-bits et une application Android, intégrant des mécanismes de communication sécurisée, une gestion efficace des micro-bits, et une infrastructure serveur robuste.

Protocole de Communication

Pour garantir une communication sécurisée, le projet met en œuvre un protocole incluant les éléments suivants :

  • Entête : Les messages distants utilisent l'entête "DMST:" pour filtrer et traiter uniquement les messages pertinents.
  • Chiffrement du Corps : Le corps des messages est chiffré à l'aide d'un algorithme de décalage (César).

Micro-bit 2

  • Capteurs : Acquisition de la température et de la luminosité.
  • Affichage : Valeurs affichées à l'écran selon un ordre par défaut.
  • Modification d'ordre : Possibilité de modifier l'ordre d'affichage lors de la réception d'un ordre RF.

Application Android

  • Configuration : Choix de l'adresse IP/port de la passerelle.
  • Timer de Rafraîchissement : Mécanisme de timer pour définir la période de rafraîchissement des données.
  • Drag & Drop : Fonctionnalité de glisser-déposer pour inverser l'ordre d'affichage des données.
  • Barre de Chargement : Affichage du temps restant avant le prochain rafraîchissement de données.

Android app

Serveur - Passerelle uBit (Serial)

  • Attente d'un message de la passerelle.
  • Réception et Enregistrement des Données : Enregistrement des données de température et de luminosité dans la base de données, gestion d'erreurs avec valeur -1 en cas de donnée invalide.
  • Génération du Timestamp : Le timestamp est généré côté serveur, compte tenu de l'absence d'horloge intégrée dans le micro-bit.
  • Gestion de Buffer et Délimiteur : Utilisation d'un buffer et d'un délimiteur pour la réception des données complètes.
  • Extraction des Données avec Gestion d'Erreur : Extraction des données avec une gestion d'erreur si la structure n'est pas conforme.
  • Classe DatabaseManager : Création d'une classe DatabaseManager pour simplifier la gestion de la base de données.

err extract err BDD

uBit (Passerelle) - uBit (Radio)

Attente d'un message du micro-bit distant, réception des données de température et luminosité.

  • Vérification de la Validité des Données : Vérification de l'entête et du chiffrement des données reçues.
  • Envoi en Série au Serveur : Envoi des données en série au serveur si l'entête est valide.
  • Communication pour Changer l'Ordre : Attente d'un message du serveur pour changer l'ordre côté micro-bit distant (TL ou LT).
  • Envoi Chiffré au Micro-bit Distant : Envoi chiffré au micro-bit distant si TL ou LT est reçu.

MySQL / Grafana

  • Un Docker compose nous a été utile afin de déployer un container MySQL et un container Grafana.
docker-compose -f docker-compose-mysql.yaml up -d

Lancement de la BDD et de Grafana:

  • MySQL user: root mdp: admin
  • Grafana : localhost:3000 user: admin mdp: adminadmin

grafana

iotproject's People

Contributors

theoahga avatar daddyornot avatar sspina69 avatar sandrospina698 avatar maximedubois1 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.