Réseau de capteurs longue distance
Sommaire
Cahier des charges
Présentation générale du projet
Contexte
Avec l'émergence de l'internet des objets,les réseaux des capteurs sont en plein essor mais sont actuellement fortement limités par l'autonomie énergétique des noeuds du réseau.
Objectif du projet
Conception d'une carte electronique afin de pouvoir réaliser les bases d'un réseau de capteurs basse consommation et longue portée.
Description du projet
Les réseaux de capteurs sont constitués de systèmes électroniques appelés noeuds capables de gérer l'acquisition des données de grandeur physique de leur environnement et permettent une transmission fiable de l'information qui est une grandeur numérique. Le but sera donc de réaliser une carte électronique à base d'un microprocesseur sur lequel sera connecté différents systèmes embarqués (comme les capteurs,..). La structure modulaire adoptée permettra de connecter à la carte d'autres extensions (par exemple un petit écran). Quelques contraintes sont à lever:
- La consommation d'énergie,optimisation en effectuant plusieurs tests :
- tests de consommation (courant,tension),
- tests de fonctionnement,
- tests de portées, ...
- La miniaturisation de la carte (routage).
Choix techniques : matériel et logiciel
Un descriptif fonctionnel des constituants de la carte :
- un micro-contrôleur de type ATMEGA328P : en charge de la lecture des mesures et du traitement des données,
- un module radio de type RF-LORA-868-SO : compatible avec l'Arduino avec une bande de fréquences large et une basse consommation,
- un programmateur ICSP compatible avec l'ATMEGA328P
- un régulateur à quatz
- quelques capteurs : de température, luminosité, ...
- un petit écran pour l'affichage (accessoire).
Feuille de route
Pour les pièces à assembler
Pour les pièces de puzzle il est possible de partir du fichier : [1].
- obtenir un premier prototype en carton avec la découpeuse laser ;
- modifier les pièces en ajoutant les encoches pour insérer les aimants commandés [2] ;
- trouver une méthode pour fixer durablement les aimants (colle, soudure, ...) ;
- réaliser la découpe définitive sur du MDF.
Pour les circuit imprimés
Récupérer le schéma d'un Arduino Uno CMS pour le logiciel de conception de circuit eagle : [3]
- en extraire les composants (menu exporter) ;
- déterminer les composants pour la partie alimentation ;
- déterminer les composants pour la partie micro-contrôleur ;
- créer le PCB pour la partie alimentation ;
- créer le PCB pour la partie micro-contrôleur en utilisant les lignes nécessaires.
Lire la documentation du module LORA RF-LORA-868-SO [4].
Carte capteur
Un extrait du rapport du projet "Création d’un système domotique sans fil" de 2014/2015 :
Pour communiquer avec les cartes filles, nous sommes partis sur un bus universel en 9 signaux, comprenant alimentation, masse, port série, deux chips select, une entrée tout ou rien et une entrée analogique.
Cet extrait définit les lignes à passer entre la pièce micro-contrôleur et la pièce capteur.
Avancement du Projet
Semaine 1
L'étude des caractéristiques du LORA(sensibilité, portée,..) et du micro-contrôleur.
Ce sont 2 composants majeurs que nous aurons à utiliser dans notre projet. Comme décrit dans le sujet, nous serons amenées à fabriquer des cartes indépendantes dont une comportant le LORA (carte de transmission RF) et une autre carte comportant le micro contrôleur (carte Arduino).
Le LORA est un type de réseau basé sur le protocole LORaWAN et non le protocole IP des réseaux 3G ou 4G pour répondre aux problématiques des objets connectés.
Durant cette semaine, nous avons établi la liste du matériel à commander .Nous avons également discuté sur le choix du module Lora qui conviendrait.
Semaine 2
Modélisation des composants sur les cartons.
Validation de la liste du matériel. Nous avons modélisé les différentes cartes sur des cartons en essayant de réfléchir sur les connexions entre les cartes notamment la disposition des différentes broches de chaque carte de sorte que les pistes de celles ci ne se croisent pas. (l'idée serait de faire une carte sous forme de puzzle(avec plusieurs pièces(cartes)).
Semaine 3
Carte test: Allumage d'une LED.
Nous avons réalisé une carte pour contrôler l'allumage d'une LED en utilisant quelques matériels notamment des piles,une résistance,des aimants,..Le but était de vérifier si les aimants(à cause des métaux qui les composent) pouvaient être soudés sur la plaque et si ces derniers étaient conducteurs. Même si nous avons eu du mal à fixer les aimants sur la plaque dû au fait qu'ils sont miniatures, le test a été concluant : les aimants néodymes sont conducteurs. Voici une photo de la carte.
Semaine 4
Réalisation des bibliotheques intégrées sur ALTIUM
Pour pouvoir réaliser les schématiques, nous avons créé les bibliothèques(schématiques et empreintes) de certains composants non standards tels que le LORA et les régulateurs en se servant des datasheet pour le dimensionnement des composants(largeur,longueur, position des broches,....) Les composants nous seront remis après validation de ces bibliothèques par nos encadrants. Voici les schématiques et empreintes des composants :
Semaine 5
Réalisation des schématiques des cartes sur ALTIUM
Après avoir réalisé les bibliothèques des composants ,nous avons entamé une seconde phase du projet : celle de la réalisation des PCB sur ALTIUM. Les schématiques des 3 cartes ont été donc réalisés.Photos à ajouter..
Semaine 6
Routage des cartes sur ALTIUM
Après avoir réalisé les schématiques des différentes cartes, nous avons donc procédé au routage. Grâce à un tutoriel trouvé sur internet, nous avons réalisé le routage de la première carte sans trop de difficultés.Photos à ajouter....
Média:Guide_demarrage_Altium_Designer.pdf
Nous avons aussi commencé les tests du Lora.
Semaine 7
Tests de fonctionnement des modules LORA
Quatre modules RF LORA nous ont été fournis au début du projet.Il a fallu donc les tester pour voir s'ils fonctionnaient=>Résultat : 2 modules fonctionnent correctement. Par la suite, nous avons effectué plusieurs tests à savoir test de courant, de portée,. Comme besoins matériels, nous avons utilisé 2 cartes Arduino ,2modules Lora,2 câbles (servent d'alimentation).Nous avons créer un système d'émission/réception. Le principe est simple,il suffit d'envoyer des informations au module Lora après avoir téléchargé le programme et vérifier si l'unité de réception recoit bien les données.
Nous avons donc réussi à tester le système avec une portée de quelques mètres (salle E306-salle C201) , on pouvait très bien aller plus loin.
Vous pouvez cliquez sur le lien en dessous pour voir la vidéo:
Vidéo du test du système émission/réception
Pour le test de Lora, nous avons eu un problème : si le récepteur n'arrive pas à recevoir un paquet autrement dit si le récepteur perd un paquet, la transmission s’arrête.
Il est important aussi de préciser les connections entre le module Lora et L'Arduino:
En mode émission: Rx est connecté sur Tx ,Tx est connecté sur Rx En mode réception:Rx est connecté sur MOSI,Tx est connecté sur SS
CONNEXIONS entre module LORA et ARDUINO
Revenons sur le travail de la semaine 2. Pour une communication rapide des données entre le microcontroleur AtMEGA328P et le LORA, nous utiliserons le bus de communication série SPI. Ce choix a été fait en tenant compte du fait que les 2 composants peuvent utiliser cette interface de communication.(voir datasheet Lora page 2) Concrètement,les pins 12(Reset),13(SC),14(SDI),15(SDO),16(nSEL) du LORA seront reliés respectivement aux pins 29(RESET),14(SS),15(MOSI),16(MISO),17(SCK).Les broches seront reliés par des pistes imprimés(en cuivre).
Média:Connexions-lora-atmega328P.pdf
Une documentation détaillant le principe de fonctionnement de l'interface de communication du bus SPI est disponible(lien ci dessous):
Média:documentation-bus-spi.pdf
Semaine 8
Finalisation du routage des cartes et génération des fichiers de fabrication
Nous avons aussi résolu le problème de perte de paquet que nous avons eu la semaine dernière. Et nous avons effectué un autre test entre la salle E306 et la salle C205. Le récepteur et le transmetteur arrivent à communiquer même si il y a eu pertes des paquets. Avec le logiciel Arduino(sur le terminal), nous pouvons visualiser les commandes envoyées par le LORA qui nous renseignent sur des informations comme l'adresse de destination, le mode de fonctionnement,... Voici le code pour Arduino et les caractères du Lora.
Semaine 9
Gravure des cartes electroniques
Pendant cette semaine nous avons effectué différents tests de portée du Lora. Nous avons laissé le transmetteur dans la salle E306.
1). Pour le premier test, nous avons mis le récepteur dans la salle C201. Les deux Loras pouvaient communiquer sans perte de paquet.
2). Après nous sommes parties un peu plus loin avec le récepteur jusque dans le hall et le récepteur fonctionnait correctement.
3). Ensuite,nous nous sommes déplacés avec le récepteur jusqu'à la station 4 cantons. On constate qu'en dehors de la station, le récepteur reçoit bien les messages,par contre dans la station métro parfois le récepteur se bloquait.
4). Lorsque le métro était entrain de rouler, le récepteur ne fonctionnait pas,mais quand le métro s'est arrêté dans la station cité scientifique, le récepteur s'est remis à fonctionner.
5). Enfin,lorsque nous sommes arrivés à la station Triolo, le Lora s'est arrêté complètement.
Selon les documentations du Lora, il a certaines mode de distance. Pour tous ces tests que nous avons fait , nous n'avons pas utilisé le mode de plus longue portée. Donc pour les tests de la semaine prochaine nous allons changer le mode pour essayer de trouver la plus longue distance de notre Lora.
Nous avons également fait tirer les 3 cartes électroniques par le service EEI de l'école.
Semaine 10
Soudure des cartes electroniques
Durant cette semaine, nous avons soudé les cartes.Nous avons d'abord soudé la carte RF(avec Lora,car moins de composants à souder) de manière classique à l'aide d'un fer à souder ,ensuite la carte d'alimentation.Le seul moyen possible pour pouvoir la souder a été d'utiliser de la colle conductrice pour fixer les composants(car les pads des composants sont très petits:CMS);la carte a été ensuite passée au four à refusion.Nous l'avons ensuite testé en injectant du 5 V via USB port pour voir si elle délivrait du 5V et du 3,3V: test concluant.(Voir photo ci dessous). La carte Arduino a également été soudée malgré le manque de quelques composants qui ont été commandés par la suite.
Cependant,ce travail s'est avéré très laborieux car la soudure des aimants n'a pas du tout été facile.Le problème vient du fait que les aimants sont trop petits et avons eu du mal à les fixer mais aussi et surtout parce que l'étain(métal non magnétique) ne colle pas facile à l'aimant.A force de le souder, l'aimant se démagnétisait.
Sur la photo, on voit la LED verte,témoin d'alimentation de la carte en 5V
Suite du test de la semaine dernière, nous avons changé notre code d'Arduino pour que le Lora puisse travailler sous la condition de la plus longue distance avec la puissance maximale. Nous avons effectué nos tests dans certains endroits différents.
1). Pour le premier test, nous avons arrêté au parking à cote de la station 4 canton, le Lora a bien fonctionné.
2). Pour le deuxième test, nous somme arrivés à cote du bâtiment haute borne, le Lora a bien fonctionné.
3). Pour le troisième test, nous somme arrivés à cote de l'entrprise NRC (le fond de haute borne), le Lora a toujours marché.
4). Pour le quatrième test, nous somme arrivés à Sainghin, le Lora a aussi bien fonctionné.
5). Pour le cinquième test, nous somme arrivés à un relais gsm (le seconde passage l'autoroute de la sortie Sainghin, entre Saighin vers Anstaing), le Lora pouvait recevoir des signaux sans aucun problème.
6). Pour le sixième test, nous somme arrivés à Gruson (on s'est arrêté à cote d'un arbre du chemin), pareil le Lora a bien marché.
7). Pour le septième test, nous somme arrivés a l'entrée de Cysoin, le Lora a fonctionné moyennement. C’était la limite de captage.
8). Pour le huitième test, nous somme arrivés a Camphin, le Lora est revenu la mode de fonctionner.
Les tests que nous avons fait cette semaine sont dans les endroits où il n'y a pas beaucoup de bâtiments ni d'arbres, cela nous a donné moins de perturbations. Nous pensons que c'est aussi une raison pour laquelle que nous avons pas pu aller plus loin la dernière semaine. Le trajet que nous avons choisit il y a trop de bâtiment. Même pour le test 7, vu que nous avons effectué le test à cote d'un arbre le Lora a fonctionné moins bien.
Sauf les tests,nous avons aussi essayé de configuré les Lora que nous avons commandé avec les Arduinos(TX et RX). Il faut programmer directement SX1272 alors avec les Shields c'était le micro contrôleur intégré qui s'est occupé.La programmation directe du SX1272 est relativement complexe et n'a pas pu être menée dans le temps restant.
Voici les programmations des Shields
Les difficultés rencontrés
Cependant,nous avons rencontré pas mal de difficultés notamment lors de la création des bibliothèques intégrées car nous sommes rendus compte qu'elles avaient été mal faites.Nous avons donc dû les refaire ce qui nous a énormément pris du temps. En effectuant le routage, certaines pistes se croisaient;ce qui implique refaire la schématique pour éviter ce problème. Nous avons aussi rencontré les difficultés de souder les composants.Vu que les composants que nous avons commandé sont en CMS,nous avons risqué d'avoir le court circuit.Quant à souder des petits aimants, nous avons eu mal y arriver.En plus, les aimants perdent leurs caractères après être soudés donc les cartes fonctionnent moins bien.