If door is opened, Arduino sends a message to your Facebook Messenger

Click image for larger version  Name:	arduino-cover.png Views:	0 Size:	847.7 KB ID:	1572
Hardware components
× 1
× 1
Adafruit Magnetic Contact Switch
× 1
Software apps and online services

Demonstration









System Architecture









Wiring


  • One pin to GND.
  • Another pin to A0.




How to Create IFTTT Applet


Follow 12 steps (see red square)

1. Create Applet




2. Set Trigger





3. Search "Webhooks" and click Webhooks





4. Choose "Receive a web request"




5. set Event Name is "door_open" and click "Create trigger" button



6. Click "+that" button to create the action






7. Search "Facebook Messenger" and click





8. Choose Action "Send message". It needs to connect to Facebook for the first time.






9. Create the content of message and then click "Add ingredient" button






10. Choose "OccurredAt". This is time of door open.





11. Click "Create action" button





12. Click "Finish" button

Now Applet is created.






Get Webhooks Key


Go to this link https://ifttt.com/maker_webhooks

Click "Documentation" to see the Webhooks Key.


Copy the Webhook Key and put it in Arduino code




Arduino Code
Code:
// Tutorial for the example is available here:
// https://forum.phpoc.com/articles/tutorials/1241-arduino-ssl-web-client

#include <Phpoc.h>

String IFTTT_WEBHOOKS_KEY = "xxxxxxxxxxxxxxxxxxxxxx"; // change your webhooks key here
char server_name[] = "maker.ifttt.com";

PhpocClient client;

void sendNotification()
{
    // connect to web server on port 443:
    if(client.connectSSL(server_name, 443)) {
        // if connected:
        Serial.println("Connected to server");

        // make a HTTP request:
        client.println("GET /trigger/door_open/with/key/" + IFTTT_WEBHOOKS_KEY + " HTTP/1.1");
        client.println("Host: maker.ifttt.com");
        client.println("Connection: close");
        client.println();
    }

    while(client.connected()) {
        if(client.available()) {
            char c = client.read();
            Serial.write(c);
        }
    }

    Serial.println();
    Serial.println("disconnecting from server.");
    client.stop();
}

void setup() {
    Serial.begin(9600);

    // initialize PHPoC [WiFi] Shield:
    Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);

    pinMode(A0, INPUT_PULLUP);
}

int previous_status = 1;

void loop() {
    int current_status = digitalRead(A0);

    if(previous_status == 0 && current_status == 1) { // if door is opened...
        Serial.println("door is opened");
        sendNotification();
        delay(100);
    } else if(previous_status == 1 && current_status == 0) { // if door is closed...
        Serial.println("door is closed");
    }

    previous_status = current_status;
}