RCELE 85
/
Nucleo_mqtt_sim800_final
mqtt_sim800_final
main.cpp@0:e1866d43b8c3, 2018-04-17 (annotated)
- Committer:
- rcele_85
- Date:
- Tue Apr 17 05:04:02 2018 +0000
- Revision:
- 0:e1866d43b8c3
ok
Who changed what in which revision?
User | Revision | Line number | New 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 | } |