mqtt_sim800_final

Dependencies:   GSM_MQTT mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* =========================================================================================
00002 *                     GSM_MQTT == MQTT CLIENT LIBRARY FOR GPRS MODEM
00003 * SUPPORTED GPRS MODEM ==> SIM800, SIM900, SIM300
00004 * SUPPORTED MBED HARDWARE ==> Any hardware with two Hardware Serial port and 1 timer
00005 *
00006 * Developed By : Ravi Butani
00007 * Prof. Marwadi University, Rajkkot-INDIA
00008 * Contact: ravi_butani@yahoo.com
00009 *
00010 * License : This library released under CC-BY-SA 4.0 license
00011 * https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
00012 *
00013 * This library is derived from Arduino MQTT Client for SIM800 at 
00014 * https://github.com/elementzonline/SIM800_MQTT
00015 *============================================================================================*/
00016 
00017 #include "mbed.h"
00018 #include "GSM_MQTT.h"
00019 
00020 Serial SerialDBG(USBTX, USBRX);   // tx, rx for USB Debug on PC
00021 Serial Serial800(D8, D2);         // tx, rx for SIM800 Interfacing on UART
00022 
00023 string MQTT_HOST = "iot.eclipse.org";
00024 string MQTT_PORT = "1883";
00025 
00026 void GSM_MQTT::AutoConnect(void)
00027 {
00028   connect("client657");
00029 }
00030 
00031 void GSM_MQTT::OnConnect(void)
00032 {
00033   subscribe("ravibut");
00034   publish("SampleTopic", "Hello");
00035 }
00036 
00037 void GSM_MQTT::OnMessage(char *Topic, int TopicLength, char *Message, int MessageLength)
00038 {
00039   SerialDBG.printf("%d \r\n",TopicLength);
00040   SerialDBG.printf("%s \r\n",Topic);
00041   SerialDBG.printf("%d \r\n",MessageLength);
00042   SerialDBG.printf("%s \r\n",Message);
00043 }
00044 
00045 GSM_MQTT MQTT(20);
00046 int main()
00047 {
00048   SerialDBG.printf("Wait for 3 seconds to get SIM800 stabilized...\r\n");
00049   wait(3);
00050   MQTT.begin();
00051   
00052     while(1)
00053     {
00054         wait(3);
00055         if (MQTT.available())
00056         {
00057             SerialDBG.printf("mqtt_ok\r\n");
00058             MQTT.publish("SampleTopic", "Hello");
00059         }
00060         MQTT.processing();
00061     }
00062 }