Capteur de porte Arduino : alertes Facebook Messenger en temps réel via IFTTT
Composants et fournitures
| Arduino UNO | × | 1 |
| Shield WiFi PHPoC pour Arduino | × | 1 |
| Contacteur magnétique (interrupteur de porte) | × | 1 |
Applications et services en ligne
- Service IFTTT Maker (Webhooks)
À propos du projet
Note importante : IFTTT a récemment abandonné son service Facebook Messenger en raison de nouvelles politiques de Facebook. Ce projet n'est donc plus réalisable tel quel.
Si vous êtes débutant, vous pouvez apprendre les sujets connexes :
- Arduino - WiFi
- Arduino - Capteur de porte
- Arduino - IFTTT
Démonstration
Un projet similaire, moins coûteux et utilisable en environnement industriel : hackster.io
Architecture système
Schéma d'architecture disponible dans le projet original.
Câblage
- Une broche du contacteur → GND
- Autre broche → A0
Comment créer un applet IFTTT
- Créer un applet.
- Définir le déclencheur (trigger).
- Rechercher "Webhooks" et cliquer.
- Choisir "Receive a web request".
- Nom de l'événement :
door_open, cliquer "Create trigger". - Cliquer "+that" pour créer l'action.
- Rechercher "Facebook Messenger" et cliquer.
- Choisir l'action "Send message" (connexion Facebook requise la première fois).
- Créer le contenu du message, cliquer "Add ingredient".
- Choisir "OccurredAt" (heure d'ouverture de la porte).
- Cliquer "Create action".
- Cliquer "Finish". L'applet est créé.
Obtenir la clé Webhooks
Aller sur ifttt.com/maker_webhooks, cliquer "Documentation" pour voir la clé Webhooks. La copier dans le code Arduino.
Bibliothèques
Le code utilise deux bibliothèques : PHPoC et Button (ezButton).
Références de fonctions
- Serial.begin()
- Serial.println()
- delay()
- millis()
- for loop
- while loop
- if else
- loop()
- setup()
- String.toInt()
- String.substring()
- String.indexOf()
- String.remove()
- String.equals()
Code
MonitorDoorMessenger (Arduino)
// Tutoriel : https://forum.phpoc.com/articles/tutorials/1241-arduino-ssl-web-client
#include <Phpoc.h>
#include <ezButton.h>
String IFTTT_WEBHOOKS_KEY = "xxxxxxxxxxxxxxxxxxxxxx"; // Remplacer par votre clé
char server_name[] = "maker.ifttt.com";
PhpocClient client;
ezButton button(A0); // Objet bouton sur broche A0
void sendNotification() {
if (client.connectSSL(server_name, 443)) {
Serial.println("Connected to server");
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);
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
button.setDebounceTime(100); // anti-rebond 100 ms
}
void loop() {
button.loop(); // À appeler obligatoirement
if (button.isPressed()) {
Serial.println("door is opened");
sendNotification();
delay(100);
} else if (button.isReleased()) {
Serial.println("door is closed");
}
}
Schémas
Schéma de câblage disponible dans le projet original.
Processus de fabrication
- Programmer facilement les Atmel AT89 avec Arduino Uno – Guide pas à pas
- Capteur CO2 K30 : Surveillance en temps réel de la qualité de l'air intérieur
- Portique de contrôle de température sans contact pour dépistage rapide et précis
- Créer une jauge IoT connectée au Web avec Arduino, Yaler et IFTTT
- Système de surveillance d'incendie forestier en temps réel avec alertes SMS
- Arduino UNO & Shield WiFi : Affichage température temps réel sur le Web via série
- Système de Surveillance Thermique Scolaire : Précis, Temps Réel et Sécurisé
- Système d'éclairage activé par le mouvement basé sur Intel Curie (Arduino 101)
- Serrure connectée WiFi avec Arduino et ESP8266 – Déverrouillage par smartphone