Comment puis-je implémenter MQTT sur un STM32F030K6T6?

15

Le contrôleur en question est un STM32F030K6T6 , qui a un noyau basse consommation ARM® Cortex® -M0 32 bits, une mémoire Flash de 32 Ko et une mémoire SRAM de 4 Ko. Il interface un SIM808 pour la connectivité Internet.

Les ressources sont assez limitées en ce qui concerne la mémoire.

  • Est-il possible d'implémenter MQTT sur cet appareil?

  • À quelles exigences un microcontrôleur doit-il correspondre pour pouvoir utiliser / exécuter MQTT?

(Je ne demande pas une implémentation complète de la pile de protocoles.)

Bence Kaulics
la source

Réponses:

12

Est-il possible d'implémenter MQTT sur cet appareil?

Tout appareil doté d' une couche TCP / IP peut implémenter MQTT.

À quelles exigences un microcontrôleur doit-il correspondre pour pouvoir utiliser / exécuter MQTT?

Vous devez poser les questions suivantes pour savoir si votre appareil exécute MQTT.

  • Mon appareil prend-il en charge TCP / IP ou la mise en réseau?
  • Y a-t-il de la mémoire et de l'espace disque disponible sur l'appareil?
  • Un client MQTT prêt à l'emploi peut-il être utilisé sur la plate-forme de l'appareil?
  • Existe-t-il une connectivité réseau au serveur?

Réf: Support MQTT

bravokeyl
la source
1
Ensuite, la question se résume à: pouvez-vous vous contenter d'une mémoire de code de 32 Ko.
Ghanima
1
@Ghanima, je pourrais dire non, mais j'essaie de donner un aperçu du matériel nécessaire pour exécuter MQTT.
bravokeyl
3
Il existe une bibliothèque MQTT pour Arduino: github.com/256dpi/arduino-mqtt qui manque de mémoire
Goufalite
Quelle est la taille minimale de mem dont il a besoin?
bravokeyl
3
Le projet Eclipse Paho a un client C intégré qui est très léger mais aussi assez flexible: github.com/eclipse/paho.mqtt.embedded-c . Ça vaut peut-être le coup d'oeil.
jpwsutton
11

La bibliothèque mbed mmqt ne semble pas documenter les besoins en mémoire susceptibles d'être limitatifs, et on peut raisonnablement supposer qu'elle est ciblée sur ce type de périphérique à faible encombrement comme point de terminaison. Vous pouvez importer assez trivialement la bibliothèque dans une plate-forme d'appareil similaire à l'aide du compilateur en ligne et vérifier au moins l'empreinte du code.

Sean Houlihane
la source