FR 3163240 A1 20251212 FR 2405892 A 20240605 boîtier capable de lire du contenu audio via une figurine d’artiste équipée d’une puce NFC figure pour abrégé : figure 6 Boitier AUDIO NFC MUSIC IDOLS Introduction Le but est de créer un boîtier capable de lire du contenu audio via une figurine d’artiste équipée d’une puce NFC. Ce contenu audio sera disponible dans une mémoire interne préalablement téléchargé d’un serveur sécurisé. Définitions API: Application Programming Interface NFC: Near Field Communication POC: Proof Of Concept REST: Representational State Transfer SSID: Service SET Identifier WPS: Wi-Fi Protected Setup Fonctionnalités Le boîtier devra permettre: de lire un tag NFC de stocker du contenu dans une mémoire flash de diffuser du contenu audio via une ou plusieurs enceintes audio (stéréo) de diffuser du contenu audio via bluetooth ou chromecast (firecast etc) de se connecter au réseau domestique et Internet via une connexion wifi de baisser ou augmenter le volume via des boutons de passer ou revenir à une piste via des boutons de surveiller l’espace de stockage interne de gérer la connexion wifi de gérer la connexion bluetooth d'être utilisé avec ou sans branchement électrique Toutes les connexions à un serveur sur Internet (ou cloud) devront être sécurisées. Les fichiers stockés devront être sécurisés également et ne pourront pas être copiés. Interface mobile L’interface mobile compatible Android et IOS, devra permettre de configurer le boîtier Connection Wifi: scan, listing, connection, WPS, SSID manuel, mot de passe. Connecter des enceintes bluetooth: scan, connection, pin code. gérer l’espace de stockage (affichage et suppression des pistes) choisir si le boîtier télécharge les audios dans sa mémoire interne ou s’il lit directement via le cloud. de restaurer la configuration d’usine de piloter le boîtier Volume up/down Chanson suivante / précédente Voir le titre en cours (jaquette, artiste et titre) => prévoir un visuel avec les pistes audio. De voir l’espace disponible sur l'espace de stockage, de supprimer des pistes etc.. Dans un premier il est possible d’avoir ces fonctionnalités via une interface web. A terme, l’application mobile pourra utiliser l'API de cette interface web pour piloter le boîtier.Besoins technique Wifi Bluetooth Lecteur NFC Stockage flash (32 GB / 64 GB) Enceinte audio Boutons Leds Fonctionnement général À la réception du boîtier, il faut tout d’abord le charger ou le brancher électriquement. Il faut ensuite le configurer via l’application mobile. Pour se faire, il faut que l’application se connecte au boîtier pour réaliser la première configuration. Une fois connecté au boîtier, l’application permettra de: connecter le boîtier au wifi connecter une enceinte bluetooth de caster (via chromecast / firecast ou autre) configurer le boîtier: lecture hors ligne lecture en ligne reprise de la lecture notifications de fin de téléchargement etc… Ce boîtier est un nouveau mode de lecture d’albums d’artistes musicaux. Lorsqu’un tag (figurine d’artiste) est posé sur le lecteur, le boîtier télécharge les pistes audio associées sur un serveur ou les lits directement en fonction de la configuration. Lorsque le tag est retiré du lecteur, la lecture s’interrompt. Si le tag est remis sur le lecteur, la lecture reprend là où elle s’était interrompue (ce comportement pourra être configuré). La mémoire interne devra être assez grande pour contenir environ 1000 pistes audios (en sachant qu’une piste fait environ 4 MB, la mémoire interne peut faire 32 GB ou 64 GB). Fonctionnement technique Boitier Lors du premier boot, le fichier de configuration n’est pas renseigné (il ne contient pas de Wifi SSID enregistré). Le boîtier se met donc en Wifi Point to Point pour que l’application mobile soit capable de s’y connecter (SSID et password à définir et à renseigner dans l’application mobile). Ensuite, il doit être possible de scanner les wifi alentour et de s’y connecter. Lorsque le boîtier est connecté au wifi domestique, l’application mobile doit retrouver l’adresse IP du boîtier pour s’y connecter ( Méthode à définir ). Boitier partie serveur Le boîtier aura une partie serveur pour communiquer avec l’application mobile. Cette partie serveur contiendra un serveur REST qui répondra à une API définie. Voici les API qui pourront être nécessaires: get_config wifi_scan wifi_set bluetooth_scan bluetooth_set - … Configuration Le choix de fichier de configuration peut être le format “ini”. Le fichier de configuration devra être chiffré car il contiendra les mot de passe pour le Wifi et le bluetooth. Le chiffrement des données sera traité dans la partie sécurité et pourra être défini plus tard. Exemple de fichier de configuration: [settings] play_mode=offline resume=on [wifi] SSID=my_wifi password=my_password1234 ip_config=auto [bluetooth] pair1=my_bose etc… Pour la fonction ‘resume’ il faut prévoir de garder en mémoire les dernières pistes lues (les 5 dernières devrait être suffisant), et de garder à quel timecode on est en train de lire. Il est acceptable de noter le timecode dans le fichier de configuration toutes les 5 ou 10 secondes. Une fois le nombre de atteint (les 5 titres), le premier et le plus ancien est écrasé et remplacé. Le fichier de configuration devra être différent de celui de configuration wifi et pourra ne pas être chiffré. Exemple: [resume] title0= title0_timecode=140 tile1= title1_timecode= etc… Vérification des mises à jour Lors du démarrage du boîtier, celui-ci se connecte sur une URL prédéfinie, pour récupérer un fichier qui contiendra la nouvelle version disponible sur le serveur. Si la version est supérieure à la version courante de l’application (notée en dur dans l’application lors de la compilation), l’application télécharge le fichier de mise à jour et appliquera la mise à jour (Format et méthode à définir: fichier compressé, gestion des erreurs de téléchargement etc…) Données NFC Lorsqu’un tag NFC est lu, cela donne un identifiant. Une requête via une URL permet de faire correspondre cet identifiant avec une liste de pistes audio à télécharger ou lire. La partie serveur Le serveur devra être capable de répondre à des requêtes simples au format REST: authentication: être capable d’authentifier un boîtier pour être sûr qu’il a le droit de se connecter au serveur. Cela peut être fait en utilisant un certificat et des données du uniques du chipset (voir partie sécurité). get_datalist_from_id: transforme un identifiant en liste de piste audio. get_data: téléchargement des fichiers audio (via HTTPS directement). Pour contenir le lien entre ID et fichier audio, il faut définir une base de données qui contiendra ces informations. Le get_datalist_from_id cherchera dans la base de données pour retourner la liste des fichiers disponibles pour cet identifiant. Sécurité Boitier Pour la sécurité, le firmware devrait être dans une mémoire différente des données audio et des configurations. Le firmware devra être sécurisé. Il faut prévoir la mise à jour du firmware également via un serveur cloud. Le bootloader ne pourra pas être mis à jour. Le serveur devra être capable d’authentifier un boîtier pour savoir s’il a le droit de communiquer avec lui. Données Les données ne devront pas circuler en clair sur le réseau. Les connexions au cloud devront se faire en minimum en SSL / TLS. Les données audio devront être chiffrées côté serveur et déchiffrées sur le boîtier.