цифровая электроника
вычислительная техника
встраиваемые системы

 



Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Автор: Mike(admin) от 5-06-2019, 07:35

Arduino представляет собой замечательную платформу для домашней автоматизации. В совокупности со сторонними программными средствами можно сделать на основе Arduino очень полезную и эффективную экосистему мониторинга состояния чего-либо в доме.


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

В этом проекте мы используем Arduino, мессенджер Facebook и сервис IFTTT, чтобы следить за состоянием двери (открыта или закрыта).


Общий принцип работы такой системы автоматизации можно выразить в виде следующего изображения.


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Здесь Arduino с помощью Wi-Fi-шилда PHPoC отправляет в интернет информацию о состоянии датчика двери, подключенного к линии A0 платы Arduino. Посредством сервиса IFTTT информация о состоянии двери в конечном итоге доходит до пользователя в виде сообщения в мессенджере Facebook. Подключение выглядит просто:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Немного сложнее будет разобраться и настроить IFTTT. Сначала нужно создать апплет.


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Далее установим триггер:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Найдем "Webhooks" и нажмем на Webhooks:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Выберем «Receive a web request»:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Установим Event Name в «door_open» и нажмем кнопку Create trigger:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Далее нажмем кнопку «+that», чтобы создать действие:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Найдем Facebook Messenger и нажмем на него:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Выберем действие «Send message»:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Создадим содержание сообщения и нажмем кнопку «Add ingredient»:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Выберем «OccurredAt». Это время открытия двери:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Нажмем на кнопку «Create action»:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Нажмем на кнопку «Finish»:


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Теперь апплет создан. Время получить ключ Webhooks. Перейдите по этой ссылке https://ifttt.com/maker_webhooks. Нажмите «Documentation», чтобы увидеть ключ Webhooks.


Arduino, IFTTT и мессенджер Facebook: проверяем состояние двери

Скопируйте этот ключ и поместите его в код Arduino. Запрограммируйте Arduino следующим кодом, и все будет работать.



#include <Phpoc.h>

String IFTTT_WEBHOOKS_KEY = "xxxxxxxxxxxxxxxxxxxxxx"; // вставьте ваш ключ
char server_name[] = "maker.ifttt.com";

PhpocClient client;

void sendNotification()
{
	// подключиться к веб-серверу через порт 443:
	if(client.connectSSL(server_name, 443)) {
		// если подключен:
		Serial.println("Connected to server");

		// сделать запрос HTTP:
		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 (WiFi) шилд:
	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) { // если дверь открыта...
		Serial.println("door is opened");
		sendNotification();
		delay(100);
	} else if(previous_status == 1 && current_status == 0) { // если дверь закрыта...
		Serial.println("door is closed");
	}

	previous_status = current_status;
}



© digitrode.ru


Теги: Arduino, IFTTT




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
  • Sergey

  • 5 июня 2019 10:41
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
А можно все тоже самое только на ESP 8266