Nyalakan lampu dengan Nodemcu google asistant
Arduino Robotik

Cara Nyalakan Lampu Perintah Suara Google Asistant

Taukah kalian lampu rumah kalian bahkan elektronik pada rumah kalian dapat di nyalakan dengan Google Asistant? Dengan begitu kalian akan mudah dalam menyalakan elektronik kalian tanpa menekan saklar. Dan bisa juga sebagai variasi rumah dan tentu saja unik. Baca artikel ini tentang Cara Nyalakan Lampu Perintah Suara Google Asistant…

Komponen & Alat

Sebelum lanjut ke pembahasan komponen, perlu kalian tau perlu menghubungkan antara Esp8266 Nodemcu ke Google Asistant agar alat ini dapat berfungsi.

Baca Juga : Perbedaan Arduino Uno dan Nodemcu 8266

1. Komponen :

  • Esp8266 Nodemcu (Amica)
  • Relay 4 Channel (sesuaikan keinginan)
  • Kabel Jumper
  • Kabel & Steker
  • Lampu

2. Alat :

  • Obeng full set
  • Kabel USB

3. Google Asistant

Alat ini untuk nyalakan lampu perintah suara & akan berfungsi jika kita memberi perintah ke Google Asistant nantinya. Contoh “Turn on the light” atau “Turn off the light”.

4. Demo Program/Sketch Program

#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

#define Relay1            D1
#define Relay2            D2
#define Relay3            D3
#define Relay4            D4

#define WLAN_SSID       "Miskin"             // Your SSID
#define WLAN_PASS       "Irsyad123"        // Your password

/************************* Adafruit.io Setup *********************************/

#define AIO_SERVER      "io.adafruit.com" //Adafruit Server
#define AIO_SERVERPORT  1883
#define AIO_USERNAME    "irsyadshina"            // Username
#define AIO_KEY         "aio_yiKb29ACLpYl3ho9oEqKEX8adboG"   // Auth Key

//WIFI CLIENT
WiFiClient client;

Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

Adafruit_MQTT_Subscribe Light1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/relay1"); // Feeds name should be same everywhere
Adafruit_MQTT_Subscribe Light2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/relay2");
Adafruit_MQTT_Subscribe Light3 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/relay3");
Adafruit_MQTT_Subscribe Light4 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/relay4");

void MQTT_connect();

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

  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);

  // Connect to WiFi access point.
  Serial.println(); Serial.println();
  Serial.print("Connecting to ");
  Serial.println(WLAN_SSID);

  WiFi.begin(WLAN_SSID, WLAN_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();

  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  mqtt.subscribe(&Light1);
  mqtt.subscribe(&Light3);
  mqtt.subscribe(&Light2);
  mqtt.subscribe(&Light4);
}

void loop() {

  MQTT_connect();


  Adafruit_MQTT_Subscribe *subscription;
  while ((subscription = mqtt.readSubscription(20000))) {
    if (subscription == &Light1) {
      Serial.print(F("Got: "));
      Serial.println((char *)Light1.lastread);
      int Light1_State = atoi((char *)Light1.lastread);
      digitalWrite(Relay1, Light1_State);

    }
    if (subscription == &Light2) {
      Serial.print(F("Got: "));
      Serial.println((char *)Light2.lastread);
      int Light2_State = atoi((char *)Light2.lastread);
      digitalWrite(Relay2, Light2_State);
    }
    if (subscription == &Light3) {
      Serial.print(F("Got: "));
      Serial.println((char *)Light3.lastread);
      int Light3_State = atoi((char *)Light3.lastread);
      digitalWrite(Relay3, Light3_State);
    }
    if (subscription == &Light4) {
      Serial.print(F("Got: "));
      Serial.println((char *)Light4.lastread);
      int Light4_State = atoi((char *)Light4.lastread);
      digitalWrite(Relay4, Light4_State);

    }
  }


}

void MQTT_connect() {
  int8_t ret;

  if (mqtt.connected()) {
    return;
  }

  Serial.print("Connecting to MQTT... ");

  uint8_t retries = 3;

  while ((ret = mqtt.connect()) != 0) {
    Serial.println(mqtt.connectErrorString(ret));
    Serial.println("Retrying MQTT connection in 5 seconds...");
    mqtt.disconnect();
    delay(5000);
    retries--;
    if (retries == 0) {
      while (1);
    }
  }
  Serial.println("MQTT Connected!");

}

Rangkaian Alat

Untuk rangkaian alatnya sebagai berikut :

Langkah Buat Alat

Setelah alat kalian rangkai selanjutnya kalian buka laptop dan ikuti langkah di bawah ini :

1. Buka Adafruit pada Web Browser

Klik di sini untuk ke Web Adafruit. Seperti ini halaman awal pada Adafruit

Adafruit.com
Adafruit.com

Kalian perlu membuat akun terlebih dahulu bisa juga login memakai akun google. Setelah login klik pada menu IO kemudian klik New Dashboard dan kasih nama sesuai keinginan

Dashboard
Dashboard

Setelah itu klik 2 kali pada projek yang telah di buat, kemudian Create New Block pilih Toggle dan kasih nama seperti contoh “Relay 1” check-list dan Next Step.

Create Toggle
Create Toggle

Langkah selanjutnya di bawah ini

2. Buka IFTTT pada Web Browser

Klik di sini untuk ke Web IFTTT. Halaman awal pada IFTTT seperti dibawah :

Halaman Awal IFTTT
Halaman Awal IFTTT

Kalian perlu daftar akun terlebih dahulu atau bisa memakai akun google kalian. Jika kalian berhasil membuat akan tampil seperti di bawah :

Profil akun
Profil akun

Langkah berikutnya kalian klik tombol Create pada menu atas dan kalian klik pada If This Then That

Create Applate
Create Applate

Kemudian klik pada If This search Google Asistant dan pilih Say a simple phrase

Create Trigger
Create Trigger

Ketikkan perintah sesuai yg kalian inginkan, contoh “Turn on the light” dan Create

Selanjutnya klik pada Then That dan search Adafruit dan tampil Send data to Adafruit IO kemudian kalian sesuaikan pada projek yang telah di buat pada IFTTT dan Create Action. Klik pada My Applets

My Applets

Setelah semua selesai coba jalankan perintah Google Asistant sesuai email yang terdaftar pada Adafruit & IFTTT.

Info saya : WhatsApp

Irsyad

Irsyad Muhamad mahasiswa aktif Universitas Stikubank Semarang

Anda mungkin juga suka...

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *