Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MQTT-JMF WNCInterface mbed-rtos mbed
Fork of WNCInterface_MQTT_hivemq by
Diff: main.cpp
- Revision:
- 1:1b516e98444f
- Parent:
- 0:73334e2a82be
diff -r 73334e2a82be -r 1b516e98444f main.cpp
--- a/main.cpp Wed Sep 21 17:32:51 2016 +0000
+++ b/main.cpp Tue Sep 27 15:47:49 2016 +0000
@@ -8,16 +8,18 @@
#include "MQTTWNCInterface.h"
#include "rtos.h"
#include "k64f.h"
+#include "Proximity.h"
// connect options for MQTT broker
-#define BROKER "broker.hivemq.com" // MQTT broker URL
-#define PORT 1883 // MQTT broker port number
+#define BROKER "iot.foundry.att.com" // MQTT broker URL
+#define PORT 1880 // MQTT broker port number
#define CLIENTID "96430312d8f7" // use K64F MAC address without colons
#define USERNAME "" // not required for MQTT Dashboard public broker
#define PASSWORD "" // not required for MQTT Dashboard public broker
-#define TOPIC "jmf/Test1" // MQTT topic
+#define TOPIC "proximity" // MQTT topic
+Proximity proximityStrip;
Queue<uint32_t, 6> messageQ;
struct rcvd_errs{
@@ -108,8 +110,9 @@
int rc, good = 0;
Timer tmr;
char* topic = TOPIC;
+ int count = 0;
// turn off LED
- controlLED(blue);
+ controlLED(red);
// set SW2 and SW3 to generate interrupt on falling edge
switch2.fall(&sw2_ISR);
@@ -195,25 +198,79 @@
}
}
}
-
+ controlLED(blue);
MQTT::Message message;
- char buf[100];
+ char buf[512];
message.qos = MQTT::QOS0;
message.retained = false;
message.dup = false;
message.payload = (void*)buf;
message.payloadlen = strlen(buf)+1;
+ sprintf(buf, "[\"Hi\"]");
+ message.payloadlen = strlen(buf)+1;
+ rc = client.publish(topic, message);
+ if( rc ) {
+ printf("Publish request failed! (%d)\r\n",rc);
+ }
+ else {
+ printf("Publish successful!\r\n");
+ client.yield(100);
+ }
+
+ proximityStrip.init();
+ proximityStrip.on();
+
while(true) {
+ count++;
+ if(count >= 30)
+ {
+ count = 0;
+ sprintf(buf, "wake");
+ message.payloadlen = strlen(buf)+1;
+ controlLED(red);
+ rc = client.publish(topic, message);
+ controlLED(off);
+ if( rc ) {
+ printf("Publish request failed! (%d)\r\n",rc);
+ }
+ else {
+ printf("Publish successful!\r\n");
+ client.yield(100);
+ }
+ }
+
osEvent switchEvent = messageQ.get(100);
-
+ controlLED(green);
+ proximityStrip.scan();
+ controlLED(off);
+ if(proximityStrip.changed(50))
+ {
+ controlLED(blue);
+ char* data = proximityStrip.getDataStr();
+ printf("data:%s",data);
+ sprintf(buf, data);
+ //sprintf(buf, "[{\"s\":\"1\"},{\"s\":\"2\"}]");
+ message.payloadlen = strlen(buf)+1;
+ rc = client.publish(topic, message);
+ if( rc ) {
+ printf("Publish request failed! (%d)\r\n",rc);
+ }
+ else {
+ printf("Publish successful!\r\n");
+ count=0;
+ client.yield(100);
+ }
+ }
if (switchEvent.value.v == 22 || switchEvent.value.v == 33) {
switch(switchEvent.value.v) {
case 22 :
sprintf(buf, "sw2");
+ message.payloadlen = strlen(buf)+1;
break;
case 33 :
sprintf(buf, "sw3");
+ message.payloadlen = strlen(buf)+1;
break;
}
printf("Publishing MQTT message: %s (%d)\r\n", (char*)message.payload,
@@ -223,7 +280,8 @@
printf("Publish request failed! (%d)\r\n",rc);
}
else {
- printf("Publish successful!\r\n");
+ printf("Publish successful!\r\n");
+ count=0;
client.yield(100);
}
}
