By | December 6, 2018
Hello sahabat Anak Kendali


pada kesempatan kali ini, saya akan menuliskan artikel tentang ESP8266, Cara Membuat Project Remot IR dengan NodeMCU

jadi tutorial ini saya buat berdasarkan project untuk membuat remot AC LG, dimana remotnya di ganti dengan Server komputer, artinya AC LG ini akan di kendalikan melalui Internet, namun kita tidak akan merubah mikrokontroller di dalam AC nya, karena hal itu akan menyebabkan garansi AC hilang, jadi solusinya adalah dengan membuat Remot AC tersebut, yang bisa di kendalikan dengan Internet.

keyword :

Tutorial IR Remot ESP8266
Tutorial Remot IR NodeMCU
Cara Mengakses IR Remot NodeMCU
Membuat REMOT IR NodeMCU
ESP8266 IR Remot

adapun untuk Tutorial kali ini, saya akan menjelaskan bagaimana cara mengetahui data yang di kirimkan dari remot AC yang sebenarnya sehingga data tersebut bisa kita ambil untuk mengganti romot AC yang Asli.

baiklah bahan yang diperlukan untuk project ini adalah

Receiver Infrared
– Transmitter Infrared
– Remot TV / AC/ Heater
NodeMCU / Wemos
– Resistor 150 Ohm

untuk infrared Receiver bisa menggunakan Modul yang sudah jadi, yang bisa kamu beli di toko online maupun toko fisik. sedengkan IR LED atau transmitternya beli yang harganya murah saja,, bentuknya hampir sama dengan LED biasa.

Download terlebih dahulu librarynya DOWNLOAD LIBRARY

buka example dari library tersebut untuk IR Receiver, sehingga kita bisa mendapatkan data dari remot aslinya.

#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
// an IR detector/demodulator is connected to GPIO pin 2
uint16_t RECV_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
  Serial.begin(115200);
  irrecv.enableIRIn();  // Start the receiver
}
void dump(decode_results *results) {
  // Dumps out the decode_results structure.
  // Call this after IRrecv::decode()
  uint16_t count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.print(“Unknown encoding: “);
  } else if (results->decode_type == NEC) {
    Serial.print(“Decoded NEC: “);
  } else if (results->decode_type == SONY) {
    Serial.print(“Decoded SONY: “);
  } else if (results->decode_type == RC5) {
    Serial.print(“Decoded RC5: “);
  } else if (results->decode_type == RC5X) {
    Serial.print(“Decoded RC5X: “);
  } else if (results->decode_type == RC6) {
    Serial.print(“Decoded RC6: “);
  } else if (results->decode_type == RCMM) {
    Serial.print(“Decoded RCMM: “);
  } else if (results->decode_type == PANASONIC) {
    Serial.print(“Decoded PANASONIC – Address: “);
    Serial.print(results->address, HEX);
    Serial.print(” Value: “);
  } else if (results->decode_type == LG) {
    Serial.print(“Decoded LG: “);
  } else if (results->decode_type == JVC) {
    Serial.print(“Decoded JVC: “);
  } else if (results->decode_type == AIWA_RC_T501) {
    Serial.print(“Decoded AIWA RC T501: “);
  } else if (results->decode_type == WHYNTER) {
    Serial.print(“Decoded Whynter: “);
  } else if (results->decode_type == NIKAI) {
    Serial.print(“Decoded Nikai: “);
  }
  serialPrintUint64(results->value, 16);
  Serial.print(” (“);
  Serial.print(results->bits, DEC);
  Serial.println(” bits)”);
  Serial.print(“Raw (“);
  Serial.print(count, DEC);
  Serial.print(“): {“);
  for (uint16_t i = 1; i < count; i++) {
    if (i % 100 == 0)
      yield();  // Preemptive yield every 100th entry to feed the WDT.
    if (i & 1) {
      Serial.print(results->rawbuf[i] * kRawTick, DEC);
    } else {
      Serial.print(“, “);
      Serial.print((uint32_t) results->rawbuf[i] * kRawTick, DEC);
    }
  }
  Serial.println(“};”);
}
void loop() {
  if (irrecv.decode(&results)) {
    dump(&results);
    Serial.println(“DEPRECATED: Please use IRrecvDumpV2.ino instead!”);
    irrecv.resume();  // Receive the next value
  }
}

setelah di upload programnya, cobalah arahkan remot TV / AC anda ke IR Receiver ESP8266, dan amati data berupa bilangan Hexadesimal dan juga bit nya.

berikut adalah hasil dari pembacaan remot AC/Heater LG

// pendingin
#define coolon 0x8800156, 28
#define cooloff 0x88C0051, 28
#define cool16 0x880815E, 28
#define cool17 0x880825F, 28
#define cool18 0x8808350, 28
#define cool19 0x8808451, 28
#define cool20 0x8808552, 28
#define cool21 0x8808653, 28
#define cool22 0x8808754, 28
#define cool23 0x8808855, 28
#define cool24 0x8808956, 28
#define cool25 0x8808A57, 28
#define cool26 0x8808B58, 28
#define cool27 0x8808C59, 28
#define cool28 0x8808D5A, 28
#define cool29 0x8808E5B, 28
#define cool30 0x8808F5C, 28
//pemanas
#define warmon 0x8802125, 28
#define warmoff 0x88C0051, 28
#define warm16 0x880A12D, 28
#define warm17 0x880A22E, 28
#define warm18 0x880A32F, 28
#define warm19 0x880A420, 28
#define warm20 0x880A521, 28
#define warm21 0x880A622, 28
#define warm22 0x880A723, 28
#define warm23 0x880A824, 28
#define warm24 0x880A925, 28
#define warm25 0x880AA26, 28
#define warm26 0x880AB27, 28
#define warm27 0x880AC28, 28
#define warm28 0x880AD29, 28
#define warm29 0x880AF2A, 28
#define warm30 0x880AF2B, 28

setelah mendapatkan data yang di inginkan kita bisa membuat Remot Tiruan dengan ESP8266 dan IR LED / IR transmitternya, sehingga nanti bisa di kembangkan untuk di kontrol melalui Internet

untuk gambar rangkaian IR LED atau IR Transmitter, seperti berikut

ESP8266, Cara Membuat Project Remot IR dengan NodeMCU

berikut adalah contoh memberikan Perintah berdasarkan data di atas menggunakan Serial Monitor Arduino

#include <IRremoteESP8266.h>
#include <IRsend.h>
#include “define.h”
const uint16_t kIrLed = 4;  // ESP8266 GPIO pin to use. Recommended: 4 (D2).
IRsend irsend(kIrLed);  // Set the GPIO to be used to sending the message.
void setup() {
  irsend.begin();
  Serial.begin(9600);//, SERIAL_8N1, SERIAL_TX_ONLY
}
int c;
void loop() {
if (Serial.available()){
   c = Serial.parseInt();
   switch (c){
    case 16:
    irsend.sendLG(cool16);
    break;
    case 17:
    irsend.sendLG(cool17);
    break;
    case 18:
    irsend.sendLG(cool18);
    break;
    case 19:
    irsend.sendLG(cool19);
    break;
    case 20:
    irsend.sendLG(cool20);
    break;
    case 21:
    irsend.sendLG(cool21);
    break;
    case 22:
    irsend.sendLG(cool22);
    break;
    case 23:
    irsend.sendLG(cool23);
    break;
    case 24:
    irsend.sendLG(cool24);
    break;
    case 25:
    irsend.sendLG(cool25);
    break;
    case 26:
    irsend.sendLG(cool26);
    break;
    case 27:
    irsend.sendLG(cool27);
    break;
    case 28:
    irsend.sendLG(cool28);
    break;
    case 29:
    irsend.sendLG(cool29);
    break;
    case 30:
    irsend.sendLG(cool30);
    break;
    case 1:
    irsend.sendLG(coolon);
    break;
    case 0:
    irsend.sendLG(cooloff);
    break;
   }
   Serial.print(“Suhu = “);
   Serial.println(c);
}
}

mungkin cukup sekian apa yang bisa saya bagikan kali ini, semoga bermanfaat, jika ada yang ingin ditanyakan silahkan berkomentar atau berdiskusi di Whatsapp dengan cara klik tombol WA yang ada di bawah pojok layar

(Visited 71 times, 1 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *