IMA4 2018/2019 P57 : Différence entre versions
(→Choix techniques : matériel et logiciel) |
(→Choix techniques : matériel et logiciel) |
||
Ligne 111 : | Ligne 111 : | ||
# 16Mhz oscillator | # 16Mhz oscillator | ||
# Capacitors | # Capacitors | ||
+ | # Led x1 | ||
+ | # Resistance x1 | ||
==Liste des tâches à effectuer== | ==Liste des tâches à effectuer== |
Version du 9 décembre 2018 à 20:11
Sommaire
Présentation générale
Description
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 :
- Sécurisé : la mise à jour devra être vérifié (provenance, checksum) avant l'implémentation.
- Économe en énergie : l'impact énergétique sera pris en compte dans le choix des technologies.
- (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 sera ajouté à chaque capteur lors de sa fabrication. Une étude du coup supplémentaire sera alors effectuée.
- Polyvalence : le module pourra s'implémenter à chaque capteur facilement sans ajouter un code particulier.
- Sécurisé : chaque mise à jour sera contrôlée avant l'implémentation du programme. (calcul du MD5 Checksum + Clée de décryptage)
- Économe en énergie : ce module devra utiliser le moins possible de courant. Les composants seront donc choisis pour leurs consommation.
Avantages :
- Hautement sécurisé : chaque mise à jour dispose d'une clé de cryptage et d'un checksum.
- Peut théoriquement s'adapter à tout type de capteur.
- Temps de mise hors service très court
Inconvénients :
- Coûts de fabrication plus important
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 :
- Si le firmware est défectueux, il est possible de réimplémenter
Inconvénients :
- le bootloader dépend énormément du module radio (un bootloader différent pour chaque module radio)
- 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 :
- Ne dépend pas du module radio.
- Peut être mis à jour en fonctionnement
Inconvénients :
- Un firmware défectueux ne peut plus être mis-à-jour OTA
- 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’ATMEGA puisse se reprogrammer toute seule ?
Pour pouvoir écrire dans l'EEPROM (la mémoire interne de l'ATMEGA), il faut posséder une autre mémoire (vive ou morte).
Le choix s’oriente vers une EEPROM pour plusieurs raisons :
- La consommation énergétique presque nulle en dehors des lectures et écritures.
- La mémoire conserve la mise à jour même si elle est déconnecté du réseau (mémoire morte).
Cependant, d'autres facteurs peuvent être contestés :
- Le coût est légèrement supérieur a un autre type de mémoire (mémoire vive)
- Durée de vie plus courte (10 000 écritures)
L'Atmega peut réécrire son programme interne grâce au bootloader. Le bootloader est une portion de code qui s'exécute avant le programme principal. Actuellement, le bootloader optimise la vitesse d'exécution du code.
Des bootloader alternatifs existent, c'est le cas notament de celui de Dave Berkeley site WEB[[2]] Github : [[3]]
Toutefois, celui-ci ne s'occupe pas de la sécurité nécessaire a une mise en production ainsi que l'identification d'un capteur spécifique.
Préparation du projet
Cahier des charges
Le projet choisi doit permettre une implémentation en usine ainsi qu'une commercialisation possible. Pour cela de nombreux aspects doivent êtres analysés.
- Le système devra avoir une portée suffisante (environs 50m)
- L'ATMEGA ne sera reprogrammé qu'après avoir acquis la certitude que la mise à jour est authentique
- La transmission de mise-à-jour devra être cryptée afin d'éviter qu'une écoute réseau révèle le contenu de celle-ci.
- La consommation du capteur ne devra pas augmenter de plus de 10% de la consommation habituelle
- Les performances du capteur ne devront pas être impactées
De plus d'un point de vue architecture :
- Le système utilisera des composants répandus sur le marché afin de pouvoir être réparé a moindre frais
- Le système n'utilisera pas de CMS afin de pouvoir être entretenu par l'utilisateur. (Et aussi afin de pouvoir réduire les couts de fabrication)
- Un autre moyen de reprogrammation devra être implémenté afin de pouvoir mettre a jour manuellement (en cas de panne).
Choix techniques : matériel et logiciel
Matériel nécessaire :
- ATMEGA328P-PU x1 1.51 € [[4]]
- USB-TTL Arduino Programmer
- EEPROM 4ko
- NRF24L01
- BreadBoard
- 16Mhz oscillator
- Capacitors
- Led x1
- Resistance x1
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 |