IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Le navigateur aux commandes de l'Arduino [Tutoriel]


Sujet :

Arduino

  1. #21
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Merci.

  2. #22
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Points : 2 924
    Points
    2 924
    Par défaut
    Bonjour Beginner .

    Citation Envoyé par f-leb Voir le message
    mais ici tu peux choisir l'adresse MAC du shield par logiciel
    Je dirais même "tu dois choisir l'adresse MAC du shield par logiciel".

    La box a besoin de ce renseignement pour discriminer les différents appareils connectés et, accessoirement, leur attribuer une adresse IP. Comme le shield Ethernet ne fournit pas ce renseignement, la librairie impose à l'utilisateur de le fournir lui-même, à défaut de quoi la connexion sera impossible.

    Toute adresse MAC valide, excepté celles auxquelles f-leb fait allusion et celles utilisées par les appareils déjà connectés, sera acceptée comme étant l'adresse MAC fournie par le shield, et conférera une identité unique de ce shield

    Tu peux faire l'expérience suivante : tu fixes une adresse MAC quelconque sans fournir d'adresse IP pour laisser le serveur DHCP de la box attribuer une adresse IP, puis tu déconnectes et reconnectes ta carte plusieurs fois. Tu constates qu'elle se connecte toujours avec la même adresse IP. La box ne lui affecte pas une nouvelle adresse IP car elle "reconnaît" la carte.
    Maintenant, tu fixes une adresse MAC différente de la précédente. Tu constates alors que la box attribue une nouvelle adresse à ta carte.
    Si tu remets la première adresse MAC, ta carte se reconnecte avec la première adresse IP. Pour la box, il s'agit donc bien de deux matériels différents, que seule l'adresse MAC lui permet de discriminer.

    Amicalement,
    naute

  3. #23
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Salut,
    Merci.

    Citation Envoyé par naute Voir le message
    La box a besoin de ce renseignement pour discriminer les différents appareils connectés et, accessoirement, leur attribuer une adresse IP. Comme le shield Ethernet ne fournit pas ce renseignement, la librairie impose à l'utilisateur de le fournir lui-même, à défaut de quoi la connexion sera impossible.
    Oui mais comme l'adresse MAC que l'on fourni dans le code peut être différente de l’adresse MAC physique du shield Ethernet alors je suppose que la box ne se base pas sur cela pour "discriminer les différents appareils connectés", non ?

    Peut-être qu'elle se base sur les adresse MAC physiques (et non sur celles fournies par logiciel) des différents appareils connectés, non ?


    Citation Envoyé par naute Voir le message
    Tu peux faire l'expérience suivante : tu fixes une adresse MAC quelconque sans fournir d'adresse IP pour laisser le serveur DHCP de la box attribuer une adresse IP, puis tu déconnectes et reconnectes ta carte plusieurs fois. Tu constates qu'elle se connecte toujours avec la même adresse IP. La box ne lui affecte pas une nouvelle adresse IP car elle "reconnaît" la carte.
    Oui justement si la box reconnait la carte c'est que quelque part il existe une information qui identifie la carte et que la box est capable de lire indépendamment du code dans lequel on fournit une adresse MAC logicielle de son choix, non ? Et cette information en question serait l’adresse MAC physique de la carte ?

    Citation Envoyé par naute Voir le message
    Maintenant, tu fixes une adresse MAC différente de la précédente. Tu constates alors que la box attribue une nouvelle adresse à ta carte.
    Si tu remets la première adresse MAC, ta carte se reconnecte avec la première adresse IP. Pour la box, il s'agit donc bien de deux matériels différents, que seule l'adresse MAC lui permet de discriminer.
    Cela signifierait que la box garde en mémoire l'association "adresse IP - adresse MAC (fournie par logicielle)" qu'elle aurait faite lors d'une première connexion de la carte, non ?

  4. #24
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 604
    Points : 56 721
    Points
    56 721
    Billets dans le blog
    40
    Par défaut
    Salut,

    Citation Envoyé par Beginner. Voir le message
    Oui mais comme l'adresse MAC que l'on fourni dans le code peut être différente de l’adresse MAC physique du shield Ethernet ...
    Non, c'est ce qu'on essaie de t'expliquer... Un périphérique réseau a 1 adresse MAC (et une seule, c'est logique). Dans le cas de ce shield, cette adresse est définie par voie logicielle. C'est une adresse physique définie par voie logicielle.

  5. #25
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Merci.
    Ouais c'est un peu l'embrouille entre adresse MAC physique et logicielle...

    Je viens de lire ça :
    Fausses idées concernant le filtrage par adresse MAC

    Contrairement aux idées reçues, l'usurpation d'adresse MAC est très facile à réaliser, ce n'est donc pas un moyen de sécuriser l'accès à ses équipements Wi-Fi. En effet il faut distinguer l'adresse MAC physique de l'adresse MAC logicielle. L'adresse physique est en effet difficile à modifier, mais celle-ci sert uniquement d'adresse MAC par défaut pour établir les connexions réseau. C'est le système d'exploitation qui choisit la(les) adresse(s) MAC avec laquelle(lesquelles) il désire communiquer. Une bonne politique de sécurité ne doit donc pas reposer sur l'adresse MAC, puisque dans le cadre d'une connexion réseau, celle-ci n'est que logicielle.
    https://fr.wikipedia.org/wiki/Filtrage_par_adresse_MAC

  6. #26
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Si je comprends bien, à la base toutes les cartes ont une adresse MAC, chaque adresse MAC est unique :

    Une adresse MAC (Media Access Control1), parfois nommée adresse physique2, est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire. À moins qu'elle n'ait été modifiée par l'utilisateur, elle est unique au monde. Le MAC (acronyme de Media Access Control) n'a aucun rapport avec le Mac d'Apple (diminutif de Macintosh). Toutes les cartes réseau ont une adresse MAC, même celles contenues dans les PC et autres appareils connectés (tablette tactile, smartphone, consoles de jeux, réfrigérateurs, montres ...).
    Mais on peut très bien changer cette adresse :

    Changement d'adresse MAC

    Certaines personnes souhaitent changer l'adresse de MAC (adresse physique) d'une carte réseau local parce qu'une application en demande une particulière pour fonctionner, ou aussi parfois parce qu'il y a un conflit avec une autre adresse MAC sur le même réseau, ou pour éviter d’être tracé.
    Avec certains OS, l'adresse matérielle MAC n'est pas utilisée directement, ce qui permet de la modifier au niveau logiciel et non physique, elle est alors modifiable par l'utilisateur. Son changement permet de réduire le risque de traçage inhérent à tout identifiant immuable3. Mais cela peut poser d'autres problèmes par la suite, par exemple si l'accès à une connexion internet est filtré sur la base des adresses MAC.
    Le changement peut être temporaire avec une commande ou persistant en modifiant un fichier de configuration par exemple. Avec certains pilotes l'adresse MAC peut directement être modifiée dans les propriétés avancées de la carte réseau. À noter que certains logiciels tiers permettent également cette modification4.
    Je suppose donc que c'est ce qu'on fait dans le tuto : c'est-à-dire qu'on utilise pas forcément l'adresse MAC physique et unique de notre carte, on peut en choisir une différente par logiciel...

  7. #27
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 604
    Points : 56 721
    Points
    56 721
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Je viens de lire ça :
    Fausses idées concernant le filtrage par adresse MAC

    Contrairement aux idées reçues, l'usurpation d'adresse MAC est très facile à réaliser, ce n'est donc pas un moyen de sécuriser l'accès à ses équipements Wi-Fi. En effet il faut distinguer l'adresse MAC physique de l'adresse MAC logicielle. L'adresse physique est en effet difficile à modifier, mais celle-ci sert uniquement d'adresse MAC par défaut pour établir les connexions réseau. C'est le système d'exploitation qui choisit la(les) adresse(s) MAC avec laquelle(lesquelles) il désire communiquer. Une bonne politique de sécurité ne doit donc pas reposer sur l'adresse MAC, puisque dans le cadre d'une connexion réseau, celle-ci n'est que logicielle.
    https://fr.wikipedia.org/wiki/Filtrage_par_adresse_MAC
    D'un autre côté, l'Arduino n'a pas d'OS, donc je ne pense pas qu'il y ait d'embrouille ici et que l'adresse définie dans le code est celle qui sera utilisée.

  8. #28
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Points : 2 924
    Points
    2 924
    Par défaut
    Bonjour .

    Citation Envoyé par Beginner. Voir le message
    Oui justement si la box reconnait la carte c'est que quelque part il existe une information qui identifie la carte et que la box est capable de lire indépendamment du code dans lequel on fournit une adresse MAC logicielle de son choix, non ? Et cette information en question serait l’adresse MAC physique de la carte ?
    Non ! La puce W5500 ne possède pas d'adresse MAC codée en dur à la fabrication. Elle possède un registre pour stoker cette information qui lui est fournie par voie logicielle : c'est ce que fait la librairie ethernet2 avec l'adresse que tu lui fournis dans ton code. Tu peux bien sûr, une fois qu'une adresse MAC est affectée au shield, considérer que c'est son adresse physique : en tout état de cause, il n'en a pas d'autre. Quand tu coupes l'alimentation, cette adresse est perdue, les registres sont "volatiles" (heureusement). Elle sera restaurée au prochain allumage lors de l'initialisation de la carte par ton code.

    Il existe des modules comme le WIZ550io qui sont munis d'une mémoire flash dans laquelle une adresse MAC unique est enregistrée en usine et qui est chargée dans le registre du W5500 à l'initialisation (ainsi qu'une adresse IP, d'ailleurs), mais ce n'est pas le cas du shield Ethernet 2. Avant de leur avoir affecté une adresse MAC, tous ces shields sont rigoureusement identiques. C'est grâce au fait que l'adresse MAC n'est pas inscrite en dur sur la puce elle-même, mais dans une mémoire externe, qu'on peut la modifier par voie logicielle. Mais je pense (?) que ce n'est pas possible sur tous les matériels.

    Citation Envoyé par Beginner. Voir le message
    Cela signifierait que la box garde en mémoire l'association "adresse IP - adresse MAC (fournie par logicielle)" qu'elle aurait faite lors d'une première connexion de la carte, non ?
    Tout à fait, mais pendant un laps de temps déterminé. La box que j'utilise (une LiveBox) ne conserve cette association que trois mois. Ce délais est automatiquement reconduit à chaque connexion.

  9. #29
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Mais je pense (?) que ce n'est pas possible sur tous les matériels
    Sur la majorité des ordinateurs effectivement il y a une adresse MAC codée en dur dans la carte, ça permet d'éviter les soucis de 2 appareils se retrouvant identifiés de la même façon. L'OS (ou les couches basses du firmware de la carte) vont lire cette adresse et c'est avec cela qu'il se présente sur le réseau. Mais comme tout cela est "logiciel" vous pouvez vous présenter avec une adresse MAC qui n'est pas la votre si vous voulez - c'est pour cela qu'il ne faut pas fonder sa politique de sécurité sur les adresses MAC.

  10. #30
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Ok merci à tous pour vos explications.

    Alors oui je pensais d’après ce que j'avais lu que toutes les cartes se voyaient attribuées par le constructeur une adresse MAC unique mais effectivement si ce n'est pas le cas des shield Ethernet alors tout s'explique...

  11. #31
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Bonjour,

    Merci pour ce tutoriel, je suis en plein dans ces choses là en ce moment moi aussi...

    Petite question : dans ton header HTTP tu ne mets pas de "Content-length: ".
    J'en ai mis avec mon projet et c'est pas facile car on connait la longueur qu'à la fin.
    As-tu vérifié le résultat avec W3C (une redirection pour rendre temporairement la carte accessible est requise) ?

    Quid de la fragmentation de packets ?
    Sur ce forum j'avais proposé une version modifiée de Socket() pour pouvoir à la fois écrire en plusieurs fois les données tout en ayant un seul packet d'une taille allant jusqu'à la taille du buffer du W5500.
    La fragmentation de packets c'est pas très grave si le client est un PC ou un smartphone, en revanche si c'est pour communiquer avec un autre Arduino ça ne marchera pas.

    La carte https://www.keyestudio.com/keyestudi...poe-p0368.html est très intéressante...
    Surtout si c'est un "vrai" W5500 (et pas un W5100 ou W5200)
    Elle est moins chère et plus compacte...
    Est-ce la même qualité ? (notamment la connectique)
    Les alimentations 5V et 3.3V peuvent-elle fournir autant de courant ?
    Je trouve la position du bouton reset peut pratique mais c'est un détail.
    Peut-on utiliser le port SPI avec d'autres périphériques (comme ce que je fais actuellement avec mon port SPI partagé avec le shield Ethernet et l'écran TFT ILI9341) ?

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  12. #32
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Points : 2 924
    Points
    2 924
    Par défaut
    Bonjour .

    Citation Envoyé par electroremy Voir le message
    Petite question : dans ton header HTTP tu ne mets pas de "Content-length: ".
    Ce n'est pas nécessaire dans notre cas de figure. N'oublie pas qu'il ne s'agit pas d'un cours de HTML : je détermine un cahier des charges et je le traite au plus près, du moins j'essaye.

    Citation Envoyé par electroremy Voir le message
    As-tu vérifié le résultat avec W3C (une redirection pour rendre temporairement la carte accessible est requise) ?
    Non, mais rien ne t'interdit d'effectuer cette vérification et de nous faire profiter des résultats .

    Citation Envoyé par electroremy Voir le message
    Quid de la fragmentation de packets ?
    La fragmentation de packets c'est pas très grave si le client est un PC ou un smartphone,
    Ce qui est le cas ici !

    Citation Envoyé par electroremy Voir le message
    en revanche si c'est pour communiquer avec un autre Arduino ça ne marchera pas.
    Par contre, ce cas de figure est hors sujet en ce qui concerne ce tutoriel.

    Pour ce qui est de la carte KeyesStudio :
    Citation Envoyé par electroremy Voir le message
    La carte https://www.keyestudio.com/keyestudi...poe-p0368.html est très intéressante...
    Je confirme ! Elle remplace avantageusement le couple Arduino UNO / Shield Ethernet 2, tant en ce qui concerne son coût que son encombrement.

    • c'est un "vrai" W5500" (sérigraphié et tout) ;
    • sur ma carte, j'ai eu des petits soucis avec le slot accueillant la carte microSD : celle-ci n'est pas toujours reconnue et il faut parfois la réinsérer pour régler le problème ;
    • **en ce qui concerne les capacités de l'alimentation, je n'ai pas testé, mais il ne faut pas oublier que dans le couple Arduino UNO / Shield Ethernet 2, la carte UNO doit alimenter le shield Ethernet 2, ce qui diminue d'autant sa capacité à alimenter les éléments d'un montage ou d'autres périphériques ;
    • **pour le bus SPI, je ne vois pas pourquoi tu ne pourrais pas l'utiliser en même temps avec plusieurs périphériques. Le microcontrôleur est un ATMEGA328P, le même que sur la carte UNO, et les fonctionnalités n'ont aucune raison d'être différentes. Cela dit, je n'ai pas testé non plus.

    **Je rappelle que je précise ceci dans le tuto :
    Quand je parle de « mes tests », je veux dire que tout ce que j’ai fait avec cette carte a fonctionné de la même manière qu’avec les cartes officielles. Je n’ai pas mené une batterie de tests exhaustive visant à « homologuer » le produit

    Amicalement,
    naute

  13. #33
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Salut,

    J'utilise beaucoup la validation W3C car comme tu l'as dit, les navigateurs sont trop tolérants et ne permettent pas de vérifier qu'une page HTML est correcte.
    Le gag étant que cette tolérance n'est pas la même entre les différents navigateurs, en fonction de leur version.

    En tout ce qui est bien dans ton tutoriel, c'est que j'ai vu qu'on pouvait avoir des boutons en plus que "submit" et "reset"
    Je ne savais pas que c'était possible, et c'est pratique !

    A bientôt !
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/03/2011, 15h07
  2. [MVVM]Accèder aux Commands d'un VM depuis un Ribbon
    Par Krustig dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 09/06/2009, 22h10
  3. Réponses: 2
    Dernier message: 05/09/2008, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo