การสั่งให้ Google Nest mini ให้ทำได้มากกว่า การเปิดหรือปิดอุปกรณ์

สวัสดีครับ สำหรับโพสต์นี้เป็นแนวคิดโดยส่วนตัวแบบสนุกๆ ของผมนะครับว่า ถ้าผมใช้ Google Nest mini ในการสั่งให้เปิดหรือปิดอุปกรณ์ ได้ เช่น

  1. สั่งให้ Google Nest mini ปิดหรือเปิดพัดลมได้ ผมก็ควรที่จะสั่งให้ Google Nest mini ปรับความเร็วของพัดลมหรือให้พัดลมส่ายหรือไม่ส่ายก็ได้
  2. ถ้าเราสามารถทำตามข้อที่ 1 ได้แสดงว่าเราสามารถที่จะสั่งให้ Google Nest Mini เปิดระบบคอมพิวเตอร์ได้คือ
  • เปิดไฟจ่ายเข้าเครื่องคอมพิวเตอร์ก่อน

  • เปิดเครื่องคอมพิวเตอร์ โดยใช้อุปกรณ์เปิดเครื่องคอมพิวเตอร์ในลักษณะ แทนการกดปุ่ม Push button ที่ตัวเครื่องคอมพิวเตอร์เอง

  • และเมื่อต้องการที่จะ Shutdown คอมพิวเตอร์ก็สามารถสั่งให้ปิดเครื่องคอมพิวเตอร์โดยใช้อุปกรณ์เปิดเครื่องคอมพิวเตอร์ตัวเดียวกันใช้เป็นการแทนการกดปุ่ม Push button ที่ตัวเครื่องคอมพิวเตอร์เองได้

  • ปิดไฟจ่ายเข้าเครื่องคอมพิวเตอร์ ชุดนี้ก็น่าจะเป็นคำสั่งที่สมบูรณ์แล้ว สำหรับชุดคำสั่งต่างๆเกี่ยวกับเรื่องคอมพิวเตอร์หลายๆท่านอาจจะคิดว่ามันไม่จำเป็นก็ได้ก็แล้วแต่ลักษณะงานที่เราจะใช้นะครับอย่างเช่นว่าถ้าเราต้องการที่จะสั่งให้คอมพิวเตอร์เปิดโดยการใช้ Google Assistant ที่สมาร์ทโฟนของเราจากระยะไกล มาเปิดเครื่องคอมพิวเตอร์ที่บ้านของเรา เราก็สามารถทำได้ หรือเปิดเครื่องคอมพิวเตอร์เอาไว้แล้วเรานอนดู คลิปใน YouTube เราก็สามารถสั่งให้มันปิดได้หรือ Shutdown ได้นั่นเอง โดยที่เราไม่ต้องลุกขึ้นไป Shutdown คอมพิวเตอร์หรือใช้เมาส์ แบบ wireless ซึ่งต้องอยู่ติดตัวกับตัวเราเสมอ

    เอาละครับในส่วนนี้ผมจะมานำเสนอเฉพาะ บางส่วนนะครับ นั่นก็คือการสั่งให้ Google Nest Mini Start คอมพิวเตอร์และ Shutdown คอมพิวเตอร์

อธิบายจากภาพนะครับ มี Google Nest Mini 1 ตัวนะครับ แล้วก็จะมี board Link rm4 โปร 2020 ซึ่งตัวนี้มีคุณสมบัติเกี่ยวกับเรื่องของ การส่งสัญญาณอินฟราเรดก็คือ ir และการส่งสัญญาณ RF ก็คือ Radio frequency ผมจะใช้เฉพาะส่วนของ ir เพื่อที่จะส่งสัญญาณมาให้ชุด arduino Nano ทำงานได้ โดยใช้ ir ตัวรับ รับสัญญาณเข้ามาแล้วให้รีเลย์ทำงาน ด้วยการตั้งเวลาเอาไว้ให้เหมือนกับลักษณะของการกดปุ่ม Push button ของเครื่องคอมพิวเตอร์นั่นก็คือถ้าได้รับสัญญาณ ir มาแล้วรีเลย์จะทำงานแล้วก็หน่วงเวลาเอาไว้ประมาณ 800 ms จากนั้นก็ตัดการทำงานออก

จะเห็นว่าจากไดอะแกรมการต่อสายผมไม่ได้ใช้ arduino Nano นะครับพอดีว่า esp8266 ผมเหลืออยู่แล้วก็ต่อวงจรเอาไว้แล้วก็เลยหยิบมาใช้เลยซึ่ง Code ก็เหมือนกันครับไม่มีอะไรที่แตกต่าง ส่วนตัวกล่องก็เอากล่องรับสัญญาณจานดาวเทียมของยี่ห้อ 1 เอามาใช้งานก็เห็นว่ามันเหมาะสมดี และสังเกตว่ามีปุ่ม Push button 1 ตัวตัวนี้จะใช้ สำหรับกดปุ่ม start คอมพิวเตอร์ด้วยมือโดยที่ไม่ต้องเอื้อมมือลงไปกดปุ่ม Push button ที่เคสของคอมพิวเตอร์ ซึ่งเผื่อไว้กรณีมีปัญหาในเรื่องของระบบการทำงาน arduino Nano ที่ไม่สามารถใช้งานได้ก็สามารถกดปุ่มนี้ได้หรือจะไปกดปุ่มที่เคสคอมพิวเตอร์ก็ได้หรือจะใช้รีโมทคอนโทรลกดปุ่มให้มันทำงานก็ยังได้

หลักการทำงาน
App ของบอร์ด Link ในสมาร์ทโฟนเราก็ ADD อุปกรณ์ของเครื่องใช้ไฟฟ้ามา 1 ตัวแล้วก็เลือกยี่ห้อของอุปกรณ์เครื่องใช้ไฟฟ้าตัวนั้นมา 1 ยี่ห้อ (อะไรก็ได้) ก็จะสังเกตว่ามีปุ่ม power On Off หรือสั่งให้ทำอะไรต่างๆเราจะเอาเฉพาะปุ่ม power อย่างเดียวแล้วเราก็เอารีโมทที่ไม่ได้ใช้งานเลือกมาสัก 1 ปุ่มแล้วก็กดสอนให้มันจำค่าว่า ถ้าเราสั่ง Google Nest เข้ามาอุปกรณ์ตัวนี้จะทำการส่งคลื่นรีโมทตัวที่เราสอนให้มันจำเอาไว้ยิงเข้ามาที่อุปกรณ์ arduino Nano ของเราครับ

code พื้นฐานเลยครับ

#ifndef UNIT_TEST
#include <Arduino.h>
#endif

#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>

int RECV_PIN = D6;// infrared pin

IRrecv irrecv(RECV_PIN);
decode_results results;

unsigned long last = millis();


#define D5 14
#define D2 4



//------------------------------------------------------------------------------------------------------------------------//
//*********************************************       void setup        **************************************************//
//------------------------------------------------------------------------------------------------------------------------//

void setup() {

  //-------IO NODE MCU Esp8266-------//
  pinMode(D2, OUTPUT);     
  pinMode(D5, INPUT_PULLUP);
  digitalWrite(D2, HIGH);
  Serial.begin(115200);

  irrecv.enableIRIn();

  //delay(5000);

}

//------------------------------------------------------------------------------------------------------------------------//
//*********************************************   จบ  void setup        **************************************************//
//------------------------------------------------------------------------------------------------------------------------//









//------------------------------------------------------------------------------------------------------------------------//
//*********************************************       void Loop        ***************************************************//
//------------------------------------------------------------------------------------------------------------------------//


void loop() {


//--ชุด ปุ่มกด
  int Start_com = digitalRead(D5);

  if (Start_com == 0) {
    digitalWrite(D2, LOW);//on
    delay(600);
    digitalWrite(D2, HIGH);//off

  }

  //--ชุดรับสัญญาณ รีโมท

  unsigned long currentMillis = millis();
  if (irrecv.decode(&results)) {
    if (currentMillis - last > 50) {


      //----------------------------------------------------
      if ( results.value == 0x20DFD52A) {//remote จีน ใช้ปุ่ม GUIDE
        digitalWrite(D2, LOW);//on
        delay(600);
        digitalWrite(D2, HIGH);//off
      }

      //----------------------------------------------------



      last = currentMillis;
      irrecv.resume(); // Receive the next value


    }
  }
  //Serial.println(Start_com);
  delay(50);

}//Loop
1 Like