The NXP LCP1768 and mbed Application Board on 2lemetry platform.

Dependencies:   C12832_lcd EthernetInterface MMA7660 MQTT mbed-rtos mbed

Fork of MQTTTest by Joerg Wende

Introduction

A simple example of the NXP LCP1768 and mbed Application Board on the 2lemetry platform.

This example publishes the 3-axis accelerometer values over MQTT to the 2lemetry platform. It is meant to be a simple example to get up and going quickly with the platform and explore real-time and persisted data.

Steps to Getting Started

Steps to getting your 1768 online with 2lemetry:

  1. Sign up for a free "hacker" account in the 2lemetry Portal.
  2. Import this project into your mbed online compiler workspace.
  3. Update the 2lemetry specific defines at the top of main.cpp (see below).
  4. Compile and upload.
  5. See your data in real-time on the MQTT tab of the portal.

2lemetry specific defines in main.cpp

#define  _2LEMETRY_USERID       "<2lemetry user id>"
#define  _2LEMETRY_TOKEN        "<2lemetry token>"
#define  _2LEMETRY_DOMAIN       "<2lemetry domain - usually same as user id>"
#define  _2LEMETRY_STUFF        "<2lemetry stuff - a grouping of devices - recommend 'mbed' to get started>"
#define  _2LEMETRY_DEVICE_ID    "<2lemetry device id - unique device id - mac / serial # - recommend 'nxp01' to get started>"

Notes

  • Your user ID and token can be found by clicking on your name in the upper right corner of the portal...Profile and then selecting the Credentials tab. Click on "Display Token" to copy your token.
  • Domain in the developer portal is the same as your user ID.
  • Stuff is a hierarchial addition to allow grouping of devices. This would allow you to group all of your NXP devices, all of your Freescale devices, etc. To get started quickly with this example just use "mbed".
  • Device ID is a way to uniquely identify each device. Usually you'd choose something like the MAC address of your device or the device's serial number. To get started quickly with this example just use "nxp01".
Committer:
jwende
Date:
Sun May 26 16:52:40 2013 +0000
Revision:
0:3f9dd63f4f98
Child:
2:edcfec87de9b
Sample client implementation for for MQTT PubSubClient library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jwende 0:3f9dd63f4f98 1 #include "mbed.h"
jwende 0:3f9dd63f4f98 2 #include "EthernetInterface.h"
jwende 0:3f9dd63f4f98 3 #include "C12832_lcd.h"
jwende 0:3f9dd63f4f98 4 #include "PubSubClient.h"
jwende 0:3f9dd63f4f98 5
jwende 0:3f9dd63f4f98 6 C12832_LCD lcd;
jwende 0:3f9dd63f4f98 7 Serial pc(USBTX, USBRX);
jwende 0:3f9dd63f4f98 8
jwende 0:3f9dd63f4f98 9 char* serverIpAddr = "192.168.2.111"; /*Sever ip address*/
jwende 0:3f9dd63f4f98 10 int port = 1883; /*Sever Port*/
jwende 0:3f9dd63f4f98 11 void callback(char* topic, char* payload, unsigned int len); /*Callback function prototype*/
jwende 0:3f9dd63f4f98 12 PubSubClient mqtt(serverIpAddr, port, callback);
jwende 0:3f9dd63f4f98 13 EthernetInterface eth;
jwende 0:3f9dd63f4f98 14
jwende 0:3f9dd63f4f98 15 void callback(char* topic, char* payload, unsigned int len)
jwende 0:3f9dd63f4f98 16 {
jwende 0:3f9dd63f4f98 17 lcd.printf("Topic: %s\r\n", topic);
jwende 0:3f9dd63f4f98 18 lcd.printf("Payload: %s\r\n\r\n", payload);
jwende 0:3f9dd63f4f98 19 //Send incoming payloads back to topic "/mbed".
jwende 0:3f9dd63f4f98 20 mqtt.publish("mbed", payload, len);
jwende 0:3f9dd63f4f98 21 }
jwende 0:3f9dd63f4f98 22
jwende 0:3f9dd63f4f98 23 int main() {
jwende 0:3f9dd63f4f98 24
jwende 0:3f9dd63f4f98 25 eth.init(); //Use DHCP
jwende 0:3f9dd63f4f98 26 eth.connect();
jwende 0:3f9dd63f4f98 27 lcd.cls();
jwende 0:3f9dd63f4f98 28 lcd.locate(0,3);
jwende 0:3f9dd63f4f98 29 pc.printf("IP Address is %s\n", eth.getIPAddress());
jwende 0:3f9dd63f4f98 30
jwende 0:3f9dd63f4f98 31 pc.printf("MQTTClient Tester");
jwende 0:3f9dd63f4f98 32
jwende 0:3f9dd63f4f98 33
jwende 0:3f9dd63f4f98 34 char clientID[] = "mbed"; /*Client nanme show for MQTT server*/
jwende 0:3f9dd63f4f98 35 char pub_topic[] = "mbed"; /*Publish to topic : "/mbed" */
jwende 0:3f9dd63f4f98 36 char sub_topic[] = "mirror"; /*Subscribe to topic : "/mirror" */
jwende 0:3f9dd63f4f98 37
jwende 0:3f9dd63f4f98 38 if(!mqtt.connect(clientID)){
jwende 0:3f9dd63f4f98 39 pc.printf("\r\nConnect to server failed ..\r\n");
jwende 0:3f9dd63f4f98 40 return -1;
jwende 0:3f9dd63f4f98 41 }
jwende 0:3f9dd63f4f98 42
jwende 0:3f9dd63f4f98 43 pc.printf("\r\nConnect to server sucessed ..\r\n");
jwende 0:3f9dd63f4f98 44
jwende 0:3f9dd63f4f98 45 mqtt.publish(pub_topic, "Hello here is mbed...");
jwende 0:3f9dd63f4f98 46 mqtt.subscribe(sub_topic);
jwende 0:3f9dd63f4f98 47
jwende 0:3f9dd63f4f98 48
jwende 0:3f9dd63f4f98 49 pc.printf("#### End of the test.. ####");
jwende 0:3f9dd63f4f98 50
jwende 0:3f9dd63f4f98 51 //eth.disconnect();
jwende 0:3f9dd63f4f98 52
jwende 0:3f9dd63f4f98 53 while(1) {
jwende 0:3f9dd63f4f98 54 mqtt.loop();
jwende 0:3f9dd63f4f98 55 }
jwende 0:3f9dd63f4f98 56 }