Bonjour,
Pour un projet de chatière motorisée avec lecteur de puce RFID je dois stocker les tags des chats dans un tableau, dans lequel je veux aussi mettre le nom du chat (avec des caractères accentués), éventuellement un avatar (mini photo).
Le tag RFID est sous forme de num à 15 chiffres.
Je ne vois pas bien comment déclarer ce tableau, je ne trouve pas de doc claire. Et en plus ce tableau, vide au départ, doit pouvoir être modifié de façon interactive, du style j'appuie sur un bouton, et ça crée une nouvelle entrée dans le tableau avec le tag détecté par le lecteur (à ce stade seulement cette info, le nom etc. sont ajoutés postérieurement, et les suppressions également.
Je ne sais pas s'il est intelligent de définir dès le départ que le nombre de chats est limité à X, ainsi que le nombre de caractères du nom, la taille de l'image..., ou si je laisse ça extensible à volonté. Sachant que je n'ai pas une ménagerie.
Comme je veux aussi pouvoir relier ce tableau à un autre tableau d'autorisations d'entrées/sorties (les chats aussi ont droit à un couvre-feu surtout s'il y a un RDV véto le lendemain matin) j'hésite à ajouter en plus une clé permettant un accès plus simple que la lecture du tag, mais aucune idée si ça a un intérêt en terme de performance.
Merci d'avance pour vos conseils.
Je verrais bien un tableau de structures pour stocker les informations de chaque chat.
Supposons
#define MAXCHATS 20
Puis la structure, à aménager selon les informations à stocker :
struct mesChats {
int numero;
char nom[20];
byte UID[4];
char avatar[20];
int heureEntree;
int heureSortie;
}
et tu définis le tableau comme ceci :
mesChats chat[MAXCHATS];
J'ai ajouté un champ pour savoir à quelle heure ils entrent et sortent. Si tu as une RTC ou un moyen de connaitre l'heure, tu peux la stocker sous le format 100*heure + minutes
Pour stocker une valeur, tu fais par exemple :
chat[2].numero = 3;
memcpy(chat[0].nom, "Minou", 5);
Ha, super le coup de la structure, c'est exactement ce que je cherchais, comment mélanger différents types de données dans le tableau.
Donc je vais étudier ça de près.
Par contre je vois mal ce que signifient certaines définitions :
int numero c'est le numéro du chat de 0 à 19 ?
byte UID[4] c'est le tag rfid ? Ne serait-il pas judicieux de le considérer comme string ? Mais je ne sais pas encore bien ce que peut renvoyer comme info un lecteur RFID...
char avatar|20] je pige pas, je pensais à une image comme celle de ton avatar sur ce forum, c'est la bonne syntaxe ?
Pour les heures je vais devoir prévoir de gérer ça, au plus simple, j'y avais pensé. Mais elles ne seront pas stockées pour chaque chat, plutôt dans des scenarii dans une table à part, du genre entrée autorisée de hhmm à hhmm, sortie de hhmm à hhmm, et j'applique le scenario X au chat Y pendant Z jours. Ce truc de couvre-feu c'est vraiment pour le fun, parce que je peux aussi très simplement décider qu'aucun chat ne peut sortir tant que je n'ai pas décidé le contraire, ce que je fais actuellement avec ma chatière basique. Mais pourquoi faire simple quand on peut faire compliqué, c'est tellement plus marrant !
En tout cas un grand merci !
J'ai mis des composants un peu au pif, tu choisis ce que tu veux faire.
Le numéro du tag est souvent fourni comme un tableau de 4 octets, d'où ce choix.
Je trouvais intéressant de stocker les heures d'entrée et sortie de chaque chat, ça te permet d'en savoir plus sur leurs aller et venues.
Mais bien sûr, c'est toi qui vois...
Pour l'avatar, il s'agit de stocker le nom d'un fichier contenant l'image. Ce fichier sera certainement sur une carte SD, ou en mémoire si tu utilises un ESP32. Sur un Arduino standard, il est peu probable que tu puisses stocker des images dans la mémoire, sauf peut-être pour un Mega.
OK.
Alors le tag c'est plutôt 5 octets, 1 groupe de 5 nombres de 000 à 999, j'adapte.
L'avatar qui contient un nom de fichier oui c'est parfait, la carte sd est prévue. Désolé j'avais pas percuté.
Les heures d'entrée/sortie j'y avais aussi pensé, je garde ça pour la version 2.0... Avec un historique.
Zut, pour le tag RFID c'est 5 groupes de nombres de 000 à 999 donc 10 bits et non 8, je me trompe ? Du coup comment je déclare ça ?
n'est-ce pas la représentation ASCII de votre ID du tag dont vous parlez ? ce n'est pas la peine de stocker la version "longue", gardez juste la version binaire.
Quelle type de carte utilisez vous ?
Bonjour,
le tag rfid est un nombre à 15 chiffres, et comme je n'ai pas encore le lecteur je ne sais pas comment il va envoyer l'info.
Sinon pour la carte je viens de commander une Mega 2560 Pro Mini.
tag rfid est un nombre à 15 chiffres
comment savez vous cela ? pouvez vous donner un lien vers le matériel ?
C'est ce qui est marqué sur la carte d'enregistrement que m'a remise le véto. Alors ce n'est pas expressément dit que c'est le contenu de l'étiquette, c'est indiqué que c'est le numéro de la puce.
J'en déduit que c'est bien ça qui est stocké dans la puce, et je viens de prendre la peine d'appeler le véto pour vérifier. Il confirme que c'est bien cette info qui est lue par son lecteur.
Et comme un nombre de cette grandeur est difficilement stockable sous forme numérique je pars sur le principe que c'est du texte, donc je déclare char UID[15]; en attendant de recevoir le lecteur.
J'ai bon ou pas ?
Encore une piste pour le format alphabétique : sur le dossier vétérinaire des chats j'ai aussi un jeu d'étiquettes code-barre avec le même numéro. Et un code barre n'est pas numérique, c'est juste la transcription caractère par caractère de chiffres sous forme de barres.
ah OK - je pensais que vous vouliez bidouiller un truc avec un tag RFID que l'on trouve dans les kits arduinos.
La puce implantée dans les animaux est connue sous le nom FDXA ou FDXB et répond à la norme ISO11784 (ou ISO11785). En Europe tous les pays utilisent des puces conformes à la norme ISO FDX B. (le F c'est pour Full duplex, il existe aussi du H pour Half Duplex).
=> Donc ce que lit le transceiver est tout à fait normé. Ce que votre vétérinaire vous donne c'est un sous ensemble des données lues, version lisible pour les humains
Quel lecteur avez vous acheté ?
J-M-L:
Quel lecteur avez vous acheté ?
Je suis encore en train de chercher lequel choisir, sur aliexpress c'est pas trop facile de s'y retrouver. Je cherche un truc avec une antenne qui permettrait de lire à au moins 10 cm, voire plus, mes chats ne sont pas du format porte-clé (norvégiens) et je veux pouvoir lire des deux côtés de la porte qui sera en plexi.
Donc puisque j'ai manifestement affaire à un connaissseur, et que moi je suis néophyte en arduino, je veux bien éventuellement un conseil sur lequel choisir et où l'acheter.
j'ai joué avec ces trucs là il y a quelques années en guise d'exploration (un truc un peu similaire pour le chat de mes parents), je ne suis pas un connaisseur et le matériel n'est pas chez moi...
je n'ai pas retrouvé le module exact que j'avais acheté. Si j'en crois la vidéo pour celui ci (que je ne connais pas) a l'air fonctionnel... Attention ensuite à la puissance émise, faut pas griller le chat
Après moult recherches j'ai finalement acheté celui-ci.
Sa portée a l'air faible, je vais rajouter une casquette sur la chatière pour canaliser les chats, et voir si je peux bricoler une 2e antenne,pur détecter des deux côtésde la porte.
J'avais aussi ajouté à mon panier la puce dans sa seringue pour mes essais et ce matin au moment de valider, plus de puce, et plus nulle part sur Amazon... Pas pigé.
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.