Skip to main content

Mengontrol Lampu Melalui WiFi

Mengontrol Lampu Melalui WiFi

Sore ini saya akan sharing tentang Project sederhana yang akan saya buat adalah “Mengontrol Lampu Melalui WiFi“. Mungkin sudah banyak yang membuat project serupa baik menggunakan arduino ataupun mikrokontroler lainnya. Namun kali ini saya akan menggunakan Wemos ESP8266 sebagai bahan ujicoba. Pada project kali ini, lampu akan dikrontrol oleh komputer melalui jaringan WiFi. Lampu akan dihubungkan ke Wemos, sedangkan untuk komputer saya membuat program sederhana menggunakan C# untuk mengontrol lampunya.
Untuk koneksi lampu dengan Wemos dapat dilihat pada gambar berikut ini



Mengontrol Lampu Melalui WiFi

Teori Singkat

Pada project mengontrol lampu menggunakan wifi ini protokol komunikasi yang digunakan adalah TCP/IP. Dimana Wemos berfungsi menjadi TCP Server dan komputer sebagai pengontrol lampu berfungsi sebagai TCP Client. Koneksi TCP/IP menggunakan port 2000, dikarenakan port ini belum digunakan oleh aplikasi ataupun service lainnya. Kedua perangkat (Wemos dan Komputer) harus terkoneksi ke Access Point terlebih dahulu agar dapat berkomunikasi, mengingat jaringan yang digunakan adalah WLAN. Untuk project kali ini Access Point yang digunakan berupa hanphone android yang di tethering WiFi. Sebetulnya Anda bisa menjadikan Wemos sebagai Access Point sekaligus sebagai kontroler lampu. Namun untuk saat ini saya tidak menjelaskan hal tersebut.

Source Code Project

Untuk source code pada wemos dapat dilihat di bawah ini
  1. #include "ESP8266WiFi.h"
  2. #include "WiFiClient.h"
  3. #include "WiFiServer.h"
  4.  
  5. #define PORT 2000
  6.  
  7. WiFiClient client;
  8. WiFiServer server(PORT);
  9.  
  10. char c;
  11. String message;
  12.  
  13. const char *ssid = "WIFE";
  14. const char *password = "howrudi";
  15.  
  16. void setup()
  17. {
  18. pinMode(LED_BUILTIN, OUTPUT);
  19. digitalWrite(LED_BUILTIN, HIGH);
  20. Serial.begin(115200);
  21. Serial.println("Jetniaga.com");
  22. Serial.print("Listening Port : ");
  23. Serial.println(PORT);
  24. delay(100);
  25.  
  26. // Koneksi ke akses point howrudi.com
  27. WiFi.begin(ssid, password);
  28. Serial.println("Connecting to Access Point ...");
  29. // Tunggu sampai terkoneksi
  30. while(WiFi.status() != WL_CONNECTED) {
  31. delay(500);
  32. Serial.print(".");
  33. }
  34.  
  35. // Tampilkan IP Address Wemos
  36. Serial.println("");
  37. Serial.print("Connected to ");
  38. Serial.println(ssid);
  39. Serial.print("IP address: ");
  40. Serial.println(WiFi.localIP());
  41.  
  42. // Start TCP Server
  43. server.begin();
  44. }
  45.  
  46. void loop()
  47. {
  48. if (!client.connected()) {
  49. // Tunngu koneksi dari client
  50. client = server.available();
  51. }
  52. // Client terkoneksi
  53. while (client.connected()) {
  54. // Tampilkan data dari client ke serial port
  55. if (client.available()) {
  56. while (client.available() > 0) {
  57. c = (char)client.read();
  58. //Serial.print(c);
  59. message += c;
  60. if (message.equals("on")) {
  61. digitalWrite(LED_BUILTIN, LOW);
  62. //Serial.println("LED ON");
  63. }
  64. else if (message.equals("off")) {
  65. digitalWrite(LED_BUILTIN, HIGH);
  66. //Serial.println("LED OFF");
  67. }
  68. }
  69. }
  70. message = "";
  71. }
  72. }
Pada saat startup, Wemos akan melakukan koneksi ke Access Point yang telah ditentukan pada source code diatas. Anda dapat memantau proses ini dengan membuka Serial Monitor. Seteah terkoneksi pada serial monitor akan ditampilkan IP Address wemos. Catatlah IP Address ini, karena nantinya akan Anda gunakan untuk melakukan koneksi pada aplikasi di komputer.

Source Code Pada Aplikasi C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Net.Sockets;
  10. using System.Net;
  11. using System.IO;
  12.  
  13. namespace TCP_Client
  14. {
  15. public partial class Form1 : Form
  16. {
  17. TcpClient tcpclient;
  18. public Form1()
  19. {
  20. InitializeComponent();
  21. }
  22.  
  23. private void Form1_Load(object sender, EventArgs e)
  24. {
  25. tcpclient = new TcpClient();
  26. }
  27.  
  28. private void buttonConnect_Click(object sender, EventArgs e)
  29. {
  30. bool err = false;
  31.  
  32. try
  33. {
  34. tcpclient.Connect(textBoxIP.Text, Int32.Parse(textBoxPort.Text));
  35. }
  36. catch (Exception ex)
  37. {
  38. MessageBox.Show(ex.ToString());
  39. err = true;
  40. }
  41.  
  42. if (!err)
  43. {
  44. buttonConnect.Enabled = false;
  45. }
  46.  
  47. }
  48.  
  49. private void buttonLedOn_Click(object sender, EventArgs e)
  50. {
  51. try
  52. {
  53. Stream tcpData = tcpclient.GetStream();
  54. ASCIIEncoding asen = new ASCIIEncoding();
  55. String data = "on";
  56. byte[] ba = asen.GetBytes(data);
  57. tcpData.Write(ba, 0, ba.Length);
  58. }
  59. catch (Exception err)
  60. {
  61. MessageBox.Show(err.ToString());
  62. }
  63. }
  64.  
  65. private void buttonLedOff_Click(object sender, EventArgs e)
  66. {
  67. try
  68. {
  69. Stream tcpData = tcpclient.GetStream();
  70. ASCIIEncoding asen = new ASCIIEncoding();
  71. String data = "off";
  72. byte[] ba = asen.GetBytes(data);
  73. tcpData.Write(ba, 0, ba.Length);
  74. }
  75. catch (Exception err)
  76. {
  77. MessageBox.Show(err.ToString());
  78. }
  79. }
  80. }
  81. }
  82.  

Comments

Popular posts from this blog

Sevent Segmen Arduino

Salah satu topik yang menarik untuk dibahas untuk malam ini , sambil datangnya waktu shubuh ( pagi ). Banyak sekali project yang dapat dibuat. Beberapa contohnya adalah jam digital dengan seven segment, stopwatch dengan 7 segment atau display jam sholat digita l yah walaupun sudah banyak yang membahasnya. Untuk membuat alat yang saya sebutkan diatas,  perlu memahami dulu bagaimana cara untuk memprogram seven segment menggunakan arduino . Karena dasar dari itu semua adalah menyalakan seven segment sesuai keinginan. Banyak sekali metode yang dapat digunakan untuk memprogram 7 segment. Beda metode beda juga rangkaian yang digunakan. Salah satu metode yang sangat sederhana dan tidak membutuhkan banyak rangkaian adalah metode scanning . Apa itu metode scanning ?? Yuk lanjutkan baca sampai selesai yaa !! metode ini akan saya gunakan untuk matakuliah yang saya akan ajarkan...... Apa Itu Metode Scanning ?? Salah satu metode memprogram seven segment yang banyak digunakan adalah metode

74hc595 Shift Register

IC  74HC595   Arduino. penghematan pin arduino 74HC595  adalah IC ( integrated circuit , sirkuit elektronika terpadu) dari keluarga TTL seri 74 xx yang berfungsi sebagai  Shift Register . Kami menjual IC ini dalam 2 pilihan kemasan / packaging: versi DIP-16 ( Dual In-line Package  16 pin, 4 IC per paket) dan versi SMD ( Surface Mounted Device , 74HC595D, 5 IC per paket). Komponen elektronika ini memiliki register (kumpulan  flip-flop ) sepanjang 8-bit yang menerima masukan secara serial dan keluaran paralel dalam 8-pin keluaran. Data masukan disimpan pada register penyimpanan tipe-D sepanjang satu byte (8 bit D-type  storage register ). Gambar IC  74HC595   Gambar Schematic  74HC595   Di bawah ini adalah contoh rangkaiannya

Masjid Agung Banten

Selain sebagai obyek wisata ziarah, Masjid Agung Banten juga merupakan obyek wisata pendidikan dan sejarah. Dengan mengunjungi masjid ini, wisatawan dapat menyaksikan peninggalan bersejarah kerajaan Islam di Banten pada abad ke-16 M, serta melihat keunikan arsiteksturnya yang merupakan perpaduan gaya Hindu Jawa, Cina dan Eropa. Sejarah pendirian Masjid Agung Banten berawal dari instruksi Sultan Gunung Jati kepada anaknya, Hasanuddin. Konon, Sunan Gunung Jati memerintahkan kepada Hasanuddin untuk mencari sebidang tanah yang masih “suci” sebagai tempat pembangunan Kerajaan Banten. Setelah mendapat perintah ayahnya tersebut, Hasanuddin kemudian shalat dan bermunajat kepada Allah agar diberi petunjuk tentang tanah untuk mendirikan kerajaan. Konon, setelah berdoa, secara spontan air laut yang berada di sekitarnya tersibak dan menjadi daratan. Di lokasi itulah kemudian Hasanuddin mulai mendirikan Kerajaan Banten beserta sarana pendukung lainnya, seperti masjid, alun-alun, dan pasar. P