Wiznet W750Sr Mqtt , IFTT to Voice control your fish tank from anywhere in the world
Dependencies: MQTT WIZnetInterface mbed-src
main.cpp@0:9819f8dd48ac, 2018-07-29 (annotated)
- Committer:
- Fady
- Date:
- Sun Jul 29 00:41:10 2018 +0000
- Revision:
- 0:9819f8dd48ac
V1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Fady | 0:9819f8dd48ac | 1 | #include "mbed.h" |
Fady | 0:9819f8dd48ac | 2 | #include "MQTTEthernet.h" |
Fady | 0:9819f8dd48ac | 3 | #include "MQTTClient.h" |
Fady | 0:9819f8dd48ac | 4 | #include <sstream> |
Fady | 0:9819f8dd48ac | 5 | #include <string> |
Fady | 0:9819f8dd48ac | 6 | |
Fady | 0:9819f8dd48ac | 7 | Serial s(PA_13,PA_14); // Communication with the Arduino Board |
Fady | 0:9819f8dd48ac | 8 | |
Fady | 0:9819f8dd48ac | 9 | Serial out(USBTX,USBRX); // Debuging through USB |
Fady | 0:9819f8dd48ac | 10 | |
Fady | 0:9819f8dd48ac | 11 | void messageArrived(MQTT::MessageData& md) |
Fady | 0:9819f8dd48ac | 12 | { |
Fady | 0:9819f8dd48ac | 13 | MQTT::Message &message = md.message; |
Fady | 0:9819f8dd48ac | 14 | out.printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id); |
Fady | 0:9819f8dd48ac | 15 | out.printf("Payload %.*s\n", message.payloadlen, (char*)message.payload); |
Fady | 0:9819f8dd48ac | 16 | s.printf("%.*s\n", message.payloadlen, (char*)message.payload);//To send serial data to arduino |
Fady | 0:9819f8dd48ac | 17 | int i = atoi((char*)message.payload); |
Fady | 0:9819f8dd48ac | 18 | switch(i) { |
Fady | 0:9819f8dd48ac | 19 | case 0: //start servo to feed the fish |
Fady | 0:9819f8dd48ac | 20 | out.printf("Feeding"); |
Fady | 0:9819f8dd48ac | 21 | s.printf("Feed"); |
Fady | 0:9819f8dd48ac | 22 | break; |
Fady | 0:9819f8dd48ac | 23 | case 1: //turn lights on |
Fady | 0:9819f8dd48ac | 24 | out.printf("Lights on"); |
Fady | 0:9819f8dd48ac | 25 | s.printf("ON"); |
Fady | 0:9819f8dd48ac | 26 | |
Fady | 0:9819f8dd48ac | 27 | break; |
Fady | 0:9819f8dd48ac | 28 | case 2: //turn lights off |
Fady | 0:9819f8dd48ac | 29 | out.printf("Lights off"); |
Fady | 0:9819f8dd48ac | 30 | s.printf("OFF"); |
Fady | 0:9819f8dd48ac | 31 | |
Fady | 0:9819f8dd48ac | 32 | break; |
Fady | 0:9819f8dd48ac | 33 | case 3: //turn Dancing led strip on |
Fady | 0:9819f8dd48ac | 34 | out.printf("Led Flashing"); |
Fady | 0:9819f8dd48ac | 35 | s.printf("Dance"); |
Fady | 0:9819f8dd48ac | 36 | |
Fady | 0:9819f8dd48ac | 37 | break; |
Fady | 0:9819f8dd48ac | 38 | case 4: //turn Dancing led strip off |
Fady | 0:9819f8dd48ac | 39 | out.printf("Led Not Flashing"); |
Fady | 0:9819f8dd48ac | 40 | s.printf("NoDance"); |
Fady | 0:9819f8dd48ac | 41 | |
Fady | 0:9819f8dd48ac | 42 | break; |
Fady | 0:9819f8dd48ac | 43 | |
Fady | 0:9819f8dd48ac | 44 | } |
Fady | 0:9819f8dd48ac | 45 | } |
Fady | 0:9819f8dd48ac | 46 | |
Fady | 0:9819f8dd48ac | 47 | void baud(int baudrate) |
Fady | 0:9819f8dd48ac | 48 | { |
Fady | 0:9819f8dd48ac | 49 | |
Fady | 0:9819f8dd48ac | 50 | s.baud(baudrate); |
Fady | 0:9819f8dd48ac | 51 | } |
Fady | 0:9819f8dd48ac | 52 | |
Fady | 0:9819f8dd48ac | 53 | |
Fady | 0:9819f8dd48ac | 54 | |
Fady | 0:9819f8dd48ac | 55 | |
Fady | 0:9819f8dd48ac | 56 | int main(void) |
Fady | 0:9819f8dd48ac | 57 | { |
Fady | 0:9819f8dd48ac | 58 | |
Fady | 0:9819f8dd48ac | 59 | char* topic1 = "******/feeds/welcome-feed"; |
Fady | 0:9819f8dd48ac | 60 | // char* topic2 = "******/feeds/lights"; //****** type your username on IFTT instead of the stars |
Fady | 0:9819f8dd48ac | 61 | //char* topic3 = "******/feeds/dance"; |
Fady | 0:9819f8dd48ac | 62 | |
Fady | 0:9819f8dd48ac | 63 | printf("starting...\n"); |
Fady | 0:9819f8dd48ac | 64 | |
Fady | 0:9819f8dd48ac | 65 | |
Fady | 0:9819f8dd48ac | 66 | MQTTEthernet ipstack = MQTTEthernet(); |
Fady | 0:9819f8dd48ac | 67 | |
Fady | 0:9819f8dd48ac | 68 | MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack); |
Fady | 0:9819f8dd48ac | 69 | |
Fady | 0:9819f8dd48ac | 70 | char* hostname = "io.adafruit.com";//your MQTT broker host |
Fady | 0:9819f8dd48ac | 71 | int port = 1883; // broker port number |
Fady | 0:9819f8dd48ac | 72 | |
Fady | 0:9819f8dd48ac | 73 | int rc = ipstack.connect(hostname, port); |
Fady | 0:9819f8dd48ac | 74 | |
Fady | 0:9819f8dd48ac | 75 | out.printf("rc from TCP connect is %d\n", rc); |
Fady | 0:9819f8dd48ac | 76 | |
Fady | 0:9819f8dd48ac | 77 | if (rc != 0) |
Fady | 0:9819f8dd48ac | 78 | out.printf("rc from TCP connect is %d\n", rc); |
Fady | 0:9819f8dd48ac | 79 | |
Fady | 0:9819f8dd48ac | 80 | char MQTTClientID[30]; |
Fady | 0:9819f8dd48ac | 81 | MQTTPacket_connectData data = MQTTPacket_connectData_initializer; |
Fady | 0:9819f8dd48ac | 82 | data.MQTTVersion = 3; |
Fady | 0:9819f8dd48ac | 83 | sprintf(MQTTClientID,"WIZwiki-%d",rand()%1000); |
Fady | 0:9819f8dd48ac | 84 | |
Fady | 0:9819f8dd48ac | 85 | data.clientID.cstring = MQTTClientID; |
Fady | 0:9819f8dd48ac | 86 | data.username.cstring = "*******"; //****** type your username on IFTT instead of the stars |
Fady | 0:9819f8dd48ac | 87 | data.password.cstring = "************************"; //****** type your Password on IFTT instead of the stars |
Fady | 0:9819f8dd48ac | 88 | if ((rc = client.connect(data)) != 0) |
Fady | 0:9819f8dd48ac | 89 | printf("rc from MQTT connect is %d\n", rc); |
Fady | 0:9819f8dd48ac | 90 | |
Fady | 0:9819f8dd48ac | 91 | |
Fady | 0:9819f8dd48ac | 92 | if ((rc = client.subscribe(topic1, MQTT::QOS0, messageArrived)) != 0) { |
Fady | 0:9819f8dd48ac | 93 | out.printf("rc from MQTT subscribe is %d\n", rc); |
Fady | 0:9819f8dd48ac | 94 | |
Fady | 0:9819f8dd48ac | 95 | |
Fady | 0:9819f8dd48ac | 96 | } |
Fady | 0:9819f8dd48ac | 97 | |
Fady | 0:9819f8dd48ac | 98 | while (true) { |
Fady | 0:9819f8dd48ac | 99 | |
Fady | 0:9819f8dd48ac | 100 | |
Fady | 0:9819f8dd48ac | 101 | |
Fady | 0:9819f8dd48ac | 102 | client.yield(6); |
Fady | 0:9819f8dd48ac | 103 | |
Fady | 0:9819f8dd48ac | 104 | } |
Fady | 0:9819f8dd48ac | 105 | } |