Eksperimen Dasar IoT: Mengontrol Relay Menggunakan Koneksi Wi-Fi (ESP-01)


IoT (Internet of Things) kini semakin semarak dengan keberadaan modul koneksi wifi yang programmable dengan harga yang sangat terjangkau. Adapun modul yang saya maksud adalah modul-modul berbasis ESP8266 seperti ESP-01, ESP-12, ESP-14, NodeMCU, dan Wemos. Sebagai informasi saja, modul ESP-01 saat ini dijual dengan kisaran harga 30 ribu saja. Dan board berbasis ESP8266 seperti NodeMCU dan Wemos dibandrol di kisaran harga 50 ribu. Sangat murah!

Wi-Fi Relay

Wi-Fi Relay adalah modul relay yang dapat dikendalikan secara wireless melalui jaringan Wi-Fi. Modul relay bisa diakses menggunakan koneksi socket TCP. Untuk mengontrol relay (on/off), client cukup mengirimkan command string yang dikenali oleh server modul Wi-Fi Relay ke alamat IP modul Wi-Fi Relay pada port yang telah ditentukan.

Pada eksperimen ini, saya menggunakan command string sebagai berikut:

  • RELAY1-ON : untuk mengaktifkan RELAY1
  • RELAY2-ON : untuk mengaktifkan RELAY2
  • RELAY3-ON : untuk mengaktifkan RELAY3
  • RELAY4-ON : untuk mengaktifkan RELAY4
  • RELAY1-OFF : untuk mematikan RELAY1
  • RELAY2-OFF : untuk mematikan RELAY2
  • RELAY3-OFF : untuk mematikan RELAY3
  • RELAY4-OFF : untuk mematikan RELAY4

Dan untuk mengakses board Wi-Fi Relay, pada pengujian nanti saya akan menggunakan program telnet, baik dari komputer (Linux dan Windows) maupun Android, dan interpreter Python. Untuk Windows, pengujian (mengakses Wi-Fi Relay) dilakukan menggunakan Hyperterminal dan Putty.

Bahan Eksperimen (Hardware)

Pada eksperimen ini saya menggunakan board KISFORTHUNER (berbasis ATmega328P) dan modul wifi ESP-01. Selain itu, saya menggunakan modul konverter USB-to-TTL untuk keperluan pemrograman ESP-01 dan debugging. Dan tentunya modul USBASP untuk memrogram ATmega328P pada board KISFORTHUNER.

kisesp01

Eksperimen KISFORTHUNER – ESP-01

Secara gampang-gampangan, modul ESP-01 saya rangkai pada protoboard yang tersedia pada board KISFORTHUNER seperti yang terlihat pada gambar di atas. Rangkaian gampang-gampangan ini membutuhkan beberapa komponen, yakni antara lain:

  • kapasitor keramik 100nF
  • kapasitor elektrolit 100uF (saya solder di bawah board KISFORTHUNER)
  • 2 x diode 1N4148
  • 2 x diode zener 3V3 / 3V6
  • resistor 2K2 untuk mengunci pin RST dan CH_PD pada posisi logika HIGH

Berikut ini adalah gambar skematik hubungan modul ESP-01 dengan board KISFORTHUNER.

kisforthuner_esp01

Skematik KISFORTHUNER – ESP-01

Modul ESP-01 membutuhkan tegangan 3,3V. Untuk menyiasatinya, saya menggunakan 2 buah diode 1N4148 yang dirangkai secara seri untuk menurunkan tegangan 5V menjadi kisaran 3,3V. Dari hasil pengukuran, tegangannya lumayan bagus. Dan dengan kemampuan diode 1N4148 menghantarkan arus kisaran 200mA, maka cukuplah untuk mengoperasikan ESP-01. Jika ingin lebih mantap, diode 1N4148 bisa diganti dengan diode silikon seperti 1N4007 yang mampu menghantarkan arus 1A.

3v3diode

Hasil pengukuran tegangan 5V setelah dikurangi 2 x 1N4148

Pemrograman (Software)

Pada eksperimen ini, saya menggunakan bahasa pemrograman FORTH untuk membuat aplikasi Wi-Fi Relay menggunakan ESP8266 (ESP-01). Saya menggunakan punyforth, yakni implementasi FORTH untuk ESP8266. punyforth juga memiliki versi untuk x86 (linux) dan ARM (Raspberry Pi). punyforth aktif dikembangkan dan tersedia di https://github.com/zeroflag/punyforth.

Untuk memrogram board KISFORTHUNER, saya menggunakan IDE Arduino. Karena board KISFORTHUNER menggunakan ATmega328P dengan kristal 16MHz, maka kita dapat memilih board Arduino UNO atau Duemilanove pada IDE Arduino untuk memrogram KISFHORTUNER.

Nah, berikut adalah listing program untuk modul ESP-01 dan board KISFORTHUNER.

Program Untuk Modul ESP-01 (Forth)

\ KISFORTHUNER + ESP-01
\ KONTROL 4-RELAY VIA WIFI
\ PUNYFORTH FOR ESP8266

: RELAY1-ON 82 _emit 49 _emit ;
: RELAY1-OFF 114 _emit 49 _emit ;
: RELAY2-ON 82 _emit 50 _emit ;
: RELAY2-OFF 114 _emit 50 _emit ;
: RELAY3-ON 82 _emit 51 _emit ;
: RELAY3-OFF 114 _emit 51 _emit ;
: RELAY4-ON 82 _emit 52 _emit ;
: RELAY4-OFF 114 _emit 52 _emit ;

str: "password" str: "linksys" wifi-connect
repl-start

Program ini berisi implementasi words:

  • RELAY1-ON, berfungsi mengirim karakter ‘R’ dan ‘1’ ke port serial
  • RELAY1-OFF, berfungsi mengirim karakter ‘r’ dan ‘1’ ke port serial
  • RELAY2-ON, berfungsi mengirim karakter ‘R’ dan ‘2’ ke port serial
  • RELAY2-OFF, berfungsi mengirim karakter ‘r’ dan ‘2’ ke port serial
  • RELAY3-ON, berfungsi mengirim karakter ‘R’ dan ‘3’ ke port serial
  • RELAY3-OFF, berfungsi mengirim karakter ‘r’ dan ‘3’ ke port serial
  • RELAY4-ON, berfungsi mengirim karakter ‘R’ dan ‘4’ ke port serial
  • RELAY4-OFF,berfungsi mengirim karakter ‘r’ dan ‘4’ ke port serial

Perintah str: “password” str: “linksys” wifi-connect berfungsi untuk menghubungkan modul ESP-01 ke wifi router linksys yang saya gunakan di rumah. Dan perintah repl-start akan mengaktifkan server yang dalam hal ini akan aktif pada port 1983. Jadi jika modul ESP-01 mendapatkan alamat IP 192.168.1.105 dari wifi router, maka kita bisa mengakses Wi-Fi Relay pada alamat IP 192.168.105, port 1983.

Program Untuk KISFORTHUNER (Arduino)

Seperti yang sudah saya sampaikan sebelumnya, program ini saya buat menggunakan IDE Arduino.

const int RELAY[4] = { 8, 7, 6, 5 };

void relayControl(int n, int c)
{
   digitalWrite(RELAY[n], c);
   digitalWrite(RELAY[n], c);
   digitalWrite(RELAY[n], c);
   digitalWrite(RELAY[n], c);
   digitalWrite(RELAY[n], c);
}

void setup()
{
   for (int i=0; i<4; i++)
      pinMode(RELAY[i], OUTPUT);
 
   Serial.begin(115200);
}

void loop()
{
   char ch;
 
   if (Serial.available())
   {
      ch = Serial.read();
      if (ch=='R')
      {
         while (!Serial.available());
         ch = Serial.read();
         if (ch>=49 && ch<=52)
            relayControl(ch-49, HIGH);
      }
      else if (ch=='r')
      {
         while (!Serial.available());
         ch = Serial.read();
         if (ch>=49 && ch<=52)
         relayControl(ch-49, LOW);
      }
   }
}

Board KISFORTHUNER (ATmega328P) akan menunggu apakah ada data yang dikirim melalui port serial. Jika ada, maka KISFORTHUNER akan menyeleksinya.

  • Jika data yang dikirim ‘R’ dan ‘1’, maka mikro akan mengaktifkan RELAY1
  • Jika data yang dikirim ‘R’ dan ‘2’, maka mikro akan mengaktifkan RELAY2
  • Jika data yang dikirim ‘R’ dan ‘3’, maka mikro akan mengaktifkan RELAY3
  • Jika data yang dikirim ‘R’ dan ‘4’, maka mikro akan mengaktifkan RELAY4
  • Jika data yang dikirim ‘r’ dan ‘1’, maka mikro akan mematikan RELAY1
  • Jika data yang dikirim ‘r’ dan ‘2’, maka mikro akan mematikan RELAY1
  • Jika data yang dikirim ‘r’ dan ‘3’, maka mikro akan mematikan RELAY1
  • Jika data yang dikirim ‘r’ dan ‘4’, maka mikro akan mematikan RELAY1

Pengujian Menggunakan telnet

Setelah modul ESP-01 dan board KISFORTHUNER diprogram, maka langkah selanjutnya adalah melakukan pengujian. Pengujian menggunakan program telnet pada komputer yang juga terhubung ke jaringan yang sama dengan ESP-01.

Setelah melakukan beberapa kali perintah ping, saya menemukan bahwa modul ESP-01 berada pada alamat 192.168.1.100.

Nah, perhatikan screenshot berikut ini.

telnet

Mengakses Wi-Fi Relay (ESP-01) Menggunakan Telnet

Setelah terjalin komunikasi antara telnet dengan ESP-01, maka kita bisa mengirim perintah-perintah (command string) yang dikenali oleh ESP-01, antara lain: RELAY1-ON, RELAY2-ON, dst.

Ketika modul ESP-01 menerima perintah RELAY1-ON, maka fungsi (word) RELAY1-ON akan mengirim karakter ‘R’ dan ‘1’ ke mikrokontroler. Mikrokontroler (KISFORTHUNER) menerima karakter ‘R’ dan ‘1’ dan mengaktifkan RELAY1.

Hasil pengujian menggunakan program telnet ini sangat memuaskan. Relay-relay pada board KISFORTHUNER berhasil dikontrol dari komputer dengan menggunakan program komunikasi telnet. Yang artinya, kita pasti bisa mengontrol relay menggunakan program apapun dengan menggunakan pemrograman socket.

Saya juga mencoba mengakses dari komputer Windows menggunakan program Hyperterminal. Berikut adalah screenshot-nya.

wifirelay01

Pengujian Menggunakan Python

Python merupakan interpreter yang memiliki library (module) yang sangat lengkap, termasuk didalamnya adalah module socket. Berikut adalah screenshot pemrograman socket menggunakan Python untuk mengontrol Wi-Fi Relay pada eksperimen ini.

python

Dengan program yang singkat, relay-relay pada board KISFORTHUNER pun dapat kita kontrol dengan sangat mudah. Menarik, bukan?

Hasil pengujian dengan Python ini membuktikan bahwa Wi-Fi Relay dapat diakses dengan mudah. Kita bisa menggunakan Python, REBOL, PHP, Javascript, BASIC, C, Pascal dan lain sebagainya.

Pengujian Menggunakan Telnet Android

Selanjutnya, saya mencoba melakukan koneksi ke ESP-01 melalui tablet Android menggunakan aplikasi bernama Telnet. Berikut adalah screenshot-nya.

telnetdroid

Mengakses Wi-Fi Relay (ESP-01) Menggunakan Android

Video Demo

Sebagai pengujian terakhir, saya menggunakan program Putty pada Windows untuk berinteraksi dengan Wi-Fi Relay (ESP-01). Silakan simak video berikut ini.

Kesimpulan

Dari hasil pengujian yang telah dilakukan, dapat disimpulkan bahwa:

  • tegangan 3,3V dapat diperoleh dengan menurunkan tegangan 5V menggunakan rangkaian diode seri 1N4148 seri
  • ESP-01 berkomunikasi dengan baik dengan ATmega328P menggunakan rangkaian di atas (Skematik KISFORTHUNER – ESP-01)
  • program TCP Server dari punyforth bekerja dengan baik
  • Wi-Fi Relay dapat diakses menggunakan program telnet, baik menggunakan komputer maupun Android
  • pemrograman socket menggunakan Python sangatlah mudah

Nah, demikianlah laporan eksperimen yang dapat saya sampaikan. Semoga bermanfaat.

Selamat berkarya.

Iklan
Perihal

Cek situs kami di http://teknikelektrolinks.com. Blog Raspberry Pi: http://raspi.teknikelektrolinks.com

Tagged with: , , ,
Ditulis dalam Driver Relay, ESP-01, ESP8266, IoT (Internet of Things)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

Bergabunglah dengan 2.499 pengikut lainnya

Display Counter 3-Digit Dengan Koneksi Wi-Fi
Display Nomor Antrian WiFi Android
Mengontrol Relay Via USB/Serial dan Wi-Fi
Blog Linux dan Raspberry Pi


USB Relay USB-2REL
USB Relay USB-4REL
Water Level Control WLC-02
Serial Relay SER-4REL
NEO STARDUINO SMS ALARM

Alarm SMS Berbasis NEO STARDUINO

1 PC – 6 Unit USB-2REL

Testing 6 USB-2REL Pada 1 Komputer

Standard Pengujian USB-2REL

Pengujian USB-2REL Sebelum Dikirim

LPT-4REL on Knoppix 7.0.5

Testing LPT-4REL on Knoppix Linux

T101 Inkubator Telur

T101 Inkubator Penetas Telur

KONTROL PERALATAN LISTRIK VIA PORT LPT KOMPUTER

Demo Kontrol Kontaktor via Port LPT

STARDUINO meets ANDROID

Demo Kontrol Bluetooth Relay Android

STARDUINO SMS RELAY

Kontrol Relay Via SMS Dengan Starduino

STARDUINO WEB RELAY

Demo Kontrol Relay Via Web/Internet

JustBASIC USB-2REL Control

Demo Kontrol USB-2REL + JustBASIC

STARDUINO + GPS + LCD

Demo Starduino GPS Dengan LCD

USB-2REL EXTREME TEST

Demo Kontrol On/Off Lampu USB-2REL

THERMOSTAT T101 IN ACTION

Demo Thermostat T101 Pada SV=37.5°C

WATER LEVEL CONTROL WLC-02

Demo Kontrol Level Air Tandon WLC-02

HUMIDITY CONTROLLER H103

Demo Kontrol Kelembaban H103 (DHT11)

%d blogger menyukai ini: