update

Dependencies:   HCSR04 MQTT Servo WizFi310Interface_Legacynew mbed-src

Fork of w7500-mqtt-wizfi310 by winwet w7500

Committer:
HarshaDRAGNEEL
Date:
Thu Sep 20 11:17:29 2018 +0000
Revision:
18:e162fcc82c6b
Parent:
16:2794fcca7629
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
justinkim 8:f837e0d255e8 1 #include "mbed.h"
akshaytom 16:2794fcca7629 2 #include "WizFi310Interface.h"
bangbh 9:21574e058141 3 #include "MQTTClient.h"
akshaytom 16:2794fcca7629 4 #include "MQTTmbed.h"
akshaytom 16:2794fcca7629 5 #include "MQTTSocket.h"
HarshaDRAGNEEL 18:e162fcc82c6b 6 #include "hcsr04.h"
HarshaDRAGNEEL 18:e162fcc82c6b 7 #include "Servo.h"
HarshaDRAGNEEL 18:e162fcc82c6b 8
justinkim 8:f837e0d255e8 9
akshaytom 16:2794fcca7629 10 #define SECURE WizFi310::SEC_WPA2_MIXED
akshaytom 16:2794fcca7629 11 #define SSID "CDI"
akshaytom 16:2794fcca7629 12 #define PASS "Cdi*1717"
akshaytom 16:2794fcca7629 13 /*
akshaytom 16:2794fcca7629 14 SET DHCP
akshaytom 16:2794fcca7629 15 */
akshaytom 16:2794fcca7629 16 #define USE_DHCP 1
akshaytom 16:2794fcca7629 17 //--------- Have to modify the mac address-------------
akshaytom 16:2794fcca7629 18 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x34,0x56};
akshaytom 16:2794fcca7629 19 #if defined(TARGET_WIZwiki_W7500)
HarshaDRAGNEEL 18:e162fcc82c6b 20 WizFi310Interface wizfi310(D1, D0, D7, D6, D8, NC, 115200);
HarshaDRAGNEEL 18:e162fcc82c6b 21 Serial pc(USBTX, USBRX);
akshaytom 16:2794fcca7629 22 #endif
HarshaDRAGNEEL 18:e162fcc82c6b 23 HCSR04 sensor(A1,A0); // Trigger , Echo
HarshaDRAGNEEL 18:e162fcc82c6b 24 HCSR04 sensor1(A3,A2); // Trigger , Echo
HarshaDRAGNEEL 18:e162fcc82c6b 25 HCSR04 sensor2(A5,A4); // Trigger , Echo
HarshaDRAGNEEL 18:e162fcc82c6b 26 HCSR04 sensor3(D14,D15); // Trigger , Echo
justinkim 8:f837e0d255e8 27
HarshaDRAGNEEL 18:e162fcc82c6b 28 int j=0;
HarshaDRAGNEEL 18:e162fcc82c6b 29 Servo myservo(D3);
HarshaDRAGNEEL 18:e162fcc82c6b 30 DigitalIn button(D4);
HarshaDRAGNEEL 18:e162fcc82c6b 31 int distance1[100];
HarshaDRAGNEEL 18:e162fcc82c6b 32 int distance2[100];
HarshaDRAGNEEL 18:e162fcc82c6b 33 int distance3[100];
HarshaDRAGNEEL 18:e162fcc82c6b 34 int distance4[100];
bangbh 9:21574e058141 35 int arrivedcount = 0;
bangbh 9:21574e058141 36 void messageArrived(MQTT::MessageData& md)
justinkim 8:f837e0d255e8 37 {
bangbh 9:21574e058141 38 MQTT::Message &message = md.message;
bangbh 9:21574e058141 39 printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id);
bangbh 9:21574e058141 40 printf("Payload %.*s\n", message.payloadlen, (char*)message.payload);
bangbh 9:21574e058141 41 ++arrivedcount;
bangbh 9:21574e058141 42 }
bangbh 9:21574e058141 43
akshaytom 16:2794fcca7629 44 class MQTTWIZ: public MQTTSocket
bangbh 9:21574e058141 45 {
HarshaDRAGNEEL 18:e162fcc82c6b 46 public:
HarshaDRAGNEEL 18:e162fcc82c6b 47 MQTTWIZ() {
akshaytom 16:2794fcca7629 48 wait(1);
akshaytom 16:2794fcca7629 49 this->createSocket();
akshaytom 16:2794fcca7629 50 }
akshaytom 16:2794fcca7629 51 };
akshaytom 16:2794fcca7629 52
HarshaDRAGNEEL 18:e162fcc82c6b 53 int main()
HarshaDRAGNEEL 18:e162fcc82c6b 54 {
HarshaDRAGNEEL 18:e162fcc82c6b 55 pc.baud(9600);
akshaytom 16:2794fcca7629 56
HarshaDRAGNEEL 18:e162fcc82c6b 57 wait(1.0); // 1 sec Admin
HarshaDRAGNEEL 18:e162fcc82c6b 58 // printf("WizFi310 STATION. \r\n");
akshaytom 16:2794fcca7629 59 wizfi310.init();
HarshaDRAGNEEL 18:e162fcc82c6b 60 // printf("After Initialisation. \r\n");
akshaytom 16:2794fcca7629 61
HarshaDRAGNEEL 18:e162fcc82c6b 62 // printf("After Set Address. \r\n");
akshaytom 16:2794fcca7629 63 if ( wizfi310.connect(SECURE, SSID, PASS, WizFi310::WM_STATION)) return -1;
HarshaDRAGNEEL 18:e162fcc82c6b 64 // printf("After Connect. \r\n");
HarshaDRAGNEEL 18:e162fcc82c6b 65 // printf("IP Address is %s\r\n", wizfi310.getIPAddress());
HarshaDRAGNEEL 18:e162fcc82c6b 66
akshaytom 16:2794fcca7629 67 MQTTWIZ ipstack = MQTTWIZ();
akshaytom 16:2794fcca7629 68 MQTT::Client<MQTTWIZ, Countdown> client = MQTT::Client<MQTTWIZ, Countdown>(ipstack);
HarshaDRAGNEEL 18:e162fcc82c6b 69
akshaytom 16:2794fcca7629 70 char* hostname = "172.16.73.4";
bangbh 9:21574e058141 71 int port = 1883;
HarshaDRAGNEEL 18:e162fcc82c6b 72
bangbh 9:21574e058141 73 int rc = ipstack.connect(hostname, port);
bangbh 9:21574e058141 74 if (rc != 0)
bangbh 9:21574e058141 75 printf("rc from TCP connect is %d\n", rc);
HarshaDRAGNEEL 18:e162fcc82c6b 76 // printf("rc from TCP connect is %d\n", rc);
HarshaDRAGNEEL 18:e162fcc82c6b 77
bangbh 15:d4604c47da41 78 char MQTTClientID[30];
HarshaDRAGNEEL 18:e162fcc82c6b 79
HarshaDRAGNEEL 18:e162fcc82c6b 80 MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
bangbh 9:21574e058141 81 data.MQTTVersion = 3;
bangbh 15:d4604c47da41 82 sprintf(MQTTClientID,"WIZwiki-W7500-client-%d",rand()%1000);
bangbh 15:d4604c47da41 83 data.clientID.cstring = MQTTClientID;
bangbh 9:21574e058141 84 data.username.cstring = "testuser";
HarshaDRAGNEEL 18:e162fcc82c6b 85 data.password.cstring = "testpassword";
bangbh 9:21574e058141 86
bangbh 9:21574e058141 87 if ((rc = client.connect(data)) != 0)
HarshaDRAGNEEL 18:e162fcc82c6b 88 // pc.printf("rc from MQTT connect is %d\n", rc);
HarshaDRAGNEEL 18:e162fcc82c6b 89
HarshaDRAGNEEL 18:e162fcc82c6b 90 myservo.calibrate(0.0005, 170);
HarshaDRAGNEEL 18:e162fcc82c6b 91
HarshaDRAGNEEL 18:e162fcc82c6b 92
HarshaDRAGNEEL 18:e162fcc82c6b 93 while (true) {
HarshaDRAGNEEL 18:e162fcc82c6b 94 if(button==1){
HarshaDRAGNEEL 18:e162fcc82c6b 95 char buf[100];
HarshaDRAGNEEL 18:e162fcc82c6b 96 MQTT::Message message;
bangbh 9:21574e058141 97 message.qos = MQTT::QOS0;
bangbh 9:21574e058141 98 message.retained = false;
HarshaDRAGNEEL 18:e162fcc82c6b 99 message.dup = false;
HarshaDRAGNEEL 18:e162fcc82c6b 100 for(int i=0; i<100; i++) {
HarshaDRAGNEEL 18:e162fcc82c6b 101 myservo = i/100.0;
HarshaDRAGNEEL 18:e162fcc82c6b 102 distance1[i] = sensor.distance();
HarshaDRAGNEEL 18:e162fcc82c6b 103 distance2[i] = sensor1.distance();
HarshaDRAGNEEL 18:e162fcc82c6b 104 distance3[i] = sensor2.distance();
HarshaDRAGNEEL 18:e162fcc82c6b 105 distance4[i] = sensor3.distance();
HarshaDRAGNEEL 18:e162fcc82c6b 106 // pc.printf("count %d \n",i);
HarshaDRAGNEEL 18:e162fcc82c6b 107 wait(0.01);
HarshaDRAGNEEL 18:e162fcc82c6b 108 }
HarshaDRAGNEEL 18:e162fcc82c6b 109 for(int i=100; i>0; i--) {
HarshaDRAGNEEL 18:e162fcc82c6b 110 myservo = i/100.0;
HarshaDRAGNEEL 18:e162fcc82c6b 111 wait(0.01);
HarshaDRAGNEEL 18:e162fcc82c6b 112 }
HarshaDRAGNEEL 18:e162fcc82c6b 113 j++;
HarshaDRAGNEEL 18:e162fcc82c6b 114 pc.printf("number of times mapped %d \n",j);
HarshaDRAGNEEL 18:e162fcc82c6b 115 sprintf(buf, "%ld", j);
HarshaDRAGNEEL 18:e162fcc82c6b 116 message.payload = (void*)buf;
HarshaDRAGNEEL 18:e162fcc82c6b 117 message.payloadlen = strlen(buf);
HarshaDRAGNEEL 18:e162fcc82c6b 118 rc = client.publish("Number of times mapped", message);
HarshaDRAGNEEL 18:e162fcc82c6b 119
HarshaDRAGNEEL 18:e162fcc82c6b 120 for(int i=0;i<91;i++){
HarshaDRAGNEEL 18:e162fcc82c6b 121
HarshaDRAGNEEL 18:e162fcc82c6b 122 sprintf(buf, "%ld", distance1[i]);
HarshaDRAGNEEL 18:e162fcc82c6b 123 pc.printf(" The distance is : %s\n",buf);
HarshaDRAGNEEL 18:e162fcc82c6b 124 message.payload = (void*)buf;
HarshaDRAGNEEL 18:e162fcc82c6b 125 message.payloadlen = strlen(buf);
HarshaDRAGNEEL 18:e162fcc82c6b 126 rc = client.publish("0 to 90 degree distance", message);
HarshaDRAGNEEL 18:e162fcc82c6b 127 pc.printf("0 to 90 degree distance: %s\r\n",message.payload);
HarshaDRAGNEEL 18:e162fcc82c6b 128
HarshaDRAGNEEL 18:e162fcc82c6b 129 sprintf(buf, "%ld", distance2[i]);
HarshaDRAGNEEL 18:e162fcc82c6b 130 // pc.printf(" The disstance is : %ld\n",distance1);
HarshaDRAGNEEL 18:e162fcc82c6b 131 pc.printf(" The distance is : %s\n",buf);
HarshaDRAGNEEL 18:e162fcc82c6b 132 message.payload = (void*)buf;
HarshaDRAGNEEL 18:e162fcc82c6b 133 message.payloadlen = strlen(buf);
HarshaDRAGNEEL 18:e162fcc82c6b 134 rc = client.publish("90 to 180 degree distance", message);
HarshaDRAGNEEL 18:e162fcc82c6b 135 pc.printf("90 to 180 degree distance : %s\r\n",message.payload);
HarshaDRAGNEEL 18:e162fcc82c6b 136
HarshaDRAGNEEL 18:e162fcc82c6b 137 sprintf(buf, "%ld", distance3[i]);
HarshaDRAGNEEL 18:e162fcc82c6b 138 pc.printf(" The distance is : %s\n",buf);
HarshaDRAGNEEL 18:e162fcc82c6b 139 message.payload = (void*)buf;
HarshaDRAGNEEL 18:e162fcc82c6b 140 message.payloadlen = strlen(buf);
HarshaDRAGNEEL 18:e162fcc82c6b 141 rc = client.publish("180 to 270 degree distance", message);
HarshaDRAGNEEL 18:e162fcc82c6b 142 pc.printf("180 to 270 degree distance: %s\r\n",message.payload);
HarshaDRAGNEEL 18:e162fcc82c6b 143
HarshaDRAGNEEL 18:e162fcc82c6b 144 sprintf(buf, "%ld", distance4[i]);
HarshaDRAGNEEL 18:e162fcc82c6b 145 pc.printf(" The distance is : %s\n",buf);
HarshaDRAGNEEL 18:e162fcc82c6b 146 message.payload = (void*)buf;
HarshaDRAGNEEL 18:e162fcc82c6b 147 message.payloadlen = strlen(buf);
HarshaDRAGNEEL 18:e162fcc82c6b 148 rc = client.publish("270 to 360 degree distance", message);
HarshaDRAGNEEL 18:e162fcc82c6b 149 pc.printf("270 to 360 degree distance: %s\r\n",message.payload);
HarshaDRAGNEEL 18:e162fcc82c6b 150
HarshaDRAGNEEL 18:e162fcc82c6b 151 client.yield(1000);
HarshaDRAGNEEL 18:e162fcc82c6b 152 wait(0.05);
HarshaDRAGNEEL 18:e162fcc82c6b 153 }
HarshaDRAGNEEL 18:e162fcc82c6b 154 }
HarshaDRAGNEEL 18:e162fcc82c6b 155 }
HarshaDRAGNEEL 18:e162fcc82c6b 156 }