FabLab : espaces de créativités ouverts

Étiquette : Zanimo

  • Zanimo – Solution Technique

    Equipe 

    Divya RAMDOO

    Le Kim NGUYEN

    Moussa OYEWOLE

    Maxime RICORDEAU

    I. Contexte

    Dans le cadre de la thématique d’approfondissement CoOC (Conception d’Objets Communicants), notre équipe pluridisciplinaire s’est intéressée à la problématique de la perte d’animaux. En effet, 70 000 animaux ont été déclarés perdus ou abandonnés en France en 2021. Pour participer à la résolution de cette problématique, nous nous sommes concentré sur la réalisation d’une solution basée sur un collier traceur.

    Dans cet article, nous nous efforcerons à vous expliquer le cheminement de la création de cette solution étape par étape.

     

    II. Réalisation

    1. Liste des matériaux

     

    2. Electronique

    Premièrement, assurez-vous d’avoir un logiciel de programmation tel que Visual Studio Code et de l’extension Pymakr, qui permet de reconnaître la LoPy4. 

     

              a. Gateway (passerelle)

    Après avoir connecté la carte LoPy4 au moyen d’un câble USB, suivez les instructions qui suivent, pour communiquer avec cette dernière, et lancer un 1er programme en python : Getting Started.

    Dans notre githlab vous trouverez ensuite un dossier “lorawan-nano-gateway” contenant tous les éléments pour configurer la gateway. Vous pourrez ainsi connecter une carte LoPy à un réseau LoRaWAN tel que The Things Networks (TTN), afin de l’utiliser comme une nano-gateway.

    Ce code utilise des paramètres spécifiques pour la connexion au TTN dans la région européenne de 868 MHz. Pour le configurer en fonction de votre utilisation spécifique, veuillez consulter le fichier config.py.

    Le code de la Nano-Gateway est divisé en 3 fichiers, main.py, config.py et nanogateway.py. Ces fichiers sont utilisés pour configurer et spécifier comment votre passerelle se connectera à votre réseau préféré et comment elle peut agir en tant que transitaire de paquets.

    Main (main.py)

    Ce fichier s’exécute au démarrage et appelle les fichiers library et config.py pour initialiser la nano-gateway. Une fois la configuration définie, la nano-gateway est alors démarrée.

    Configuration (config.py)

    Ce fichier contient les paramètres spécifiques au serveur et au réseau auquel il se connecte. En fonction de votre région et de votre fournisseur (TTN, Loriot, etc.), ces paramètres varient.

    Library (nanogateway.py)

    La bibliothèque nano-gateway contrôle toute la génération et la transmission des paquets pour les données LoRa.

     

    Ensuite, pour configurer la passerelle avec The Things Network (TTN), il faut créer/enregistrer un compte, comprenant un nom d’utilisateur et une adresse électronique. Une fois le compte créé, vous pouvez commencer à enregistrer votre nano-gateway. Pour ce faire, vous devez vous rendre sur la page Web de la console TTN.

    Dans la console TTN, vous avez deux options : applications et passerelles. Sélectionnez passerelles, puis cliquez sur enregistrer une passerelle. Cela vous permettra de configurer et d’enregistrer une nouvelle nano-gateway.

    Remplissez Gateway EUI et cliquez sur Confirm. Certaines passerelles n’utilisent pas Gateway EUI (par exemple, la passerelle The Things Kickstarter), auquel cas vous pouvez simplement cliquer sur Continue without EUI.

    Sur le formulaire d’enregistrement manuel, remplissez le Frequency Plan et Gateway ID s’il n’a pas été pré-rempli, les autres champs sont facultatifs. Cliquez sur Register Gateway pour terminer.

    Votre passerelle sera créée et vous serez redirigé vers la page d’aperçu de votre passerelle nouvellement créée.

     

    Maintenant vous avez juste besoin de fournir une alimentation 5V et une connexion réseau à la passerelle. La passerelle se connectera automatiquement au The Things Network.

     

    b. Collier (end-device)

    Pour configurer le collier, vous trouverez dans notre githlab, un dossier “get_data_and_send” contenant tous les éléments pour configurer cette fois le collier et récupérer les données (coordonnées) et les transmettre sur TTN. 

    Encore une fois, ce dossier contient trois fichiers principaux : main.py, config.py, pytrack_2.py et un dossier contenant la library, elle même divisée en trois fichiers détaillés plus bas.

    Main (main.py)

    Utilisé pour activer end-device automatiquement lorsqu’il est alimenté par une batterie.

    Library 

    L76GNSS.py est le module GPS qui peut fournir des données de localisation à votre application. Vous trouverez plus de détails ici GPS (pycom.io)

    LIS2HH12.py est un accéléromètre 3 axes qui fournit des sorties pour l’accélération, le roulis et le tangage. Vous trouverez plus de détails ici Accelerometer (pycom.io)

    pycoproc2.py est une bibliothèque python de soutien pour les tableaux d’extension Pysense 2 et Pytrack 2. Vous trouverez plus de détails ici Pycoproc2 (pycom.io)

    Pytrack_2.py

    Ce fichier de code python a deux tâches. Tout d’abord, il va se connecter à la passerelle via OTAA. Lorsque la connexion est réussie, il utilise la bibliothèque L76GNSS pour obtenir les données de coordonnées et les transmettre à la passerelle en utilisant la connexion précédemment établie.

     

     

    3. Boitier pour le collier

    Pour que les composants puissent tenir sur l’animal, nous avons décidé d’imprimer un boîtier pouvant s’accrocher à n’importe quel collier ou harnais.

    Les plans SDM sont disponibles sur notre githlab dans le dossier “boitier”. Vous trouverez nos premiers plans et une version améliorée. 

     

     

    4. Application

    Comme le projet doit permettre de lier le collier avec son système GPS avec une application mobile, nous avons choisi de programmer notre application avec un framework facile et natif, permettant donc de programmer une seule fois pour les 2 plateformes que sont Android et IOS. 

    Ainsi, notre code est développé en orienté objet, facilement compréhensible et debuggable pour quiconque a les bases dans les langages utilisés.

    Pour ce faire, nous avons développé l’application mobile avec le framework Flutter de Google (Lien vers la documentation de Flutter : https://docs.flutter.dev/).

    C’est un Framework qui a aujourd’hui une communauté avec des millions de personnes, une documentation riche et facile permettant une prise en main facile et une grande quantité de tutoriel et de projets en open source réutilisable.

    Enfin, une API a été développée afin de permettre la récupération des données depuis TTL. Cette API permet de faire le lien entre l’application et la base de données sur laquelle les coordonnées GPS sont. 

    L’API a été développée très facilement avec le langage Python et la librairie Flask. Pour un début, un fichier texte est utilisé comme base de données.

    L’ensemble du code (Application mobile et Api) est présent sur le GitHub ici. L’API se trouve dans le répertoire zanimo/lib/api (https://github.com/Qamardine/zanimo/tree/main/lib/api).

     

    5. Interface mobile

    Afin de permettre aux utilisateurs de voir l’itinéraire vers le chien, nous avons développé une application mobile qui reçoit les coordonnées GPS et à l’aide de l’API de Google Maps , affiche la position du choix sur la carte et l’itinéraire vers celui-ci.

    L’application dispose aussi d’autres fonctionnalités qui n’ont pas pu toutes être terminées mais la fonctionnalité de base qui est celle de la localisation du chien et l’itinéraire jusqu’à lui a été totalement développée.

    Pour l’intégration de l’API de Google Maps, il faut aller sur le site Google cloud (https://console.cloud.google.com/google/maps-apis) et créer une nouvelle clé API.

     

     

    Cette clé API sera utilisée dans le code et permettra d’utiliser les services externes de Google.

    Il faut ensuite activer tous les services qui seront utilisés par cette clé API. Dans notre cas, on aura besoin d’activer les services : Maps SDK for Android; Maps SDK for IOS et Directions API.

    Les services API de Google sont payants. Mais pour une première utilisation, nous disposons d’une période de 3 mois d’essai gratuit.

    Les interfaces d’inscription et de connexion de notre application ont été développées. Il ne reste que la partie du backend pour stocker ces informations dans une base de données.

     

    Le dashboard également a été développé. Il ne reste plus qu’à lier celà au backend qui permettra de mettre les informations dynamiquement.

    La page permettant d’afficher la carte jusqu’au point du collier et de définir un point de référence ( le foyer du chien) est quant à elle terminée. Et enfin le front end de la page de réglage a été développé.

     

     

    III. Résultats et perspectives d’amélioration

    Voici premièrement une vidéo de démonstration de cette solution :

     

    Perspectives :

    • Position du téléphone comme référence pour l’itinéraire (plutôt que la position du foyer)
    • Développer les options de la page d’accueil (alerte si en dehors de la zone/déterminer le rayon de la zone …)
    • Développer le traçage d’une zone libre pour l’animal et le système d’alerte s’il la quitte
    • Utilisation de composants plus performants pour renforcer l’instabilité du GPS
    • Optimisation de la consommation d’énergie en développant un mode veille grâce à l’accéléromètre
    • Optimisation de la taille du boitier, son étanchéité et son ouverture/fermeture, en se procurant des composants plus petits

     

  • Zanimo – Enquête Terrain

    Dans l’objectif de réaliser notre enquête terrain, nous avons rapidement déterminé les personnes que nous souhaitions interviewer pour notre projet. Nous avons donc appelé et envoyé des mails à différents établissements spécialisés pour les animaux comme des vétérinaires, des refuges ou encore des éducateurs d’animaux aux alentours. Nous présentions toujours le projet avant de proposer une rencontre.

    Malheureusement, ce secteur étant très saturé, nous n’obtenons que très rarement des réponses favorables. Cependant, en persévérant, nous avons pu effectuer trois entretiens avec quatre personnes impactées différemment par l’enjeu des animaux :

    Camille, bénévole dans un refuge

    Valentin, éducateur canin

    Thierry, propriétaire d’un chien fugueur

    Corinne, propriétaire d’une chienne, équipée d’un collier GPS

     

    C’est à travers la richesse de ces différents profils, ainsi qu’à une recherche documentaire, que nous avons pu identifier et valider les hypothèses suivantes :

    •       Les propriétaires d’animaux sont confrontés à la perte de leurs compagnons.
    •       Ces mêmes propriétaires sont inquiets pour leurs animaux et cherchent des solutions pour leur bien-être.
    •       Les solutions existantes ne répondent que partiellement à ce besoin.

     

     

    Partie 1 – Synthèse de l’enquête terrain

    Enquête 1 :

    Camille, bénévole depuis 5 ans pour l’Arche de Noé au sein du bureau (décisionnaire de l’association), nous a accueilli et a accepté de répondre à nos questions et de nous faire découvrir cette association. Tous les chats adultes (95% des animaux du refuge) sont disposés directement dans les locaux (60 places) ou bien en famille d’accueil. Les chatons sont aussi tous en famille d’accueil. Des vétérinaires sur la ville de Brest sont partenaires et acceptent d’aider les bénévoles pour le soin des chats (vaccinations/stérilisation/problèmes de santé).

    Partenariat avec la fourrière de Brest qui récupère les chats errants pour les donner à l’Arche de Noé, évitant ainsi l’euthanasie (fréquence : 2 arrivées par mois). Mais cela dépend de l’adoption de ces chats.

    Quotidien des bénévoles (9h/12h) : nourrir, câliner, brosser, nettoyer leur environnement, désinfecter tout ce qui a été utilisé. Mercredi et samedi, permanence pour l’administratif. Tous les soirs, passage pour prodiguer les traitements indispensables (Bob chat diabétique nécessitant une piqûre).

    Manque de bénévole : besoin de 6 personnes 7j/7 (majeurs)

    Les chats peuvent montrer des signes de faiblesse pouvant être détectés uniquement par les bénévoles, connaissant leurs habitudes (petits signes). C’est pourquoi le suivi est très important. Un chat symptomatique est un chat malade depuis déjà pas mal de temps et assez gravement.

    La propreté et l’hygiène sont un point très important dans ce refuge. Sur les 3h de permanences chaque matin, 1h30 est passées au nettoyage et à la désinfection de tous les objets utilisés. Avant de rentrer dans chaque pièce, il est nécessaire de nettoyer ses chaussures en marchant dans un bac contenant une serviette humide et un produit.

     

    Enquête 2 :

    Valentin, 20 ans, vient de terminer son BTS pour lancer sa propre activité : l’éducation des chiens. Cette passion lui est venue lors du premier confinement. Le chien familial de nature agressive posait problème à sa famille. Valentin a profité du temps confiné, pour s’instruire sur l’éducation et la rééducation canine et appliqué les méthodes vu sur son propre animal.

    Aujourd’hui, après près de 100h de formation en ligne, Valentin peut enfin prétendre au poste d’éducateur canin. L’entretien s’est déroulé lors de la balade quotidienne de 2 chiens, dont Valentin s’occupe en ce moment, en l’absence de leurs maîtres. Valentin propose donc de l’éducation de chiots, de la rééducation de chiens et également du dog-sitting.

    Il n’utilise que très peu de matériel, car selon lui, c’est mieux de pouvoir sans passer pour éviter d’en être dépendant. Il utilise donc uniquement 2 laisses courtes et deux laisses longues.

    Commentaires :

     Les laisses longues sont souvent trop longues et donc traînent derrière lui pouvant le déséquilibrer. S’occupant de deux chiens à la fois durant certaines de ses balades, il arrive très souvent que les laisses s’entremêlent. Pour rassurer les maîtres, il aime bien souvent faire des photos avec les chiens. Cependant, ce n’est pas très facile en tenant la laisse de deux chiens qui tirent.

     

     

    Enquête 3 :

    Thierry, cadre de 58 ans, vit dans une maison à la campagne disposant d’un jardin de 1000 m². Il y vit avec sa famille et leur chien : Gosby un Epagneul breton (race de chien de chasse) de 11 ans.

    Le problème avec Gosby, c’est qu’il s’enfuit souvent. Soit il passe par le grillage quand il entrevoit des ouvertures, soit il se faufile dès que quelqu’un ouvre le portail ou le portillon sans faire attention. Ce problème est notamment dû au fait que Gosby est un chien diagnostiqué hyperactif et qu’il est d’une race de chasseur. De plus, Thierry assume ne pas promener assez souvent son chien, ce qui pourrait aider à résoudre son problème. Cependant, les ballades sont trop contraignantes et ne suffisent pas toujours car trop irrégulières.

    Pour ses maîtres, ses fuites sont problématiques pour plusieurs raisons. Cela peut impacter sa sécurité et celle des autres (peut provoquer un accident) ; Cela procure une gêne affective et une certaine angoisse liée à sa sécurité (kidnapping) ; au regard de la législation, la famille peut être en tort ; auparavant, Gosby détériorait la clôture pour pouvoir passer.

    Finalement le principal problème de ces fugues, c’est qu’il y a des risques.

    Pour le moment, pour éviter de nouvelles fugues, la famille redouble de vigilance lors de l’ouverture des accès (portail et portillon). Cependant, c’est très contraignant et parfois restreint la liberté du chien pendant quelques minutes (obligé d’enfermer le chien dans la maison le temps de sortir/rentrer une voiture dans le jardin).

    Les autres solutions existantes sont soit trop contraignantes pour eux et pour le chien, soit trop coûteuses. De plus, la famille manque de volonté.

    Selon eux, il serait intéressant de pouvoir faire sortir Gosby pour qu’il se promène en toute sécurité, sans qu’eux n’aient à le faire.

     

     

    Enquête 4 :

    Corinne vit en appartement avec son mari et leur jeune Fox-Terrier de 2 ans. Étant une chienne de chasse, Corinne et son mari la promènent tous les jours pour qu’elle puisse sortir de l’appartement clos. C’est une chienne bien élevée, éduquée très tôt pour venir lorsqu’on l’appelle. C’est pourquoi les promenades se font majoritairement sans laisse. Seulement, étant une chienne de chasse, il se pourrait que son instinct de chasse prenne le dessus sur son éducation à la vue/l’odeur d’un gibier. De plus, de par son jeune âge, elle ne revient pas toujours lorsque Corinne ou son mari l’appelle. 

    Pour éviter de vivre ce genre de situation, le mari de Corinne lui a offert en mai dernier, un collier GPS d’une marque très connue pour ce genre de produit. Ce choix s’est fait très rapidement, puisque son mari a regardé sur internet les colliers GPS existants ayant le meilleur rapport qualité/prix selon les internautes et étant de petite taille et léger pour leur jeune chienne. 

    Ils ont donc trouvé un boîtier se fixant à un collier et fonctionnant grâce à un abonnement mensuel. Il est cependant nécessaire d’avoir un téléphone portable pour télécharger l’application liée au boîtier. Sur l’application, Corinne peut voir la position de sa chienne. Ce n’est pas totalement du temps réel, car la position se met à jour toutes les 30 secondes. 

    Dans l’ensemble, le couple est plutôt satisfait de cet achat. Elle remarque cependant quelques détails importants : cela dépend beaucoup du réseau et parfois, s’approchant des bases militaires de Brest (notamment sur le sentier côtier), les brouilleurs empêchent la transmission de données entre le boîtier et le téléphone.  Même problème dû au fait que l’animal bouge et donc le boîtier à tendance à s’orienter vers le bas et donc de moins bien capté. Il serait intéressant de proposer un dispositif pouvant se fixer à un harnais pour que celui-ci soit toujours orienté vers le haut.

    Aussi, le boîtier n’est pas waterproof, et pour des chiens aimant beaucoup la boue et les rivières, l’appareil ne convient absolument pas.

    Enfin, l’attache au collier se fait avec des petits bouts de caoutchouc qui ne semblent pas très solides. En cas de casse, le boîtier entier doit être échangé/racheté. 

     

     

    Partie 2 – Persona