TUBES-IOT "SMART LAMP" ![UNIVERSITAS TELKOM - LOGO VERTIKAL](https://hackmd.io/_uploads/S1c-u-B_a.png) KELOMPOK HIKARI FAZRI ARDHANA - 1103202187 RAIHAN ATHA - 1103202123 MUHAMMAD IKHWAN MAULANA - 1103203219 YASSER MARTIN - 1103201259 DEWA THEISYATTA ASHARO HEISENDA - 1103204125 PENGENALAN PROJEK Projek kali ini yaitu membuat alat sederhana menggunakan wemos d1 mini, sensor ldr sebagai pendeteksi cahaya, relay untuk memutus daya, dan komponen yang lainnya. Jika sensor mendeteksi cahaya, nantinya lampu akan mati secara otomatis, dan juga sebaliknya jika sensor tidak mendeteksi cahaya, lampu akan menyala. Lampu juga bisa di atur dengan manual sesuai kehendak sendiri. Protokol jaringan menggunakan protokol MQTT dan broker mqtt yang digunakan adalah broker MQTT KENDALA YANG DIALAMI Kami mengalami kendala yang cukup serius, yaitu alat tidak bisa dikendalikan secara otomatis. Pada saat percobaan menyambung ke broker MQTT berhasil, tetapi saat mencoba sensor tidak bisa. Sensor tidak bisa mengenali cahaya sehingga alat tidak bisa bekerja. Codingan yang dibuat juga sudah dicoba tetapi hasilnya nihil, tidak ada perubahan sama sekali. LATAR BELAKANG ALASAN MEMILIH TOPIK Penggunaan teknologi ini membantu mengoptimalkan penggunaan energi dengan mengatur pencahayaan secara otomatis, memberikan kenyamanan dengan kemampuan kontrol jarak jauh melalui perangkat pintar, dan memberikan fleksibilitas dalam menciptakan suasana ruangan yang diinginkan. TUJUAN PROYEK Tujuan dari proyek ini adalah sebagai pemenuhan nilai tugas besar untuk mata kuliah IoT (Internet of Thing) dan memahami cara kerja IOT. TEORI DASAR Alat yang dibutuhkan 1. Relay ![download](https://hackmd.io/_uploads/H1EuuWSda.jpg) Relay adalah sebuah komponen elektronik yang berfungsi sebagai sakelar elektrik yang dikendalikan oleh arus listrik. Relay digunakan untuk mengontrol satu sirkuit listrik dengan menggunakan sinyal atau tegangan dari sirkuit lainnya. 2. Breadboard ![download (1)](https://hackmd.io/_uploads/ryAFdWBuT.jpg) Breadboard adalah perangkat atau papan percobaan yang digunakan dalam elektronika untuk merancang, menguji, dan menyusun prototipe rangkaian listrik tanpa harus melakukan soldering. 3. Wemos d1 mini ![download (2)](https://hackmd.io/_uploads/HyaiOZBda.jpg) Wemos D1 Mini adalah sebuah papan pengembangan (development board) berbasis modul WiFi yang dirancang untuk pemrograman dan prototyping dalam konteks Internet of Things (IoT). 4. Sensor LDR ![download (3)](https://hackmd.io/_uploads/ByF6ObS_a.jpg) LDR (Light-Dependent Resistor) atau resistor tergantung cahaya adalah sebuah komponen elektronik yang memiliki resistansi yang berubah-ubah tergantung pada intensitas cahaya yang diterimanya. 5. Kabel, fitting, dan stekker ![download (4)](https://hackmd.io/_uploads/H1pytZBup.jpg) ![download (5)](https://hackmd.io/_uploads/HyTJtbBOT.jpg) ![download (6)](https://hackmd.io/_uploads/S16ktbrOa.jpg) Digunakan untuk menyalakan lampu 6. Kabel jumper Kabel jumper adalah kabel pendek yang digunakan dalam elektronika dan prototyping untuk menghubungkan dua titik atau komponen dalam rangkaian listrik. 7. Lampu ![download (8)](https://hackmd.io/_uploads/B1UQF-Hdp.jpg) Lampu adalah perangkat yang menghasilkan cahaya, baik sebagai sumber cahaya utama atau sebagai sumber cahaya tambahan. 8. Kable USB to micro USB ![download (9)](https://hackmd.io/_uploads/BJJBKWB_T.jpg) Untuk menghubungkan laptop dengan wemos d1 mini KONEKSI YANG DIGUNAKAN WiFi - WiFi adalah teknologi nirkabel yang memungkinkan perangkat elektronik, seperti komputer, smartphone, tablet, dan perangkat lainnya, untuk terhubung ke jaringan internet atau jaringan lokal (LAN) tanpa menggunakan kabel fisik. MQTT - MQTT (Message Queuing Telemetry Transport) adalah protokol komunikasi ringan yang dirancang untuk digunakan pada kondisi jaringan yang tidak stabil atau dengan bandwidth terbatas. SOURCE CODE #include <Arduino.h> #include <ESP8266WiFi.h> #include <PubSubClient.h> // WiFiaa const char *ssid = "OPPOA92"; // Enter your WiFi name const char *password = "12345678990"; // Enter WiFi password // MQTT Broker const char *mqtt_broker = "broker.emqx.io"; const char *topic = "hikari"; const char *mqtt_username = "hikari"; const char *mqtt_password = "hikari"; const int mqtt_port = 1883; const int ldr = A0; const int relayPin = D4; WiFiClient espClient; PubSubClient client(espClient); void callback(char *topic, byte *payload, unsigned int length) { String string; Serial.print("Message arrived in topic: "); Serial.println(topic); Serial.print("Message:"); for (int i = 0; i < length; i++) { Serial.print((char) payload[i]); string += ((char)payload[i]); } Serial.println(string); if ((char)payload[0] == '0') { Serial.println("LAMPU MATI"); digitalWrite(D4, LOW); } else if ((char)payload[0] == '1') { Serial.println("LAMPU NYALA"); digitalWrite(D4, HIGH); } Serial.println(); Serial.println("-----------------------"); } void setup() { // Set software serial baud to 115200; Serial.begin(115200); // connecting to a WiFi network pinMode(relayPin, OUTPUT); pinMode(relayPin, LOW); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.println("Connecting to WiFi.."); } Serial.println("Connected to the WiFi network"); //connecting to a mqtt broker client.setServer(mqtt_broker, mqtt_port); client.setCallback(callback); while (!client.connected()) { String client_id = "mqttx_1cf3c425"; client_id += String(WiFi.macAddress()); Serial.printf("The client %s connects to the public mqtt broker\n", client_id.c_str()); if (client.connect(client_id.c_str(), mqtt_username, mqtt_password)) { Serial.println("Public emqx mqtt broker connected"); } else { Serial.print("failed with state "); Serial.print(client.state()); delay(2000); } } // publish and subscribe client.publish(topic, "Hi EMQX I'm esp ^^"); client.subscribe(topic); } void loop() { client.loop(); int ldrValue = analogRead(ldr); if (ldrValue < 300) { digitalWrite(relayPin, HIGH); // Nyalakan lampu client.publish(topic, "1"); } else { digitalWrite(relayPin, LOW); // Matikan lampu client.publish(topic, "0"); } delay(2000); } CARA KERJA ALAT Sensor cahaya akan mendeteksi cahaya disekitarnya. Jika sensor mendeteksi cahaya yang terang, maka lampu akan otomatis mati. Jika sensor mendeteksi cahaya redup/tidak ada cahaya, maka lampu akan hidup otomatis. Selain itu, lampu bisa diatur manual dengan semacam aplikasi. KESIMPULAN Alat ini belum berhasil dibuat karena ada beberapa kesalahan yang belum bisa diselesaikan. Entah itu kesalahan dari codingan yang buat atau kesalahan dalam merangkai alat. Selanjutnya kami akan mencoba lagi agar alat ini bisa digunakan