Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 9 months ago.
TCPIP Issue
I tried to use the EthernetInterface for a Internet Button application. The button pressed event is sent for the first time to IFTTT. After pressing the button a second time I get blinking LEDs for LED1 to LED4 but no further reaction. Is there any thing wrong with my program logic? I have the IFTTT Key replaced in the source.
#include "mbed.h"
#include "EthernetInterface.h"
#include "IAP.h"
Serial pc(USBTX, USBRX);
DigitalIn btn(P2_13, PullUp); // to press btn connect this pin to GND
int main()
{
int ret;
pc.baud(115200);
pc.printf("-------- InternetButton -----------\n");
pc.printf("Wait for next btn pressed...\n");
while(true)
{
if (!btn)
{
pc.printf("Btn pressed\n");
EthernetInterface eth;
eth.init(); //Use DHCP
eth.connect();
pc.printf("IP Address is %s\n", eth.getIPAddress());
TCPSocketConnection sock;
ret = sock.connect("maker.ifttt.com", 80);
if (ret == 0) pc.printf("Connected to IFTTT\n");
char http_cmd[] = "POST /trigger/btn_pressed/with/key/IFTTT_KEY?value1=Btn_pressed HTTP/1.1\r\nHost: maker.ifttt.com\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.)\r\n\r\n";
sock.send_all(http_cmd, sizeof(http_cmd)-1);
char buffer[300];
while (true)
{
ret = sock.receive(buffer, sizeof(buffer)-1);
if (ret <= 0) break;
buffer[ret] = '\0';
pc.printf("Received %d chars from server:\n%s\n", ret, buffer);
}
sock.close();
ret = eth.disconnect();
if (ret == 0) pc.printf("Disconnected.\n");
wait_ms(1000);
pc.printf("Wait for next btn pressed...\n");
}
}
}
extern "C" void mbed_mac_address(char *mac) {
IAP iap;
int *serial_number_array = iap.read_serial(); // 4 int
char *ptr = (char *)serial_number_array;
mac[0] = ptr[0];
mac[1] = ptr[1];
mac[2] = ptr[2];
mac[3] = ptr[3];
mac[4] = ptr[4];
mac[5] = ptr[5];
};