A sample program that trigger on IFTTT Maker channel with ESP8266
Dependencies: ESP8266Interface mbed
Fork of ESP8266_Test by
main.cpp@12:33e4fa29ade9, 2015-07-24 (annotated)
- Committer:
- ytsuboi
- Date:
- Fri Jul 24 04:05:52 2015 +0000
- Revision:
- 12:33e4fa29ade9
- Parent:
- 9:91fe783e1dd4
initial commit for publish
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
michaeljkoster | 0:6a891da014a3 | 1 | #include "mbed.h" |
michaeljkoster | 0:6a891da014a3 | 2 | #include "ESP8266Interface.h" |
mbedAustin | 9:91fe783e1dd4 | 3 | #include "TCPSocketConnection.h" |
ytsuboi | 12:33e4fa29ade9 | 4 | |
ytsuboi | 12:33e4fa29ade9 | 5 | // You need to change these 4 lines. |
ytsuboi | 12:33e4fa29ade9 | 6 | #define SSID "YOUR SSID" |
ytsuboi | 12:33e4fa29ade9 | 7 | #define WIFIKEY "YOUR WIFI KEY" |
ytsuboi | 12:33e4fa29ade9 | 8 | const char EVENT[] = "YOUR IFTTT EVENT NAME"; |
ytsuboi | 12:33e4fa29ade9 | 9 | const char KEY[] = "PUT YOUT IFTTT SECRET KEY HERE"; |
ytsuboi | 12:33e4fa29ade9 | 10 | // |
ytsuboi | 12:33e4fa29ade9 | 11 | |
ytsuboi | 12:33e4fa29ade9 | 12 | const char* ECHO_SERVER_ADDRESS = "54.243.120.63"; // maker.ifttt.com |
ytsuboi | 12:33e4fa29ade9 | 13 | const int ECHO_SERVER_PORT = 80; |
ytsuboi | 12:33e4fa29ade9 | 14 | |
ytsuboi | 12:33e4fa29ade9 | 15 | ESP8266Interface wifi(p28,p27,p29,SSID,WIFIKEY,115200); // TX,RX,Reset,SSID,Password |
mbedAustin | 7:d2c97b20d237 | 16 | RawSerial pc(USBTX, USBRX); // tx, rx |
ytsuboi | 12:33e4fa29ade9 | 17 | AnalogIn pot1 (p19); |
ytsuboi | 12:33e4fa29ade9 | 18 | AnalogIn pot2 (p20); |
mbedAustin | 9:91fe783e1dd4 | 19 | |
mbedAustin | 7:d2c97b20d237 | 20 | int main() { |
mbedAustin | 3:5175e53017e4 | 21 | pc.baud(115200); |
ytsuboi | 12:33e4fa29ade9 | 22 | |
ytsuboi | 12:33e4fa29ade9 | 23 | int http_cmd_sz=800; |
ytsuboi | 12:33e4fa29ade9 | 24 | char http_cmd[http_cmd_sz]; |
ytsuboi | 12:33e4fa29ade9 | 25 | |
mbedAustin | 7:d2c97b20d237 | 26 | wifi.init(); //Use DHCP |
mbedAustin | 7:d2c97b20d237 | 27 | wifi.connect(); |
mbedAustin | 9:91fe783e1dd4 | 28 | pc.printf("IP Address is %s\n", wifi.getIPAddress()); |
mbedAustin | 7:d2c97b20d237 | 29 | |
mbedAustin | 9:91fe783e1dd4 | 30 | TCPSocketConnection socket; |
mbedAustin | 9:91fe783e1dd4 | 31 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
mbedAustin | 9:91fe783e1dd4 | 32 | pc.printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
mbedAustin | 9:91fe783e1dd4 | 33 | wait(1); |
mbedAustin | 9:91fe783e1dd4 | 34 | } |
mbedAustin | 7:d2c97b20d237 | 35 | |
ytsuboi | 12:33e4fa29ade9 | 36 | char Val1[6]; |
ytsuboi | 12:33e4fa29ade9 | 37 | char Val2[6]; |
ytsuboi | 12:33e4fa29ade9 | 38 | char Val3[6]; |
ytsuboi | 12:33e4fa29ade9 | 39 | snprintf(Val1,5,"%.2f", (float)pot1); |
ytsuboi | 12:33e4fa29ade9 | 40 | snprintf(Val2,5,"%.2f", (float)pot2); |
mbedAustin | 7:d2c97b20d237 | 41 | |
ytsuboi | 12:33e4fa29ade9 | 42 | snprintf(http_cmd, http_cmd_sz, "GET /trigger/%s/with/key/%s/?value1=%s&value2=%s&value3=%s HTTP/1.1\r\nHost: maker.ifttt.com\r\nConnection: close\r\n\r\n", EVENT, KEY, Val1, Val2, Val3); |
ytsuboi | 12:33e4fa29ade9 | 43 | pc.printf(http_cmd); |
ytsuboi | 12:33e4fa29ade9 | 44 | socket.send_all(http_cmd, sizeof(http_cmd) - 1); |
ytsuboi | 12:33e4fa29ade9 | 45 | |
ytsuboi | 12:33e4fa29ade9 | 46 | char buf[512]; |
ytsuboi | 12:33e4fa29ade9 | 47 | int n = socket.receive(buf, 512); |
mbedAustin | 9:91fe783e1dd4 | 48 | buf[n] = '\0'; |
ytsuboi | 12:33e4fa29ade9 | 49 | pc.printf("%s\r\n", buf); |
mbedAustin | 7:d2c97b20d237 | 50 | |
mbedAustin | 9:91fe783e1dd4 | 51 | socket.close(); |
mbedAustin | 8:af3b0b5438ad | 52 | wifi.disconnect(); |
mbedAustin | 9:91fe783e1dd4 | 53 | |
mbedAustin | 9:91fe783e1dd4 | 54 | while(true) {} |
mbedAustin | 9:91fe783e1dd4 | 55 | } |
mbedAustin | 9:91fe783e1dd4 | 56 |