PGO6

Dependencies:   MQTT

Committer:
jensdehoog
Date:
Sun Oct 29 23:01:06 2017 +0000
Revision:
1:34e76c0cbe5a
Parent:
0:fd29cd85e75e
Child:
2:5b7d055dbc91
Updated the assignment for a longer during time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jensdehoog 0:fd29cd85e75e 1 #define APP_VERSION 0.6f
jensdehoog 0:fd29cd85e75e 2 #define MQTT_VERSION 3
jensdehoog 0:fd29cd85e75e 3 #define BROKER_NAME "broker.hivemq.com"
jensdehoog 0:fd29cd85e75e 4 #define BROKER_PORT 1883
jensdehoog 0:fd29cd85e75e 5
jensdehoog 0:fd29cd85e75e 6 #include "debounce_button.h"
jensdehoog 0:fd29cd85e75e 7 #include "EthernetInterface.h"
jensdehoog 0:fd29cd85e75e 8 #include "MQTTNetwork.h"
jensdehoog 0:fd29cd85e75e 9 #include "MQTTmbed.h"
jensdehoog 0:fd29cd85e75e 10 #include "MQTTClient.h"
jensdehoog 0:fd29cd85e75e 11
jensdehoog 0:fd29cd85e75e 12 char* topic;
jensdehoog 0:fd29cd85e75e 13
jensdehoog 0:fd29cd85e75e 14 /**
jensdehoog 0:fd29cd85e75e 15 TODO
jensdehoog 0:fd29cd85e75e 16 ----
jensdehoog 0:fd29cd85e75e 17 - Check if the button has been pressed. If so, print the amount of clicks to a serial terminal.
jensdehoog 0:fd29cd85e75e 18 - Make an MQTT-service which:
jensdehoog 0:fd29cd85e75e 19 - starts up a network using EthernetInterface. Make sure the development board requests its address via DHCP.
jensdehoog 0:fd29cd85e75e 20 - makes a client and connects it to the broker using a client ID and credentials (username & password).
jensdehoog 0:fd29cd85e75e 21 - sends messages at the same topic as the smartphone app from PGO 2. Feel free to choose which Quality of Service
jensdehoog 0:fd29cd85e75e 22 you are going to use. Make a separate function which handles the sending procedure. Therefore, this function
jensdehoog 0:fd29cd85e75e 23 can be called each time we want to send a certain message.
jensdehoog 0:fd29cd85e75e 24 - When the button is pressed once, we send an upvote. When pressed twice, a downvote is sent. By pressing 4 times,
jensdehoog 0:fd29cd85e75e 25 the program disconnects from the broker and terminates.
jensdehoog 0:fd29cd85e75e 26
jensdehoog 0:fd29cd85e75e 27 Extra
jensdehoog 0:fd29cd85e75e 28 -----
jensdehoog 0:fd29cd85e75e 29 - Subscribe to the topic on which the song data is published. Display this received message on the serial terminal.
jensdehoog 0:fd29cd85e75e 30 - Test this controller in the complete system of PGO 2. Use these controllers instead of the smartphones.
jensdehoog 0:fd29cd85e75e 31
jensdehoog 0:fd29cd85e75e 32 Tips & tricks
jensdehoog 0:fd29cd85e75e 33 -------------
jensdehoog 0:fd29cd85e75e 34 - To generate an interrupt on the press of a button, use:
jensdehoog 0:fd29cd85e75e 35 InterruptIn button(USER_BUTTON);
jensdehoog 0:fd29cd85e75e 36 ...
jensdehoog 0:fd29cd85e75e 37 button.fall(callback(someFunction));
jensdehoog 1:34e76c0cbe5a 38 The function someFunction(void) is called when this interrupt occurs.
jensdehoog 0:fd29cd85e75e 39 - Before implementing MQTT, test the multiclick feature first.
jensdehoog 1:34e76c0cbe5a 40 You can simply use 'printf()' to print to a serial terminal. The baud rate is 9600.
jensdehoog 0:fd29cd85e75e 41 - Have a look at the MQTT-library for Mbed and the HelloMQTT-example.
jensdehoog 0:fd29cd85e75e 42 - To have a uniform message sending procedure, use the following function usage:
jensdehoog 0:fd29cd85e75e 43 sendMessage(&client, topic, buf, qos, retained, duplicate)
jensdehoog 0:fd29cd85e75e 44 */
jensdehoog 0:fd29cd85e75e 45
jensdehoog 0:fd29cd85e75e 46 int main(int argc, char* argv[])
jensdehoog 0:fd29cd85e75e 47 {
jensdehoog 0:fd29cd85e75e 48
jensdehoog 0:fd29cd85e75e 49 return 0;
jensdehoog 0:fd29cd85e75e 50 }