Traiter des données d'un arduino sur un pc via ethernet w5100

Bonjour,

je ne suis pas à mes premiers pas avec l'arduino et les ethernet shield w5100. Mais j'avoue que pour le coups je me heurte à un problème. Attention, je suis autodidacte et non un développeur aguerri

voici de quoi il retourne. J'ai 16 lecteurs RFID connecté à un arduino mega ( jusque là tout fonctionne bien). Lorsque je passe des puces RFID devant les lecteurs j'obtiens ce que je veux sur le moniteur série.

Maintenant, je souhaite affiché la position de chaque puce RFID sur un PC dans un tableau de 4X4 a l'aide d'une image pour chaque puce RFID via une carte ethernet w5100 en temps réel à plus ou moins 2s. La connexion ethernet ne pose pas de problème. C'est après que cela se gatte. J'ai bien compris après moult essais que la page HTML n'est pas la solution. Ou alors je suis passé à coté de quelques choses ?

Donc voici ma question : comment puis je réaliser cette interface sur le pc ?

La page HTML est certainement la manière la plus simple de réaliser une IHM. Sur le PC, on doit simplement lancer un navigateur. Ensuite l'ARDUINO doit embarquer un serveur WEB que le navigateur interroge périodiquement.

Le problème avec cette solution est que l'ARDUINO MEGA n'aura probablement pas assez de mémoire pour envoyer des images, à moins de se contenter de toutes petites images. Et il faudra un support de stockage pour ces images.

Une autre solution est de développer un serveur en PYTHON sur le PC. Je dis PYTHON car c'est probablement le plus simple.
Cette fois-ci l'ARDUINO est client et envoie au serveur des phrases courtes, par exemple "RFID5:READER2" pour indiquer que la carte 5 est sur le lecteur 2.
Le serveur et le client ne sont pas obligés de dialoguer en HTTP. Du TCP, ou même de l'UDP tout simple suffit.
Ensuite l'affichage sur le PC peut être réalisé en TKINTER, PYGAME, etc. mais on pourrait également le faire en HTML.

Merci pour ces info. Comme la carte ethernet est muni d'un lecteur SD, Je pense que le stockage ne devrait pas poser de problème pour les images (16 en tout et au peine 200ko par image).

et voilà mon problème qui point le bout de son nez : l'interrogation périodique.
J'ai surement loupé quelques choses au niveau du code HTML car pour l'instant les données envoyé depuis l'arduino ne se mettent à jour que si je rafraichit la page.

Je m'y remet demain

Pour python c'est très tentant comme processing d'ailleurs mais j'ai peur que ce soit très chronophage n'ayant aucune connaissance dans ces domaines (pour l'instant).

meta http-equiv="refresh" content="1"
Ce n'est pas très élégant mais ça marche.

Tout dépend des connaissances dans d'autres langages sur PC.
En C ou C++ cela risque d'être encore plus chronophage.

Merci j'avais un peu oublié le meta et pourtant j'ai utilisé cette commande sur d'autres sites au début du siècle :wink:

Pour l'élégance, je verrais plus tard. La priorité c'est d'avoir chaud l'hiver. En plus, l'accès ne sera qu'en local

Reste plus qu'à faire la page web sur une sd

Encore merci pour le déblocage ça marche

Et bien non, la page web va attendre un peu.

voici l'avancé du projet :wink:

L'arduino mega avec les 16 lecteurs rfid me renvoie bien les info souhaitées sur le serial

L'arduino mega avec son ethernet shield w5100 me renvoie bien des info avec un rafraîchissement de 1s. (encore une fois merci à @hbachetti pour cette partie)

mais par contre pas de connexion réseau si je couple le mega, la carte ethernet et les lecteurs RFID. Après quelques recherche, il semblerai que le problème soit au niveau du SPI. J'ai bien fait attention à ne pas utiliser les pin 10 et 53 du mega.

Pour @hbachetti : j'ai vue dans un vieux poste que vous aviez initialisé d'abord la carte réseau avant un lecteur de carte sd sinon vous aviez un problème sur le MISO. Pouvez vous m'en dire plus ?

Pour rappel :

Problème sur projet avec un module RFID-RC522 & module SDCARD READER - #7 by hbachetti)

Oui bien sûr, mais ce n'est pas un problème de SS, le problème est que la carte W5100 maintient la pin MISO à ZÉRO tant que la librairie Ethernet, et donc le chip W5100, n'a pas été initialisée.
J'ai vu ça à l'oscilloscope.

Merci d'avance

Oui, ici :
https://riton-duino.blogspot.com/2019/02/un-web-server-sur-ethernet.html
Voir 9.3. Générer le JAVASCRIPT à l'aide d'une template sur SD

Merci pour l'info. j'était déjà passer sur cette page. Mais hélas soit je m'y suis mal pris pour initialiser la carte réseau en premier soit j'ai une autre problème. Je vois cela ce week-end.

Pour aujourd'hui j'en est assez mangé :sweat_smile:

j'en remet une couche aujourd'hui car j'ai trouvé des pistes qui me semble intéressante à suivre

Meilleure conception de bus SPI en 3 étapes (dorkbotpdx.org)

Je vais essayer les étapes une par une et je vous tiens au courant.

Après tout, sur un forum les info sont faites pour circuler :stuck_out_tongue_winking_eye:

Me revoilà. Le projet avance bien.

Pour résumé:

1 Afin de faire cohabiter le shield ethernet et les 16 lecteurs RFID, j'ai du modifier le connecteur miso de la carte ethernet afin d'intercaler un buffer de façon à ce qu'elle n’accapare pas l'entrée MISO de l'arduino mega en permanence. Pour activer ou désactiver le buffer j'utilise la pin 10 qui sert de SS pour la carte ethernet (en faite comme indiqué dans le lien du poste précédent.

2 J'ai abandonné l'idée de stocker mes images sur le carte SD. Juste pour une question de rapidité d'affichage. Du coup, j'appelle les images qui sont sur un pc avec Xampp. RAS pour la fluidité

3 Je n'ai pas eue besoin de buffer sur les lecteurs RFID qui semble mieux conçu que la carte ethernet w5100 ( d'un autre coté c'est du made in RPC ). Ces cartes passent leur port MISO en haute impédance lorsqu'elles sont désactivées.

Voilà, il ne me reste plus qu'à associé les déplacements des puces RFID avec les mouvements des dessins et j'aurais fini cette partie.

Merci également à je sais plus qui pour avoir poster sur ce forum son code pour l'affichage d'image dans une page html depuis un navigateur et sans passer par une librairie. j'ai pu m'éviter quelques réflexion intense