Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoi données Raspberry Pi > Arduino sans fil

Comment envoyer des données du Raspberry à une carte Arduino, sans fil

    11 août 2013 à 17:05:17

    Bonjour !

    Voilà, j'ai un Raspberry Pi et une carte Arduino Uno et je cherche le moyen d'allumer une/des LEDs à distance en utilisant un couple émetteur/récepteur sans fil.
    J'ai donc acheté cet émetteur : http://www.lextronic.fr/P854-emetteur-43392-mhz-rt6-433.html et son pote le récepteur : http://www.lextronic.fr/P855-recepteur-43392-mhz-rr3-433.html
    Jusqu'ici tout va bien, j'ai réussi à faire clignoter une LED à distance comme si l'Arduino et le RPi étaient reliés par fil en jouant avec les GPIO, jusque là c'est simple.
    Seulement, l'émetteur/récepteur fonctionnant en 433.92MHz qui est une fréquence standard pour tout et n'importe quoi (porte de garage, clés de bagnole, etc...) je choppais des ondes de je-ne-sais-pas-où ce qui perturbais le clignotement, à chaque onde parasite reçue et l'état changeais sans que ce soit prévu.

    Pour contrer ça, j'ai pensé utiliser un transfert de données et non d'état, en donc passer soit par du SPI, soit par de l'I2C, seulement c'est là que ça bloque... comment faire ?
    Je pourrais arriver à mes fins en lisant en bidouillant encore, mais la question principale que je me pose c'est : pourrais-je toujours utiliser mon couple émetteur/récepteur sachant que pour l'I2C il faut une masse commune et que le SPI utilise 4 câbles ? Mon duo émetteur/récepteur n'agissant que comme 1 seul câble...

    Donc, questions :

    - Dois-je investir dans d'autres émetteurs/récepteurs ? Si oui, de fréquences différentes ?
    - Le SPI ou l'I2C seraient-ils la solution ?

    Vous l'aurez compris, mon but étant d'envoyer des chaînes de caractères allumant les LEDs au lieu d'état 1/0 de GPIO.
    Merci beaucoup par avance :)

    -
    Edité par RoKN 11 août 2013 à 17:12:59

    • Partager sur Facebook
    • Partager sur Twitter
      11 août 2013 à 22:13:02

      Tu peux transférer des trames en rajoutant un octet de controle par exemple (permettant de vérifier que ta chaine recu est correct ou pas). Par contre si la ligne est très pollué, ca risque d'être galère de choper une seule fois une trame OK

      • Partager sur Facebook
      • Partager sur Twitter

      Retrouvez moi sur mon blog et ma chaine Youtube !

        12 août 2013 à 12:16:58

        Bonjour,

        Si tu veux transmettre des données par liaison sans fil, tu es obligé de coder l'information envoyée (au niveau de la carte Raspberry) pour ensuite les décoder au niveau de ton récepteur (ici ta carte Arduino). Ceci est généralement la seule solution si tu es proche d'autres sources HF fonctionnant sur la même fréquence.

        D'ailleurs, le site Lextronics te conseille ceci:

        Ce module devra être associé à un circuit intégré de codage ou à un microcontrôleur effectuant un codage de type Manchester, PCM ou autre et respectant les temps les rapports cycliques d'émission en vigueur pour cette bande (ce circuit n'est pas livré).

        • Partager sur Facebook
        • Partager sur Twitter
          12 août 2013 à 20:14:35

          Oui, justement, c'est ce que je cherche à faire : envoyer des trames codées.
          Seulement, ce qui me pose soucis, c'est la connection : Je ne peux pas utiliser de l'I2C car pour ça il faut que la masse soit commune, et le SPI utilise 4 câbles (sclk, miso, mosi, ss).
          Je débute aussi bien en électronique/programmation qu'en liaisons radios, là je découvre tout juste, je ne connais juste vaguement que la théorique, mais la pratique c'est ma première fois et j'ai du mal à piger :euh:

          En gros ma question : Quel protocole je peux utiliser pour envoyer des trames de l'Arduino au Raspberry (car la liaison est unidirectionnelle) ?
          • Partager sur Facebook
          • Partager sur Twitter
            12 août 2013 à 22:07:37

            Je viens de passer pas mal de temps à explorer différentes possibilitées pour arriver à mes fins mais en vain :(
            Déjà, c'est la galère pour trouver des infos relativement claires sur le net, je suis passé par la case pyserial qui me renvoyais des messages d'erreurs, j'ai donc cherché à les régler et je suis passé par cette solution : http://www.hobbytronics.co.uk/raspberry-pi-serial-port
            Celle-ci semble fonctionner mais sans que je comprenne pourquoi, et c'est ça qui me frustre le plus : ne pas réussir à comprendre.
            Bref, du coup suite à ça, à chaque upload d'un programme Arduino, Raspberry et Arduino connectés via 2 fils en utilisant l'UART, Arduino me dis que le programme a rencontré un problème... et pour contourner ça je suis obligé de débrancher un fil connecté au Raspberry.

            Bon, en gros, même en connection filaire "simple" j'ai des soucis du côté du Raspberry que je ne comprends pas.
            Pour ce qui est de la transmission sans fil je pense que je vais laisser tomber, je ne vois aucun moyen pour envoyer autre chose que des états 1/0 :(
            • Partager sur Facebook
            • Partager sur Twitter
              13 août 2013 à 13:26:15

              Bonjour,

              Ce que tu as acheté convient effectivement mieux pour commander des états et non pour faire de la communication ...

              Si tu veux faire de la communication, il existe des cartes déjà toutes faites avec la technologies XBee qui a un protocole simplifié. Ces cartes sont compatibles arduino et raspberry pi avec les bonne lib ...

              Sinon tu as aussi la technologie bluetooth ... Plus complexe mais faisable !

              A toi de voir, mais moi c'est ce que je ferai !

              • Partager sur Facebook
              • Partager sur Twitter
                13 août 2013 à 16:18:53

                Oui j'ai vu les cartes Xbee, je me tâtais à vrai dire. Seulement j'ai voulu commencé par le moins cher sans trop réfléchir avant, c'est malin :lol:

                Donc je vais laisser mon émetteur/récepteur de côté pour le moment, celui-ci étant trop sensible aux ondes diverses... à moins qu'il y ai quand même moyen de m'en servir en envoyant des trames sans réponse ? Je veux dire... le Raspberry ne pourrait-il pas envoyer des trames comme il le fait pour les états ? Trames récupérées par Arduino qui agit en conséquence ?
                ... bidouiller une sorte de "code" GPIO basé sur le même principe que le morse, le code serait "3 brefs allumages et 2 plus longs allumages => réaction".
                Pas vraiment optimisé, mais ce serait plus fonctionnel que le simple état 1/0 trop hasardeux.
                Je testerais ça plus tard tiens.
                • Partager sur Facebook
                • Partager sur Twitter
                  14 août 2013 à 17:32:25

                  Si tu peux ! Mais effectivement tu n'auras pas de réponse ...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 septembre 2018 à 9:42:15

                    Salut RoKN je suis sur un projet actuellement et je suis confronté au même soucis que toi. est ce que tu peux m'orienter sur la manière dont tu as procédé avec la carte Xbee pour pouvoir envoyer des données de ton Rasberry Pi à ta carte Arduino ? et aussi concernant la portée j'ai lu qu'elle etait juste de 100m à l'extérieur est ce qu'il serai possible d'avoir une plus grande portée ?

                    Merci

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Envoi données Raspberry Pi > Arduino sans fil

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown