Używam procesora AVR32UC3A0512 i modułu GSM Telit GL865 QUAD. Mam problem z wysyłaniem wiadomości z wykorzystaniem MQTT. Łączę się z serwerem za pomocą komend AT, a następnie wysyłam w timerze co 1 sekundę ramkę MQTT. Komendy AT, które wykorzystuję to:
AT+CGDCONT=1,"ip","internet"
AT&K0
AT#SCFG= 1,1,300,90,600,50
AT+CGATT?
AT#SGACT=1,1
AT#SD=1,0,1883,"iot.eclipse.org"
Następnie otrzymuję komunikat CONNECT.
Po otrzymaniu komunikatu wysyłam ramkę MQTT generowaną przez bibliotekę PAHO (wysyłam je binarnie charami, na terminalu wyświetlam ASCII):
[01][0E][00][04]MQTT[04]@[00][14][00][02]me[03][12][00][07]mytopicmypayload[0E][00][00]
Mój topic to "mytopic" i teoretycznie wysyłam payloada: "mypayload".
Po wysłaniu kilku ramek w odstępach co 1 sekundę otrzymuję z GSMa odpowiedź NO CARRIER i połączenie się urywa.
Kod C, który wywoływany jest co 1s:
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Liczę, że może ktoś jednak miał kiedyś do czynienia z MQTT.