mqtt_sim800_final

Dependencies:   GSM_MQTT mbed

Committer:
rcele_85
Date:
Tue Apr 17 05:04:02 2018 +0000
Revision:
0:e1866d43b8c3
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rcele_85 0:e1866d43b8c3 1 /* =========================================================================================
rcele_85 0:e1866d43b8c3 2 * GSM_MQTT == MQTT CLIENT LIBRARY FOR GPRS MODEM
rcele_85 0:e1866d43b8c3 3 * SUPPORTED GPRS MODEM ==> SIM800, SIM900, SIM300
rcele_85 0:e1866d43b8c3 4 * SUPPORTED MBED HARDWARE ==> Any hardware with two Hardware Serial port and 1 timer
rcele_85 0:e1866d43b8c3 5 *
rcele_85 0:e1866d43b8c3 6 * Developed By : Ravi Butani
rcele_85 0:e1866d43b8c3 7 * Prof. Marwadi University, Rajkkot-INDIA
rcele_85 0:e1866d43b8c3 8 * Contact: ravi_butani@yahoo.com
rcele_85 0:e1866d43b8c3 9 *
rcele_85 0:e1866d43b8c3 10 * License : This library released under CC-BY-SA 4.0 license
rcele_85 0:e1866d43b8c3 11 * https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
rcele_85 0:e1866d43b8c3 12 *
rcele_85 0:e1866d43b8c3 13 * This library is derived from Arduino MQTT Client for SIM800 at
rcele_85 0:e1866d43b8c3 14 * https://github.com/elementzonline/SIM800_MQTT
rcele_85 0:e1866d43b8c3 15 *============================================================================================*/
rcele_85 0:e1866d43b8c3 16
rcele_85 0:e1866d43b8c3 17 #include "mbed.h"
rcele_85 0:e1866d43b8c3 18 #include "GSM_MQTT.h"
rcele_85 0:e1866d43b8c3 19
rcele_85 0:e1866d43b8c3 20 Serial SerialDBG(USBTX, USBRX); // tx, rx for USB Debug on PC
rcele_85 0:e1866d43b8c3 21 Serial Serial800(D8, D2); // tx, rx for SIM800 Interfacing on UART
rcele_85 0:e1866d43b8c3 22
rcele_85 0:e1866d43b8c3 23 string MQTT_HOST = "iot.eclipse.org";
rcele_85 0:e1866d43b8c3 24 string MQTT_PORT = "1883";
rcele_85 0:e1866d43b8c3 25
rcele_85 0:e1866d43b8c3 26 void GSM_MQTT::AutoConnect(void)
rcele_85 0:e1866d43b8c3 27 {
rcele_85 0:e1866d43b8c3 28 connect("client657");
rcele_85 0:e1866d43b8c3 29 }
rcele_85 0:e1866d43b8c3 30
rcele_85 0:e1866d43b8c3 31 void GSM_MQTT::OnConnect(void)
rcele_85 0:e1866d43b8c3 32 {
rcele_85 0:e1866d43b8c3 33 subscribe("ravibut");
rcele_85 0:e1866d43b8c3 34 publish("SampleTopic", "Hello");
rcele_85 0:e1866d43b8c3 35 }
rcele_85 0:e1866d43b8c3 36
rcele_85 0:e1866d43b8c3 37 void GSM_MQTT::OnMessage(char *Topic, int TopicLength, char *Message, int MessageLength)
rcele_85 0:e1866d43b8c3 38 {
rcele_85 0:e1866d43b8c3 39 SerialDBG.printf("%d \r\n",TopicLength);
rcele_85 0:e1866d43b8c3 40 SerialDBG.printf("%s \r\n",Topic);
rcele_85 0:e1866d43b8c3 41 SerialDBG.printf("%d \r\n",MessageLength);
rcele_85 0:e1866d43b8c3 42 SerialDBG.printf("%s \r\n",Message);
rcele_85 0:e1866d43b8c3 43 }
rcele_85 0:e1866d43b8c3 44
rcele_85 0:e1866d43b8c3 45 GSM_MQTT MQTT(20);
rcele_85 0:e1866d43b8c3 46 int main()
rcele_85 0:e1866d43b8c3 47 {
rcele_85 0:e1866d43b8c3 48 SerialDBG.printf("Wait for 3 seconds to get SIM800 stabilized...\r\n");
rcele_85 0:e1866d43b8c3 49 wait(3);
rcele_85 0:e1866d43b8c3 50 MQTT.begin();
rcele_85 0:e1866d43b8c3 51
rcele_85 0:e1866d43b8c3 52 while(1)
rcele_85 0:e1866d43b8c3 53 {
rcele_85 0:e1866d43b8c3 54 wait(3);
rcele_85 0:e1866d43b8c3 55 if (MQTT.available())
rcele_85 0:e1866d43b8c3 56 {
rcele_85 0:e1866d43b8c3 57 SerialDBG.printf("mqtt_ok\r\n");
rcele_85 0:e1866d43b8c3 58 MQTT.publish("SampleTopic", "Hello");
rcele_85 0:e1866d43b8c3 59 }
rcele_85 0:e1866d43b8c3 60 MQTT.processing();
rcele_85 0:e1866d43b8c3 61 }
rcele_85 0:e1866d43b8c3 62 }