Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino, connexion à un broker en MQTT

Sujet résolu
    25 mars 2019 à 18:26:44

    Bonjour,
    Je suis actuellement étudiant en informatique. Je dois faire un projet en arduino. Ce projet consiste à mettre des capteurs sur des machines, à récupérer les informations des capteurs et à envoyer ses informations vers un broker en utilisant le protocole MQTT.
    Cependant, je ne connais pas du tout l'arduino, ni comment cela fonctionne.
    Le matériel dont je dispose est une carte Intel genuino uno, sur laquelle je branche un base shield (http://wiki.seeedstudio.com/Base_Shield_V2/) permettant de brancher un capteur de température (http://wiki.seeedstudio.com/Grove-TempAndHumi_Sensor-SHT31/) et l'émetteur wifi (http://wiki.seeedstudio.com/Grove-UART_Wifi_V2/) (l'émetteur wifi est composé du wifi chip ESP8285). 
    Ce que j'aimerais faire, c'est me connecter à un routeur wifi et envoyer les données du capteur de température vers un brocker en ligne (cloudMQTT) via le protocole MQTT.
    Cependant, étant débutant, je recherche des heures et des heures sur Internet afin d'essayer de comprendre comment cela fonctionne et de trouver une solution. Mais je ne trouve pas ce qu'il me faut.
    La théorie, je l'ai, c'est au niveau de la pratique que je ne vois pas comment faire.
    Dites-moi si je me trompe, mais j'ai besoin de commandes AT et de la bibliothèque PubSubClient pour le MQTT ?
    Le problème est que je n'arrive pas à comprendre comment ça fonctionne ni à faire un code qui arrive à envoyer un texte au broker.
    Pourriez vous, s'il vous plait, m'expliquer comment faire pour mener à bien mon proje ?
    Cordialement
    Sybess
    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2019 à 19:10:46

      Bonjour,

      Sbessonneau a écrit:

      Dites-moi si je me trompe, mais j'ai besoin de commandes AT et de la bibliothèque PubSubClient pour le MQTT ?

      PubSubClient ne permet pas de passer par les commandes AT directement, il te faut une interface entre les 2 qui va "émuler" un client Ethernet ou Wifi natif.

      Cette bibliothèque semble faire ça: https://github.com/sparkfun/SparkFun_ESP8266_AT_Arduino_Library 

      Tu peux essayer de combiner l'exemple mqtt_basic de PubSubClient avec l'initialisation de l'esp8266 de l'exemple ESP8266_Phant de la bibliothèque de sparkfun. Le but étant de passer un objet ESP8266Client au constructeur de PubSubClient.

      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2019 à 19:52:45

        Bonsoir,

        Merci beaucoup pour votre réponse.

        Savez vous si c'est compatible avec ESP8285  ?


        Cordialement


        Sbessonneau

        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2019 à 22:53:43

          L'ESP8285 est un ESP8266 avec de la mémoire flash intégrée, tout ce qui est compatible avec l'un est compatible avec l'autre (tant que le firmware n'a pas besoin de plus de mémoire flash que ce qui est intégré dans l'ESP8285).
          • Partager sur Facebook
          • Partager sur Twitter
            1 avril 2019 à 21:30:47

            Bonjour,

            J'aimerais utiliser la librairie WiFiesp.h. Cependant, lorsque j'ajoute la ligne : #include "WiFiEsp.h", j'ai cette erreur de compilation et je ne sais pas comment la résoudre. L'erreur me dit class ring buffer already exist.

            Cordialement

            Sybess

            • Partager sur Facebook
            • Partager sur Twitter
              2 avril 2019 à 13:01:27

              Normalement, l'erreur indique dans quel autre fichier la première classe RingBuffer a été déclarée, si c'est dans une bibliothèque dont tu peux te passer, il suffit d'enlever l'include correspondant, ce qui ne sera pas possible si c'est une classe de base de l'environnement (il y a une classe RingBuffer sur les plateformes SAM32), sinon, il faut modifier la bibliothèque WiFiesp pour changer le nom de la classe RingBuffer en autre chose (ex: "WiFiEspRingBuffer") ou la mettre dans un namespace C++ (ex: WiFiEsp::RingBuffer) pour résoudre le conflit.

              • Partager sur Facebook
              • Partager sur Twitter

              Arduino, connexion à un broker en MQTT

              × 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