Wiznet W750Sr Mqtt , IFTT to Voice control your fish tank from anywhere in the world
Dependencies: MQTT WIZnetInterface mbed-src
main.cpp
- Committer:
- Fady
- Date:
- 2018-07-29
- Revision:
- 0:9819f8dd48ac
File content as of revision 0:9819f8dd48ac:
#include "mbed.h"
#include "MQTTEthernet.h"
#include "MQTTClient.h"
#include <sstream>
#include <string>
Serial s(PA_13,PA_14); // Communication with the Arduino Board
Serial out(USBTX,USBRX); // Debuging through USB
void messageArrived(MQTT::MessageData& md)
{
MQTT::Message &message = md.message;
out.printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id);
out.printf("Payload %.*s\n", message.payloadlen, (char*)message.payload);
s.printf("%.*s\n", message.payloadlen, (char*)message.payload);//To send serial data to arduino
int i = atoi((char*)message.payload);
switch(i) {
case 0: //start servo to feed the fish
out.printf("Feeding");
s.printf("Feed");
break;
case 1: //turn lights on
out.printf("Lights on");
s.printf("ON");
break;
case 2: //turn lights off
out.printf("Lights off");
s.printf("OFF");
break;
case 3: //turn Dancing led strip on
out.printf("Led Flashing");
s.printf("Dance");
break;
case 4: //turn Dancing led strip off
out.printf("Led Not Flashing");
s.printf("NoDance");
break;
}
}
void baud(int baudrate)
{
s.baud(baudrate);
}
int main(void)
{
char* topic1 = "******/feeds/welcome-feed";
// char* topic2 = "******/feeds/lights"; //****** type your username on IFTT instead of the stars
//char* topic3 = "******/feeds/dance";
printf("starting...\n");
MQTTEthernet ipstack = MQTTEthernet();
MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack);
char* hostname = "io.adafruit.com";//your MQTT broker host
int port = 1883; // broker port number
int rc = ipstack.connect(hostname, port);
out.printf("rc from TCP connect is %d\n", rc);
if (rc != 0)
out.printf("rc from TCP connect is %d\n", rc);
char MQTTClientID[30];
MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
data.MQTTVersion = 3;
sprintf(MQTTClientID,"WIZwiki-%d",rand()%1000);
data.clientID.cstring = MQTTClientID;
data.username.cstring = "*******"; //****** type your username on IFTT instead of the stars
data.password.cstring = "************************"; //****** type your Password on IFTT instead of the stars
if ((rc = client.connect(data)) != 0)
printf("rc from MQTT connect is %d\n", rc);
if ((rc = client.subscribe(topic1, MQTT::QOS0, messageArrived)) != 0) {
out.printf("rc from MQTT subscribe is %d\n", rc);
}
while (true) {
client.yield(6);
}
}