NodeMCU ESP8266

NodeMCU ESP8266 Google Home Entegrasyonu

Iot denince geliştirilebilir olması, fiyatının erişilebilir olması ve birçok proje geliştirilebilmesiyle akla ilk önce NodeMCU Esp8266 geliyor. Ürünün dahili wifi modülü ve açık kaynak kodlu yapısı ile birçok maker bu ürünü tercih etmektedir. Bu yazımda, google home uygulamasına en basit ve stabil yöntem ile NodeMCU nun nasıl ekleneceğini gösteriyorum.

Örnek olması açısından, kendi evimde kullandığım basit bir çiçek sulama projesi olan, röle tetikleme mantığında, on – off switch gibi çalışan sistemi baz alıcam.

NodeMCU ile google home ve buna bağlı olarak google asistana bağlantı kurmamızı sağlayan, https://sinric.pro sitesine normal bir şekilde üye olup, login oluyoruz.

Login olduktan sonra https://portal.sinric.pro/device/new url ini açıp;

1 – Device Information tabında;

  • Device Name : Google home ve sinric uygulamasında gözükecek ürün adı,
  • Description : Ürün hakkında kısa açıklama,
  • Device Type : Bu alanda kullandığınız ürün tipine ya da projenize uygun ürün tipini seçiyorsunuz, basit açma – kapama işlemleri için switch seçebilirsiniz,
  • App Key : Değiştirmiyoruz default olarak kalacak,
  • Room : Living Room olarak kalabilir, isterseniz https://portal.sinric.pro/room/list urlinden yeni oda tanımlaması yapabilirsiniz,
  • Next e tıklıyoruz.

2 – Notifications tabında;

  • Sadece alerts kısmını aktif edip next e tıklıyoruz.

3 – Timers tabında;

  • Ben butona bastığımda 6 saniye açık kalmasını istediğim için, When On – Turn kısmını 6 yaptım. Sizde projenize göre ayarlayabilirsiniz.

4 – Other tabında;

  • Bu kısımda amazon alexa app gibi enerji tüketimini hesaplayan uygulamalar için, ürünün enerji tüketimi verilerini girebilirsiniz. Ben bu alana birşey girmedim. Save diyoruz.

Tüm bu işlemleri yaptıktan sonra, aşağıdaki gibi cihaz keylerimize ait bir çıktı ekranı gelecektir. Bu ekrandaki bilgileri not edebilirsiniz.

NodeMCU ESP8266 ürünümüzü, usb ile bağlayıp bilgisayarımızdan, arduino ide programı açıyoruz. İnternette ve youtube da birçok kaynakta esp8266 ya nasıl kod atılacağı anlatıldığından sadece önemli noktaları yazacağım. 🙂

  • Ardunio ide programında, araçlar → kütüphanaleri yönet kısmını açarak arama alanına, SinricPro yazarak aratıp, en üstte çıkan eklentiyi kuruyoruz.
  • Aşağıdaki bulunan kod örneğini arduino programına yapıştırıp, sinricpro dan aldığımız ve kendi wifi bilgilerimiz olan alanları dolduruyoruz. Unutulmaması gereken en önemli değerden biri de, esp8266 ürünümüzde hangi pini kullandıysak, onu doğru olarak girmeliyiz.
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include "SinricPro.h"
#include "SinricProSwitch.h"

#define WIFI_SSID "YOUR-WIFI-SSID" 
#define WIFI_PASS "YOUR-WIFI-PASS"
#define APP_KEY "YOUR-APP-KEY" // Should look like "de0bxxxx-1x3x-4x3x-ax2x-5dabxxxxxxxx"
#define APP_SECRET "YOUR-APP-SECRET" // Should look like "5f36xxxx-x3x7-4x3x-xexe-e86724a9xxxx-4c4axxxx-3x3x-x5xe-x9x3-333d65xxxxxx"
#define SWITCH_ID "YOUR-DEVICE-ID" // Should look like "5dc1564130xxxxxxxxxxxxxx"
#define BAUD_RATE 9600 // Change baudrate to your need

#ifdef ESP8266
#define RELAY_PIN D5 // Pin where the relay is connected (D5 = GPIO 14 on ESP8266)
#endif

bool onPowerState(const String &deviceId, bool &state) {
digitalWrite(RELAY_PIN, state); // set pin state
return true; // request handled properly
}

void setup() {
pinMode(RELAY_PIN, OUTPUT); // set relay-pin to output mode
WiFi.begin(WIFI_SSID, WIFI_PASS); // start wifi

SinricProSwitch& mySwitch = SinricPro[SWITCH_ID]; // create new switch device
mySwitch.onPowerState(onPowerState); // apply onPowerState callback
SinricPro.begin(APP_KEY, APP_SECRET); // start SinricPro
}

void loop() {
SinricPro.handle(); // handle SinricPro commands
}
  • Tüm bilgileri eksiksiz girerek, ardunio programı ile kodları esp8266 ürünümüze yüklüyoruz.
  • NodeMCU ESP8266 ürünümüze güç vererek tekrar başlatıyoruz. Son durumda https://portal.sinric.pro/dashboard urli giriyoruz, herşey yolunda ise, aşağıdaki gibi esp8266 wifi ye bağlanıp, online duruma gelecektir.

Turn On – Turn Off butonlarından sistemin çalışıp çalışmadığını kolayca test edebilirsiniz.

  • Google home uygulamamızı açıyoruz, sol üst kısımda bulunan + butonuna tıklayıp, açılan menüden Cihaz Kur butonuna tıklıyoruz.
  • Google ile çalışır butonuna tıklayıp, açılan menüde sağ üstte bulunan arama imlecine tıklayıp, arama kısmına Sinric Pro yazıp, çıkan uygulamaya tıklıyoruz.
  • Açılan ekrandan Devam Et butonuna tıklayıp Sinric Pro login bilgilerimiz ile giriş yapıyoruz.

Artık google home uygulamamızın anasayfasına dönüp, sayfayı kaydırıp yenile işlemi yaptığımızda, Sinric Pro da eklediğimiz ürünleri görebiliriz. Ben bu proje de, Flower adında bir NodeMCU ESP8266 ürünü eklemiştim. Artık, Hey google, turn on flower diyerek çiçeğimi istediğim zaman sesli ya da butonu tıklayarak sulayabiliyorum. 🙂

Olayı biraz daha geliştirip, google home uygulamasının kalbi olan rutinleri devreye sokarak, çiçeğimizi otomatik olarak zamanlı sulama yapalım.

  • Google home uygulamasında rutinler ekranını açalım, sağ alttan new butonuna tıklayarak, en üstte yer alan New Routine alanına kendim yeni bir isimlendirme yaptım. Add starter kısmından bir başlatıcı seçelim. Ben At a specific time alanından, saat 12:30 olarak değiştirip, notified kısmınıda aktif edip, Add starter butonuna bastım.
  • Actions kısmından, Add action diyerek Adjust Home devices altından, Adjust light plugs alanına Edit action kısmını tıklayarak, flower adlı ürünümü bulup, Turn on haline getirip, sağ üstteki onay butonuna bastım. Çıkan ekrandan Done butonuna, son olarakta Save butonuna tıkladım.

Durum biraz karışık olsa da, pratik yaparak çok kolay bir işlem olduğunu zamanla göreceksiniz.

Editor avatarı

Posted by