Program to serially receive in WIZ750SR to publish data in MQTT broker

Dependencies:   MQTT WIZnetInterface mbed-src

Fork of RFID_copy by Rajib Kumer Dey

Committer:
HarshaDRAGNEEL
Date:
Tue Jul 17 06:08:33 2018 +0000
Revision:
1:7638b96d77af
Parent:
0:1fdb07d055b9
To publish only the data

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rajib 0:1fdb07d055b9 1 #include "mbed.h"
Rajib 0:1fdb07d055b9 2 #include "SPI.h"
Rajib 0:1fdb07d055b9 3 #include "MQTTEthernet.h"
Rajib 0:1fdb07d055b9 4 #include "MQTTClient.h"
Rajib 0:1fdb07d055b9 5
Rajib 0:1fdb07d055b9 6 #define ECHO_SERVER_PORT 7
Rajib 0:1fdb07d055b9 7
HarshaDRAGNEEL 1:7638b96d77af 8 Serial pc(USBTX, USBRX); //Enabling the Serial transmission between WIZ750SR and PC.
HarshaDRAGNEEL 1:7638b96d77af 9 Serial serial(D1,D0); // Enabling Serial transmission betwenn Wiz750SR and W7500.
HarshaDRAGNEEL 1:7638b96d77af 10 char c[100]="";
HarshaDRAGNEEL 1:7638b96d77af 11
Rajib 0:1fdb07d055b9 12
Rajib 0:1fdb07d055b9 13 int main(void) {
Rajib 0:1fdb07d055b9 14 printf("Wait a second...\r\n");
HarshaDRAGNEEL 1:7638b96d77af 15 char* topic = "ack"; //if we are subscribing the acknowledgement.
Rajib 0:1fdb07d055b9 16 MQTTEthernet ipstack = MQTTEthernet();
Rajib 0:1fdb07d055b9 17
Rajib 0:1fdb07d055b9 18 MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack);
Rajib 0:1fdb07d055b9 19
HarshaDRAGNEEL 1:7638b96d77af 20 char* hostname = "172.16.73.4"; //Give the IP Address of the MQTT Broker.
HarshaDRAGNEEL 1:7638b96d77af 21 int port = 1883; // Port number of the MQTT broker.
Rajib 0:1fdb07d055b9 22
HarshaDRAGNEEL 1:7638b96d77af 23
Rajib 0:1fdb07d055b9 24 int rc = ipstack.connect(hostname, port);
Rajib 0:1fdb07d055b9 25 if (rc != 0)
HarshaDRAGNEEL 1:7638b96d77af 26 printf("rc from TCP connect is %d\n", rc);
Rajib 0:1fdb07d055b9 27 printf("Topic: %s\r\n",topic);
Rajib 0:1fdb07d055b9 28
Rajib 0:1fdb07d055b9 29 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
Rajib 0:1fdb07d055b9 30 data.MQTTVersion = 3;
Rajib 0:1fdb07d055b9 31 data.clientID.cstring = "parents";
Rajib 0:1fdb07d055b9 32
Rajib 0:1fdb07d055b9 33 if ((rc = client.connect(data)) == 0)
HarshaDRAGNEEL 1:7638b96d77af 34 printf("rc from MQTT connect is %d\n", rc);
HarshaDRAGNEEL 1:7638b96d77af 35
HarshaDRAGNEEL 1:7638b96d77af 36
HarshaDRAGNEEL 1:7638b96d77af 37 while (true) {
HarshaDRAGNEEL 1:7638b96d77af 38 if (serial.readable()) // if anything available/ readable in Serial port
Rajib 0:1fdb07d055b9 39 {
HarshaDRAGNEEL 1:7638b96d77af 40 int i;
HarshaDRAGNEEL 1:7638b96d77af 41 c[i]=0;
HarshaDRAGNEEL 1:7638b96d77af 42 for(i=0;i<=10;i++){
HarshaDRAGNEEL 1:7638b96d77af 43 char c1=serial.getc();
HarshaDRAGNEEL 1:7638b96d77af 44 c[i] = c1;
HarshaDRAGNEEL 1:7638b96d77af 45 }
HarshaDRAGNEEL 1:7638b96d77af 46 pc.printf("The value returned is %s ",c);
HarshaDRAGNEEL 1:7638b96d77af 47 MQTT::Message message;
HarshaDRAGNEEL 1:7638b96d77af 48 char buf[100];
HarshaDRAGNEEL 1:7638b96d77af 49 sprintf(buf, "%s", c);
HarshaDRAGNEEL 1:7638b96d77af 50 message.qos = MQTT::QOS0;
HarshaDRAGNEEL 1:7638b96d77af 51 message.retained = false;
HarshaDRAGNEEL 1:7638b96d77af 52 message.dup = false;
HarshaDRAGNEEL 1:7638b96d77af 53
HarshaDRAGNEEL 1:7638b96d77af 54 message.payload = (void*)c;
HarshaDRAGNEEL 1:7638b96d77af 55 message.payloadlen = strlen(c);
HarshaDRAGNEEL 1:7638b96d77af 56
HarshaDRAGNEEL 1:7638b96d77af 57 rc = client.publish("balance", message);
HarshaDRAGNEEL 1:7638b96d77af 58 pc.printf("Rc result: %c \n ",rc);
HarshaDRAGNEEL 1:7638b96d77af 59 client.yield(60);
Rajib 0:1fdb07d055b9 60 }
Rajib 0:1fdb07d055b9 61 }
Rajib 0:1fdb07d055b9 62 }