IMA4 2018/2019 P57 : Différence entre versions

De Wiki de Projets IMA
(Réponse à la question difficile)
(Réponse à la question difficile)
Ligne 68 : Ligne 68 :
 
'''Comment faire pour que l’Arduino puisse se reprogrammer toute seule ?'''
 
'''Comment faire pour que l’Arduino puisse se reprogrammer toute seule ?'''
 
<br/>
 
<br/>
Pour pouvoir écrire dans l'EEPROM (la mémoire interne de l'Arduino), il faut pour autant posséder une autre mémoire
+
Pour pouvoir écrire dans l'EEPROM (la mémoire interne de l'Arduino), il faut posséder une autre mémoire (vive ou morte).
  
 
=Préparation du projet=
 
=Préparation du projet=

Version du 8 décembre 2018 à 14:06


Présentation générale

Description

P57-2018-prez.jpg


   Les capteurs sont omniprésents dans le domaine de l'entreprise. Une usine peut disposer de plusieurs centaines de capteurs répartis dans toute sa structure. Ces capteurs ont des rôles différents comme la mesure de la température, la présence d'une pièce où encore la mesure métrique d'un élément. 
Chacun de ces capteurs peut être amené a être mis à jour afin de modifier un temps de réponse ou changer la couleur de détection d'un capteur optique etc...
Ces mise-à-jours peuvent être fastidieuses à implémenter car nécessite l'intervention physique d'un opérateur et la mise à jour se fait pour chaque capteur individuellement.

Objectifs


L'objectif de ce projet est de proposer un système permettant de reprogrammer un capteur de manière OTA (Over The Air) sans aucune intervention physique.

Le système devra être :

  1. Sécurisé : la mise à jour devra être vérifié (provenance, checksum) avant l'implémentation.
  2. Économe en énergie : l'impact énergétique sera pris en compte dans le choix des technologies.
  3. (Bonus) Le système sera générique afin de pouvoir mettre a jour un groupe de capteur automatiquement

Analyse du projet

Positionnement par rapport à l'existant

Un système semble déjà exister pour les composants ATmega328P(arduino) [1]
Le but de ce projet sera de créer un module indépendant qui devra respecter certains critères afin de pouvoir être polyvalent et s'appliquer a chaque capteur. Ce module pourra être ajouté a un modèle déjà existant afin de pouvoir le mettre a jour plus tard sans devoir acheter de nouveaux capteurs qui coutent relativement cher.

  1. Polyvalence : le module pourra s'implémenter à chaque capteur facilement.
  2. Sécurisé : chaque mise à jour sera contrôlée avant l'implémentation du programme. (calcul du MD5 Checksum + Clée de décryptage)
  3. Économe en énergie : ce module passera en mode repos afin d'économiser de l'énergie


Avantages :

  1. Hautement sécurisé : chaque mise à jour dispose d'une clé de cryptage et d'un checksum. L'algorithme de sécurité pourra être modifié par une simple mise à jour.
  2. Peut théoriquement s'adapter à tout système existant.
  3. Plus stable qu'un capteur qui gère lui même ses mises à jour.
  4. Temps de mise hors service très court


Inconvénients :

  1. Entraine nécessairement une consommation plus importante qu'un capteur avec module radio qui gère directement ses mises à jour.
  2. Coute plus cher

Analyse du premier concurrent

MYSBootloader by Tekka (Mysensors Team)

Ce système fonctionne en tant que bootloader uniquement sur les microcontrôleurs ATmega328P. Lors du boot du microcontroleur ou reset, il applique la mise à jour du code qu'il a reçu. Lors de la réception de la mise à jour le capteur doit être offline.
Ce système ne nécessite pas de mémoire externe.

Avantage :

  1. Si le firmware est défectueux, il est possible de réimplémenter

Inconvénients :

  1. le bootloader dépend énormément du module radio (un bootloader différent pour chaque module radio)
  2. Nécessite de fonctionner hors ligne (lorsque le capteur ne traite plus de données)

Analyse du second concurrent

Dualoptiboot by Lowpowerlab

Cette solution est une solution codée dans le firmware à implémenter. Elle nécessite une mémoire externe afin de stocker le firmware reçu avant de le téléverser dans la mémoire interne du microcontrôleur. En incluant la librairie Dualoptiboot, un programme scrutant les mise-à-jour est continuellement exécuté.

Avantages :

  1. Ne dépend pas du module radio.
  2. Peut être mis à jour en fonctionnement

Inconvénients :

  1. Un firmware défectueux ne peut plus être mis-à-jour OTA
  2. Nécessite une mémoire externe

Scénario d'usage du produit ou du concept envisagé

Scénario :
Le chef d'entreprise doit mettre à jour ses capteurs afin de pouvoir gagner en productivité (envoi de donnée plus rapide). Un technicien doit démonter et reprogrammer un a un plusieurs centaines de capteurs alors que son chef lui demande d'aller plus vite car la chaine de production est interrompue. Quand SensorOTA propose de mettre a jour en quelques secondes tous les capteurs à l'aide d'une antenne et de la communication broadcast avec presque aucune coupure.

Réponse à la question difficile

Comment faire pour que l’Arduino puisse se reprogrammer toute seule ?
Pour pouvoir écrire dans l'EEPROM (la mémoire interne de l'Arduino), il faut posséder une autre mémoire (vive ou morte).

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

Liste des tâches à effectuer

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Semaine 2

Documents Rendus