0527

Dependencies:   MQTT

Committer:
peng103617
Date:
Mon May 27 05:38:15 2019 +0000
Revision:
60:c0c04325453c
Parent:
59:9bbcc1b368ba
20190527

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cornetlin 59:9bbcc1b368ba 1 //MQTT+WIFI
cornetlin 59:9bbcc1b368ba 2
cornetlin 59:9bbcc1b368ba 3
cornetlin 59:9bbcc1b368ba 4 #define logMessage printf
cornetlin 59:9bbcc1b368ba 5 #define MQTTCLIENT_QOS2 1
cornetlin 59:9bbcc1b368ba 6
cornetlin 59:9bbcc1b368ba 7 #include "MQTTNetwork.h"
cornetlin 59:9bbcc1b368ba 8 #include "MQTTmbed.h"
cornetlin 59:9bbcc1b368ba 9 #include "MQTTClient.h"
cornetlin 59:9bbcc1b368ba 10
cornetlin 59:9bbcc1b368ba 11 int arrivedcount = 0;
cornetlin 59:9bbcc1b368ba 12 //
cornetlin 59:9bbcc1b368ba 13
cornetlin 59:9bbcc1b368ba 14
mbed_official 0:857719181846 15 #include "mbed.h"
mbed_official 0:857719181846 16 #include "TCPSocket.h"
peng103617 60:c0c04325453c 17 #include "VL53L1X.h"
peng103617 60:c0c04325453c 18 #include <string>
mbed_official 44:63be19b7a3db 19 #define WIFI_IDW0XX1 2
mbed_official 32:bca3f5f442b3 20
adustm 58:8d4bde75ebb9 21 #if (defined(TARGET_DISCO_L475VG_IOT01A) || defined(TARGET_DISCO_F413ZH))
adustm adustm@gmail.com 55:23a0d1e8270a 22 #include "ISM43362Interface.h"
adustm adustm@gmail.com 55:23a0d1e8270a 23 ISM43362Interface wifi(MBED_CONF_APP_WIFI_SPI_MOSI, MBED_CONF_APP_WIFI_SPI_MISO, MBED_CONF_APP_WIFI_SPI_SCLK, MBED_CONF_APP_WIFI_SPI_NSS, MBED_CONF_APP_WIFI_RESET, MBED_CONF_APP_WIFI_DATAREADY, MBED_CONF_APP_WIFI_WAKEUP, false);
adustm adustm@gmail.com 55:23a0d1e8270a 24
mbed_official 33:12f0df4d51d7 25 #else // External WiFi modules
mbed_official 21:b2f2f6a840b4 26
adustm 57:c8c960b825f0 27 #if MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW0XX1
mbed_official 32:bca3f5f442b3 28 #include "SpwfSAInterface.h"
mbed_official 32:bca3f5f442b3 29 SpwfSAInterface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
mbed_official 44:63be19b7a3db 30 #endif // MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW0XX1
mbed_official 10:5b5beb106156 31
mbed_official 33:12f0df4d51d7 32 #endif
mbed_official 0:857719181846 33
cornetlin 59:9bbcc1b368ba 34
cornetlin 59:9bbcc1b368ba 35 void messageArrived(MQTT::MessageData& md)
cornetlin 59:9bbcc1b368ba 36 {
cornetlin 59:9bbcc1b368ba 37 MQTT::Message &message = md.message;
cornetlin 59:9bbcc1b368ba 38 logMessage("Message arrived: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id);
cornetlin 59:9bbcc1b368ba 39 logMessage("Payload %.*s\r\n", message.payloadlen, (char*)message.payload);
peng103617 60:c0c04325453c 40 //++arrivedcount;
cornetlin 59:9bbcc1b368ba 41 }
cornetlin 59:9bbcc1b368ba 42
cornetlin 59:9bbcc1b368ba 43
mbed_official 0:857719181846 44 const char *sec2str(nsapi_security_t sec)
mbed_official 0:857719181846 45 {
mbed_official 0:857719181846 46 switch (sec) {
mbed_official 0:857719181846 47 case NSAPI_SECURITY_NONE:
mbed_official 0:857719181846 48 return "None";
mbed_official 0:857719181846 49 case NSAPI_SECURITY_WEP:
mbed_official 0:857719181846 50 return "WEP";
mbed_official 0:857719181846 51 case NSAPI_SECURITY_WPA:
mbed_official 0:857719181846 52 return "WPA";
mbed_official 0:857719181846 53 case NSAPI_SECURITY_WPA2:
mbed_official 0:857719181846 54 return "WPA2";
mbed_official 0:857719181846 55 case NSAPI_SECURITY_WPA_WPA2:
mbed_official 0:857719181846 56 return "WPA/WPA2";
mbed_official 0:857719181846 57 case NSAPI_SECURITY_UNKNOWN:
mbed_official 0:857719181846 58 default:
mbed_official 0:857719181846 59 return "Unknown";
mbed_official 0:857719181846 60 }
mbed_official 0:857719181846 61 }
mbed_official 0:857719181846 62
mbed_official 37:3a31525e2971 63 int scan_demo(WiFiInterface *wifi)
mbed_official 0:857719181846 64 {
mbed_official 0:857719181846 65 WiFiAccessPoint *ap;
mbed_official 0:857719181846 66
mbed_official 35:052c1ba06ce7 67 printf("Scan:\n");
mbed_official 0:857719181846 68
mbed_official 0:857719181846 69 int count = wifi->scan(NULL,0);
adustm adustm@gmail.com 55:23a0d1e8270a 70 printf("%d networks available.\n", count);
mbed_official 0:857719181846 71
mbed_official 0:857719181846 72 /* Limit number of network arbitrary to 15 */
mbed_official 0:857719181846 73 count = count < 15 ? count : 15;
mbed_official 0:857719181846 74
mbed_official 0:857719181846 75 ap = new WiFiAccessPoint[count];
mbed_official 0:857719181846 76 count = wifi->scan(ap, count);
mbed_official 0:857719181846 77 for (int i = 0; i < count; i++)
mbed_official 0:857719181846 78 {
mbed_official 35:052c1ba06ce7 79 printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\n", ap[i].get_ssid(),
mbed_official 0:857719181846 80 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
mbed_official 0:857719181846 81 ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
mbed_official 0:857719181846 82 }
mbed_official 0:857719181846 83
mbed_official 0:857719181846 84 delete[] ap;
mbed_official 37:3a31525e2971 85 return count;
mbed_official 0:857719181846 86 }
mbed_official 0:857719181846 87
mbed_official 0:857719181846 88 void http_demo(NetworkInterface *net)
mbed_official 0:857719181846 89 {
mbed_official 0:857719181846 90 TCPSocket socket;
mbed_official 24:323569a565ec 91 nsapi_error_t response;
mbed_official 0:857719181846 92
mbed_official 35:052c1ba06ce7 93 printf("Sending HTTP request to www.arm.com...\n");
mbed_official 0:857719181846 94
mbed_official 0:857719181846 95 // Open a socket on the network interface, and create a TCP connection to www.arm.com
mbed_official 0:857719181846 96 socket.open(net);
mbed_official 24:323569a565ec 97 response = socket.connect("www.arm.com", 80);
mbed_official 24:323569a565ec 98 if(0 != response) {
mbed_official 35:052c1ba06ce7 99 printf("Error connecting: %d\n", response);
mbed_official 24:323569a565ec 100 socket.close();
mbed_official 24:323569a565ec 101 return;
mbed_official 24:323569a565ec 102 }
mbed_official 0:857719181846 103
mbed_official 0:857719181846 104 // Send a simple http request
mbed_official 0:857719181846 105 char sbuffer[] = "GET / HTTP/1.1\r\nHost: www.arm.com\r\n\r\n";
mbed_official 33:12f0df4d51d7 106 nsapi_size_t size = strlen(sbuffer);
mbed_official 24:323569a565ec 107 response = 0;
mbed_official 24:323569a565ec 108 while(size)
mbed_official 24:323569a565ec 109 {
mbed_official 24:323569a565ec 110 response = socket.send(sbuffer+response, size);
mbed_official 24:323569a565ec 111 if (response < 0) {
mbed_official 35:052c1ba06ce7 112 printf("Error sending data: %d\n", response);
mbed_official 24:323569a565ec 113 socket.close();
mbed_official 24:323569a565ec 114 return;
mbed_official 24:323569a565ec 115 } else {
mbed_official 24:323569a565ec 116 size -= response;
mbed_official 24:323569a565ec 117 // Check if entire message was sent or not
mbed_official 35:052c1ba06ce7 118 printf("sent %d [%.*s]\n", response, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
mbed_official 24:323569a565ec 119 }
mbed_official 24:323569a565ec 120 }
mbed_official 0:857719181846 121
mbed_official 0:857719181846 122 // Recieve a simple http response and print out the response line
mbed_official 0:857719181846 123 char rbuffer[64];
mbed_official 24:323569a565ec 124 response = socket.recv(rbuffer, sizeof rbuffer);
mbed_official 24:323569a565ec 125 if (response < 0) {
mbed_official 35:052c1ba06ce7 126 printf("Error receiving data: %d\n", response);
mbed_official 24:323569a565ec 127 } else {
mbed_official 35:052c1ba06ce7 128 printf("recv %d [%.*s]\n", response, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
mbed_official 24:323569a565ec 129 }
mbed_official 0:857719181846 130
mbed_official 0:857719181846 131 // Close the socket to return its memory and bring down the network interface
mbed_official 0:857719181846 132 socket.close();
mbed_official 0:857719181846 133 }
peng103617 60:c0c04325453c 134 bool s1_init = true;
peng103617 60:c0c04325453c 135 bool s2_init = true;
peng103617 60:c0c04325453c 136 bool s3_init = true;
peng103617 60:c0c04325453c 137 bool s4_init = true;
peng103617 60:c0c04325453c 138 VL53L1X sensor1(PC_1,PC_0, PC_2);
peng103617 60:c0c04325453c 139 VL53L1X sensor2(PC_1,PC_0, PC_3);
peng103617 60:c0c04325453c 140 VL53L1X sensor3(PC_1,PC_0, PC_4);
peng103617 60:c0c04325453c 141 VL53L1X sensor4(PC_1,PC_0, PC_5);
peng103617 60:c0c04325453c 142 SPI acc (PA_7,PA_6,PA_5);
peng103617 60:c0c04325453c 143 DigitalOut cs(PB_8);
peng103617 60:c0c04325453c 144 char buffer[6];
peng103617 60:c0c04325453c 145 int16_t data[3];
peng103617 60:c0c04325453c 146 float x,y,z,w;
peng103617 60:c0c04325453c 147 Timer t;
peng103617 60:c0c04325453c 148 AnalogIn analog_value1(PA_2);
peng103617 60:c0c04325453c 149 AnalogIn analog_value2(PA_4);
peng103617 60:c0c04325453c 150 AnalogIn analog_value3(PB_1);
peng103617 60:c0c04325453c 151 AnalogIn analog_value4(PA_3);
peng103617 60:c0c04325453c 152 AnalogIn analog_value5(PB_0);
peng103617 60:c0c04325453c 153 Serial pc(USBTX,USBRX);
peng103617 60:c0c04325453c 154
peng103617 60:c0c04325453c 155 void sensor(void)
peng103617 60:c0c04325453c 156 {
peng103617 60:c0c04325453c 157 double meas_a;
peng103617 60:c0c04325453c 158 double meas_a1;
peng103617 60:c0c04325453c 159 double meas_b;
peng103617 60:c0c04325453c 160 double meas_b1;
peng103617 60:c0c04325453c 161 double meas_c;
peng103617 60:c0c04325453c 162 double meas_c1;
peng103617 60:c0c04325453c 163 double meas_d;
peng103617 60:c0c04325453c 164 double meas_d1;
peng103617 60:c0c04325453c 165 double meas_e;
peng103617 60:c0c04325453c 166 double meas_e1;
peng103617 60:c0c04325453c 167 double outputv;
peng103617 60:c0c04325453c 168
peng103617 60:c0c04325453c 169 double D1;
peng103617 60:c0c04325453c 170 double D2;
peng103617 60:c0c04325453c 171 double D3;
peng103617 60:c0c04325453c 172 double D4;
peng103617 60:c0c04325453c 173
peng103617 60:c0c04325453c 174
peng103617 60:c0c04325453c 175
peng103617 60:c0c04325453c 176
peng103617 60:c0c04325453c 177 sensor1.initReading(0x52,50000);
peng103617 60:c0c04325453c 178 sensor2.initReading(0x27,50000);
peng103617 60:c0c04325453c 179 sensor3.initReading(0x35,50000);
peng103617 60:c0c04325453c 180 sensor4.initReading(0x37,50000);
peng103617 60:c0c04325453c 181 sensor1.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 182 sensor2.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 183 sensor3.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 184 sensor4.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 185 cs=1;
peng103617 60:c0c04325453c 186 acc.format(8,3);
peng103617 60:c0c04325453c 187 acc.frequency(2000000);
peng103617 60:c0c04325453c 188 cs=0;
peng103617 60:c0c04325453c 189 acc.write(0x31);
peng103617 60:c0c04325453c 190 acc.write(0x0B);
peng103617 60:c0c04325453c 191 cs=1;
peng103617 60:c0c04325453c 192 cs=0;
peng103617 60:c0c04325453c 193 acc.write(0x2D);
peng103617 60:c0c04325453c 194 acc.write(0x08);
peng103617 60:c0c04325453c 195 cs=1;
peng103617 60:c0c04325453c 196
peng103617 60:c0c04325453c 197 D1 = sensor1.readFromOneSensor();
peng103617 60:c0c04325453c 198 wait(0.1);
peng103617 60:c0c04325453c 199 D2 = sensor2.readFromOneSensor();
peng103617 60:c0c04325453c 200 wait(0.1);
peng103617 60:c0c04325453c 201 D3 = sensor3.readFromOneSensor();
peng103617 60:c0c04325453c 202 wait(0.1);
peng103617 60:c0c04325453c 203 D4 = sensor4.readFromOneSensor();
peng103617 60:c0c04325453c 204 wait(0.1);
peng103617 60:c0c04325453c 205
peng103617 60:c0c04325453c 206 cs=0;
peng103617 60:c0c04325453c 207 acc.write(0x80|0x40|0x32);
peng103617 60:c0c04325453c 208 for (int i=0;i<=5;i++)
peng103617 60:c0c04325453c 209 {
peng103617 60:c0c04325453c 210 buffer[i]=acc.write(0x00);
peng103617 60:c0c04325453c 211 }
peng103617 60:c0c04325453c 212 cs= 1;
peng103617 60:c0c04325453c 213 data[0]=buffer[1]<<8|buffer[0];
peng103617 60:c0c04325453c 214 data[1]=buffer[3]<<8|buffer[2];
peng103617 60:c0c04325453c 215 data[2]=buffer[5]<<8|buffer[4];
peng103617 60:c0c04325453c 216 x=0.004*data[0];
peng103617 60:c0c04325453c 217 wait(0.1);
peng103617 60:c0c04325453c 218 y=0.004*data[1];
peng103617 60:c0c04325453c 219 wait(0.1);
peng103617 60:c0c04325453c 220 z=0.004*data[2];
peng103617 60:c0c04325453c 221 wait(0.1);
peng103617 60:c0c04325453c 222 w=atan2(x,y)*(57.4);
peng103617 60:c0c04325453c 223 wait(0.1);
peng103617 60:c0c04325453c 224 meas_a = analog_value1.read();
peng103617 60:c0c04325453c 225 meas_a1 = meas_a * 3*25;
peng103617 60:c0c04325453c 226 meas_b = analog_value2.read();
peng103617 60:c0c04325453c 227 meas_b1 = meas_b * 3*25;
peng103617 60:c0c04325453c 228 meas_c = analog_value3.read();
peng103617 60:c0c04325453c 229 meas_c1 = meas_c * 3*25;
peng103617 60:c0c04325453c 230 meas_d = analog_value4.read();
peng103617 60:c0c04325453c 231 meas_d1 = meas_d * 3*25;
peng103617 60:c0c04325453c 232 meas_e = analog_value5.read();
peng103617 60:c0c04325453c 233 meas_e1 = meas_e * 3*25;
peng103617 60:c0c04325453c 234
peng103617 60:c0c04325453c 235
peng103617 60:c0c04325453c 236
peng103617 60:c0c04325453c 237
peng103617 60:c0c04325453c 238 }
peng103617 60:c0c04325453c 239
mbed_official 0:857719181846 240
mbed_official 0:857719181846 241 int main()
peng103617 60:c0c04325453c 242 {
peng103617 60:c0c04325453c 243
peng103617 60:c0c04325453c 244
peng103617 60:c0c04325453c 245 pc.baud (115200) ;
peng103617 60:c0c04325453c 246
peng103617 60:c0c04325453c 247 double meas_a;
peng103617 60:c0c04325453c 248 double meas_a1;
peng103617 60:c0c04325453c 249 double meas_b;
peng103617 60:c0c04325453c 250 double meas_b1;
peng103617 60:c0c04325453c 251 double meas_c;
peng103617 60:c0c04325453c 252 double meas_c1;
peng103617 60:c0c04325453c 253 double meas_d;
peng103617 60:c0c04325453c 254 double meas_d1;
peng103617 60:c0c04325453c 255 double meas_e;
peng103617 60:c0c04325453c 256 double meas_e1;
peng103617 60:c0c04325453c 257 double outputv;
peng103617 60:c0c04325453c 258
peng103617 60:c0c04325453c 259 double D1;
peng103617 60:c0c04325453c 260 double D2;
peng103617 60:c0c04325453c 261 double D3;
peng103617 60:c0c04325453c 262 double D4;
peng103617 60:c0c04325453c 263
peng103617 60:c0c04325453c 264
peng103617 60:c0c04325453c 265
peng103617 60:c0c04325453c 266
peng103617 60:c0c04325453c 267 sensor1.initReading(0x52,50000);
peng103617 60:c0c04325453c 268 sensor2.initReading(0x27,50000);
peng103617 60:c0c04325453c 269 sensor3.initReading(0x35,50000);
peng103617 60:c0c04325453c 270 sensor4.initReading(0x37,50000);
peng103617 60:c0c04325453c 271 sensor1.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 272 sensor2.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 273 sensor3.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 274 sensor4.setDistanceMode(VL53L1X::Short);
peng103617 60:c0c04325453c 275 cs=1;
peng103617 60:c0c04325453c 276 acc.format(8,3);
peng103617 60:c0c04325453c 277 acc.frequency(2000000);
peng103617 60:c0c04325453c 278 cs=0;
peng103617 60:c0c04325453c 279 acc.write(0x31);
peng103617 60:c0c04325453c 280 acc.write(0x0B);
peng103617 60:c0c04325453c 281 cs=1;
peng103617 60:c0c04325453c 282 cs=0;
peng103617 60:c0c04325453c 283 acc.write(0x2D);
peng103617 60:c0c04325453c 284 acc.write(0x08);
peng103617 60:c0c04325453c 285 cs=1;
peng103617 60:c0c04325453c 286
peng103617 60:c0c04325453c 287 D1 = sensor1.readFromOneSensor();
peng103617 60:c0c04325453c 288 wait(0.1);
peng103617 60:c0c04325453c 289 D2 = sensor2.readFromOneSensor();
peng103617 60:c0c04325453c 290 wait(0.1);
peng103617 60:c0c04325453c 291 D3 = sensor3.readFromOneSensor();
peng103617 60:c0c04325453c 292 wait(0.1);
peng103617 60:c0c04325453c 293 D4 = sensor4.readFromOneSensor();
peng103617 60:c0c04325453c 294 wait(0.1);
peng103617 60:c0c04325453c 295
peng103617 60:c0c04325453c 296 cs=0;
peng103617 60:c0c04325453c 297 acc.write(0x80|0x40|0x32);
peng103617 60:c0c04325453c 298 for (int i=0;i<=5;i++)
peng103617 60:c0c04325453c 299 {
peng103617 60:c0c04325453c 300 buffer[i]=acc.write(0x00);
peng103617 60:c0c04325453c 301 }
peng103617 60:c0c04325453c 302 cs= 1;
peng103617 60:c0c04325453c 303 data[0]=buffer[1]<<8|buffer[0];
peng103617 60:c0c04325453c 304 data[1]=buffer[3]<<8|buffer[2];
peng103617 60:c0c04325453c 305 data[2]=buffer[5]<<8|buffer[4];
peng103617 60:c0c04325453c 306 x=0.004*data[0];
peng103617 60:c0c04325453c 307 wait(0.1);
peng103617 60:c0c04325453c 308 y=0.004*data[1];
peng103617 60:c0c04325453c 309 wait(0.1);
peng103617 60:c0c04325453c 310 z=0.004*data[2];
peng103617 60:c0c04325453c 311 wait(0.1);
peng103617 60:c0c04325453c 312 w=atan2(x,y)*(57.4);
peng103617 60:c0c04325453c 313 wait(0.1);
peng103617 60:c0c04325453c 314 meas_a = analog_value1.read();
peng103617 60:c0c04325453c 315 meas_a1 = meas_a * 3*25;
peng103617 60:c0c04325453c 316 meas_b = analog_value2.read();
peng103617 60:c0c04325453c 317 meas_b1 = meas_b * 3*25;
peng103617 60:c0c04325453c 318 meas_c = analog_value3.read();
peng103617 60:c0c04325453c 319 meas_c1 = meas_c * 3*25;
peng103617 60:c0c04325453c 320 meas_d = analog_value4.read();
peng103617 60:c0c04325453c 321 meas_d1 = meas_d * 3*25;
peng103617 60:c0c04325453c 322 meas_e = analog_value5.read();
peng103617 60:c0c04325453c 323 meas_e1 = meas_e * 3*25;
peng103617 60:c0c04325453c 324
peng103617 60:c0c04325453c 325
peng103617 60:c0c04325453c 326
mbed_official 37:3a31525e2971 327 int count = 0;
mbed_official 37:3a31525e2971 328
mbed_official 35:052c1ba06ce7 329 printf("WiFi example\n\n");
mbed_official 0:857719181846 330
mbed_official 37:3a31525e2971 331 count = scan_demo(&wifi);
peng103617 60:c0c04325453c 332
mbed_official 37:3a31525e2971 333 if (count == 0) {
mbed_official 37:3a31525e2971 334 printf("No WIFI APNs found - can't continue further.\n");
mbed_official 37:3a31525e2971 335 return -1;
mbed_official 37:3a31525e2971 336 }
mbed_official 0:857719181846 337
mbed_official 37:3a31525e2971 338 printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID);
mbed_official 0:857719181846 339 int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
cornetlin 59:9bbcc1b368ba 340 //int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA);
mbed_official 0:857719181846 341 if (ret != 0) {
mbed_official 35:052c1ba06ce7 342 printf("\nConnection error\n");
mbed_official 0:857719181846 343 return -1;
mbed_official 0:857719181846 344 }
mbed_official 0:857719181846 345
mbed_official 35:052c1ba06ce7 346 printf("Success\n\n");
mbed_official 35:052c1ba06ce7 347 printf("MAC: %s\n", wifi.get_mac_address());
mbed_official 35:052c1ba06ce7 348 printf("IP: %s\n", wifi.get_ip_address());
mbed_official 35:052c1ba06ce7 349 printf("Netmask: %s\n", wifi.get_netmask());
mbed_official 35:052c1ba06ce7 350 printf("Gateway: %s\n", wifi.get_gateway());
mbed_official 35:052c1ba06ce7 351 printf("RSSI: %d\n\n", wifi.get_rssi());
mbed_official 0:857719181846 352
mbed_official 0:857719181846 353 http_demo(&wifi);
mbed_official 0:857719181846 354
cornetlin 59:9bbcc1b368ba 355 //wifi.disconnect();
cornetlin 59:9bbcc1b368ba 356
cornetlin 59:9bbcc1b368ba 357 printf("\Wifi Example Done,MQTT Example Start\n");
cornetlin 59:9bbcc1b368ba 358
cornetlin 59:9bbcc1b368ba 359 // MQTT Example Start
cornetlin 59:9bbcc1b368ba 360 float version = 0.6;
peng103617 60:c0c04325453c 361 char* topic = "192.168.0.164";
cornetlin 59:9bbcc1b368ba 362
cornetlin 59:9bbcc1b368ba 363 logMessage("HelloMQTT: version is %.2f\r\n", version);
cornetlin 59:9bbcc1b368ba 364
cornetlin 59:9bbcc1b368ba 365 NetworkInterface* network = &wifi;
cornetlin 59:9bbcc1b368ba 366 if (!network) {
cornetlin 59:9bbcc1b368ba 367 return -1;
cornetlin 59:9bbcc1b368ba 368 }
cornetlin 59:9bbcc1b368ba 369
cornetlin 59:9bbcc1b368ba 370 MQTTNetwork mqttNetwork(network);
cornetlin 59:9bbcc1b368ba 371
cornetlin 59:9bbcc1b368ba 372 MQTT::Client<MQTTNetwork, Countdown> client(mqttNetwork);
cornetlin 59:9bbcc1b368ba 373
peng103617 60:c0c04325453c 374 const char* hostname = "192.168.0.164";
cornetlin 59:9bbcc1b368ba 375 int port = 1883;
cornetlin 59:9bbcc1b368ba 376 logMessage("Connecting to %s:%d\r\n", hostname, port);
cornetlin 59:9bbcc1b368ba 377 int rc = mqttNetwork.connect(hostname, port);
cornetlin 59:9bbcc1b368ba 378 if (rc != 0)
cornetlin 59:9bbcc1b368ba 379 logMessage("rc from TCP connect is %d\r\n", rc);
cornetlin 59:9bbcc1b368ba 380
cornetlin 59:9bbcc1b368ba 381 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
cornetlin 59:9bbcc1b368ba 382 data.MQTTVersion = 3;
cornetlin 59:9bbcc1b368ba 383 data.clientID.cstring = "mbed-sample";
cornetlin 59:9bbcc1b368ba 384 data.username.cstring = "testuser";
cornetlin 59:9bbcc1b368ba 385 data.password.cstring = "testpassword";
cornetlin 59:9bbcc1b368ba 386 if ((rc = client.connect(data)) != 0)
cornetlin 59:9bbcc1b368ba 387 logMessage("rc from MQTT connect is %d\r\n", rc);
cornetlin 59:9bbcc1b368ba 388
cornetlin 59:9bbcc1b368ba 389 if ((rc = client.subscribe(topic, MQTT::QOS2, messageArrived)) != 0)
cornetlin 59:9bbcc1b368ba 390 logMessage("rc from MQTT subscribe is %d\r\n", rc);
peng103617 60:c0c04325453c 391
cornetlin 59:9bbcc1b368ba 392 MQTT::Message message;
peng103617 60:c0c04325453c 393 //pc.printf("%d,%d,%d,%d,%+1.2f,%+1.2f,%+1.2f,%+1.2f,%1.0f,%1.0f,%1.0f,%1.0f,%1.0f\n\r",
peng103617 60:c0c04325453c 394 //sensor1.readFromOneSensor(), sensor2.readFromOneSensor(), sensor3.readFromOneSensor(), sensor4.readFromOneSensor(),
peng103617 60:c0c04325453c 395 //x,y,z,w, meas_a1, meas_b1, meas_c1, meas_d1, meas_e1);
cornetlin 59:9bbcc1b368ba 396 // QoS 0
peng103617 60:c0c04325453c 397
cornetlin 59:9bbcc1b368ba 398 char buf[100];
peng103617 60:c0c04325453c 399 sprintf(buf, "100");
peng103617 60:c0c04325453c 400
peng103617 60:c0c04325453c 401
peng103617 60:c0c04325453c 402 //sprintf(buf, "%d,%d,%d,%d,%+1.2f,%+1.2f,%+1.2f,%+1.2f,%1.0f,%1.0f,%1.0f,%1.0f,%1.0f\n\r",
peng103617 60:c0c04325453c 403 //sensor1.readFromOneSensor(), sensor2.readFromOneSensor(), sensor3.readFromOneSensor(), sensor4.readFromOneSensor(),
peng103617 60:c0c04325453c 404 //x,y,z,w, meas_a1, meas_b1, meas_c1, meas_d1, meas_e1);
peng103617 60:c0c04325453c 405
peng103617 60:c0c04325453c 406
peng103617 60:c0c04325453c 407
peng103617 60:c0c04325453c 408 message.qos = MQTT::QOS1;
cornetlin 59:9bbcc1b368ba 409 message.retained = false;
cornetlin 59:9bbcc1b368ba 410 message.dup = false;
cornetlin 59:9bbcc1b368ba 411 message.payload = (void*)buf;
cornetlin 59:9bbcc1b368ba 412 message.payloadlen = strlen(buf)+1;
cornetlin 59:9bbcc1b368ba 413 rc = client.publish(topic, message);
peng103617 60:c0c04325453c 414 client.yield(100);
peng103617 60:c0c04325453c 415
peng103617 60:c0c04325453c 416
peng103617 60:c0c04325453c 417
peng103617 60:c0c04325453c 418
peng103617 60:c0c04325453c 419
mbed_official 0:857719181846 420 }