Sensor DHT 11 Sensor DHT 11 merupakan sensor suhu dan kelembapan. Dengan menggunakan sesnsor DHT 11 kita dapat mengukur suhu dan kelembapan hanya dengan menggunakan satu sensor saja. DHT 11 memiliki output sinyal digital. Sensor DHT11 dapat berkerja pada tegangan 3 - 5,5 Volt DC.
Sensor DHT 11 Sensor DHT 11 merupakan sensor suhu dan kelembapan. Dengan menggunakan sesnsor DHT 11 kita dapat mengukur suhu dan kelembapan hanya dengan menggunakan satu sensor saja. DHT 11 memiliki output sinyal digital. Sensor DHT11 dapat berkerja pada tegangan 3 - 5,5 Volt DC. Berikut spesifikasi dari sensor DHT11: - Tegangan Operasi : 3 - 5.5 Volt DC - Rentang suhu : 0 – 50 Celsius - Keakuratan suhu : ± 2 Celsius - Rentang kelembapan : 20 – 90% RH (Relative Humidity) - Keakuratan kelembapan : ± 5% RH Terdapat 2 versi DHT11 yang dijual di pasaran yaitu DHT11 tanpa breakout PCB dan DHT11 dengan breakout PCB. Perbedaannya adalah DHT11 tanpa breakout PCB memiliki 4 pin akan tetapi yang digunakan hanya 3 pin sedangkan DHT11 dengan breakout PCB memiliki 3 pin. Tidak ada perbedaan dari cara penggunaan kedua DHT11 tersebut. 3 pin yang digunakan pada DHT11 adalah pin VCC, Data, GND. VCC sebagai sumber daya DHT11, Data adalah output data digital dan GND untuk ground.
Sensor LDR (Light Dependent Resistor) Sensor LDR adalah sensor analog yang digunakan untuk mengukur intensitas cahaya. Sensor LDR menggunakan resistor variabel untuk mengukur intensitas cahaya. Tahanan resistor akan berubah-ubah sesuai dengan cahaya yang tersedia. Ketika nilai tahanannya besar maka intensitas cahaya kecil dan jika nilai tahanannya kecil maka intensitas cahaya besar. Terdapat 2 jenis sensor yang beredar dipasaran yaitu sensor LDR dengan PCB dan sensor LDR tanpa PCB. Sensor LDR dengan PCB memiliki output analog maupun digital. Sensor LDR tanpa PCB memiliki 2 pin. 1 pin digunakan untuk VCC dan satu pin lagi digunakan sebagai output. Pin output harus di-jumper dengan gorund menggunakan resistor. Ketika menggunakan LDR dengan PCB kita dapat memiliki antara pin A0 dan D0 sebagai output. Untuk sinyal analog menggunakan pin A0 dan untuk sinyal digital menggunakan pin D0.
Water Level Sensor Water level sensor merupakan sensor analog yang memanfaatkan nilai resistansi untuk mengukur ketinggian air. Badan sensor terbuat dari bahan yang tidak dapat menghantarkan listrik. Pada badan sensor kemudian diberikan garis-garis dari bahan yang dapat menghantarkan listrik. Ketika tidak ada air yang mengenai badan sensor maka nilai resistansi akan tinggi dan jika badan sensor terkena air maka nilai resistansi akan rendah karena air akan menghantarkan listrik antara garis-garis pada badan sensor. Terdapat 3 pin pada water level sensor yaitu pin VCC, Ground, dan Signal. Pin signal digunakan sebagai output.
2. Aktuator pada Smart Home Aktuator pada Smart Home Motor DC adalah komponen yang memadukan antara ilmu elektronika dan mekanika. Sesuai dengan namanya, motor DC diberikan energi oleh listrik arus searah atau DC (Direct Current) dan diubah menjadi energi kinetic/gerak. Motor DC memiliki dua terminal (kabel) yang berfungsi sebagai power dan ground. Tanda power atau ground ini tergantung pemakaian. Misalkan (lihat Gambar 1), kita memberikan tegangan ke kabel yang berwarna merah, maka kabel tersebut berfungsi sebagai power (+) dan kabel yang berwarna hitam berfungsi sebagai ground (-). Sebaliknya, jika kita memberikan tegangan ke kabel yang berwarna hitam, maka kabel tersebut berfungsi sebagai power (+) dan kabel yang berwana merah berfungsi sebagai ground (-). Namun, ada hal mendasar yang harus diketahui. Ketika kita menginginkan arah perputaran dari motor DC berputar sebaliknya, maka kita hanya menggantikan input kabel. Misalkan sebelumnya kita memberikan tegangan ke kabel berwarna merah, maka hanya menggantikan kabel merah dengan kabel hitam sebagai power dan menggantikan kabel hitam dengan kabel merah sebagai ground. Bagian Utama dalam Motor DC
Kutub Magnet Kutub magnet (north dan south) yang ada dalam motor DC berbentuk melengkung guna menghasilkan medan magnet yang kuat terhadap angker dinamo. Angker Dinamo Angker dinamo adalah batang bimetal yang dililit oleh kumparan guna menghasilkan gaya magnet yang mempunyai polaritas pada batang bimetal. Komutator Komutator adalah benda yang membentuk lingkaran yang hampir sempurna. Komutator berfungsi agar angker dinamo tetap berputar. Jika komutator berbentuk lingkaran sempurna, angker dinamo tidak akan berputar [1]. Sikat (brush) Sikat atau brush adalah lempenan kecil yang menyentuh komutator guna menyuplai arus listrik. Sikat terbuat dari karbon, grafit, atau campuran dari keduanya[2]. Prinsip Kerja - Pertama, power supply akan memberikan tegangan ke sikat (lihat Gambar 2). Kemudian sikat menyentuh komutator yang menjadi konduktor. - Angker dinamo yang dililit dengan kumparan akan menghasilkan gaya elektromagnetik ketika dialiri listrik kemudian menghasilkan kutub yang tidak berubah-ubah. - Setelah angker dinamo dialiri listrik dan mendapatkan kutub magnet (south dan north), posisi kutub angker dinamo akan selalu bertolak belakang dengan magnet yang berbentuk cekung. - Kemudian angker dinamo akan selalu bertolak belakang dengan magnet cekung sehingga akan terus berputar (termasuk fungsi dari komutator agar angker dinamo terus berputar). Motor Servo Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di-set-up atau diatur untuk menentukan dan memastikan posisi sudut dari poros output motor. Motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo
Pada dasarnya prinsip kerja motor servo berdasarkan sinyal modulasi lebar pulsa (Pulse Wide Modulation/PWM) menggunakan kabel kontrol. Kabel kontrol mengontrol dengan memberikan pulsa sinyal dimana akan menentukan posisi sudut putaran dari poros motor servo. Misalnya saja, pada lebar pulsa dengan waktu 1,5ms (mili detik) akan memutar poros servo dengan posisi sudut 90⁰. Apabila waktu lebar pulsa lebih kecil (kurang dari 1,5ms) maka akan berputar ke arah posisi 0⁰ atau berputar ke kiri (berputar berlawanan arah jarum jam). Sedangkan jika waktu lebar pulsa lebih besar (lebih dari 1,5ms) maka poros servo akan berputar ke arah posisi 180⁰ atau berputar ke kanan (berputar searah dengan jarum jam). Keunggulan dari penggunaan motor servo adalah[4]: - Tidak bergetar dan tidak ber-resonansi saat beroperasi. - Daya yang dihasilkan sebanding dengan ukuran dan berat motor. - Penggunaan arus listik sebanding dengan beban yang diberikan. - Resolusi dan akurasi dapat diubah dengan hanya mengganti encoder yang dipakai. - Tidak berisik saat beroperasi dengan kecepatan tinggi. Selain itu, motor servo juga memiliki beberapa kelemahan, yaitu[4]: - Memerlukan pengaturan yang tepat untuk menstabilkan umpan balik. - Motor menjadi tidak terkendali jika encoder tidak memberikan umpan balik. - Beban berlebih dalam waktu yang lama dapat merusak motor. Solenoid Door Lock Secara umum, solenoid adalah gulungan kawat yang dililitkan dengan batang besi yang berguna untuk menghasilkan gaya elektromagnetik ketika dialiri arus listrik. Maka dari itu, solenoid mempunyai polaritas (kutub utara dan selatan)[5]. Kebutuhan yang semakin meningkat mendorong inovasi teknologi bermunculan pula, tak terkecuali solenoid. Solenoid memiliki banyak macamnya, di antaranya, solenoid water inlet, solenoid door lock, dan solenoid push pull.
Olenoid door lock adalah salah kunci atau slot pintu yang memanfaatkan solenoid untuk membuka dan mengunci. Solenoid door lock dapat berkerja dengan tegangan 12 V DC. Ketika solenoid door lock dialiri oleh tegangan maka medan magnet akan menarik pelatuk kunci sehingga kunci akan terbuka. Ketika solenoid door lock tidak diberikan tegangan maka pelatuk akan keluar dan mengunci pintu. Terkadang terdapat masalah ketika penggunaan solenoid door lock yaitu ketika kunci membuka dalam waktu yang cukup lama maka solenoid door lock akan overheat. Relay Relay merupakan tuas saklar dengan lilitan kawat pada batang besi solenoid di dekatnya. Jika solenoid dialiri arus listrik, maka tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid sehingga kontak saklar akan menutup. Relay memiliki fungsi atau kegunaan yang sama, yaitu sebagai alat pengganti saklar yang bekerja untuk mengontrol atau membagi arus listrik maupun sinyal lain yang menuju sirkuit ataupun sinyal lainnya. Cara kerja relay yaitu dengan memanfaatkan elektromagnetik sebagai kontak saklar. Lalu pada saat arus listrik mengaliri koil maka medan magnet akan menarik kontak sehingga posisi kontak tersebut akan berubah yang awalnya dari posisi off berubah menjadi ke posisi on. Ada 5 komponen inti yang berada pada relay, yaitu: - Elektromagnetik atau coil - Armature - Spring - Saklar/kontak - Iron core Didalam relay juga terdapat dua jenis contact point , yaitu: - NC (Normally Close) yaitu posisi awal sebelum diaktifkan yaitu akan berada pada posisi CLOSE atau biasa disebut dalam posisi off. - NO (Normally Open) yaitu posisi awal sebelum diaktifkan akan selalu pada posisi OPEN atau juga biasa disebut dalam posisi on. Pada smart home ini kan menggunakan modul relay 4 channel yaitu modul yang memiliki 4 relay didalamnya sehingga dapat mengendalikan 4 alat hanya dengan menggunakan 1 modul relay
3. Mikrokontroler ESP32 dan LCD 1602 Mikrokontroler ESP32 Mikrokontroler adalah sebuah chip terintegrasi yang biasanya menjadi bagian dari sebuah embedded system (sistem yang didesain untuk melakukan satu atau lebih fungsi khusus yang real time). Dan suatu chip yang berupa IC (Integrated Circuit) yang dapat menerima sinyal input mengolahnya dan memberikan sinyal output sesuai dengan program yang diisikan ke dalamnya. Mikrokontroler terdiri dari CPU, Memory, I/O port dan timer seperti sebuah komputer standar, tetapi karena didesain hanya untuk menjalankan satu fungsi yang spesifik dalam mengatur sebuah sistem, mikrokontroler ini bentuknya sangat kecil dan sederhana dan mencakup semua fungsi yang diperlukan pada sebuah chip tunggal.
ESP32 merupakan salah satu mikrokontroler. NodeMcu merupakan sebuah opensource platform IoT dan pengembangan Kit yang menggunakan bahasa pemrograman Lua untuk membantu programmer dalam membuat prototype produk IoT atau bisa dengan memakai sketch dengan arduino IDE. Pengembangan Kit ini didasarkan pada modul ESP, yang mengintegrasikan GPIO, PWM (Pulse Width Module action), IIC, 1-Wire dan ADC (Analog to Digital Converter) semua dalam satu board. Pemrograman pada ESP32 menggunakan bahasa pemrograman C++ sama seperti pada board Arduino. Berikut adalah spesifikasi dari ESP32: Prosesor -Tensilica (Dual core/Single Core) Xtensa LX6 Tegangan Operasi -3.3V Tegangan input -7-12V Digital I/O Pins (DIO) -30 / 36 (tergantung jenis ESP32) Analog Input Pins (ADC) -18 Flash Memory -4 MB SRAM -520 KB Clock Speed -240 Mhz Wi-Fi -IEEE 802.11 b/g/n Bluetooth -Versi 4.2 Berikut adalah konfigurasi pin GPIO ESP32:
LCD 1602 LCD atau Liquid Crystal Display merupakan suatu media tampilan yang menggunakan kristal cair dan juga polarizer sebagai alat untuk menampilkan gambar, tulisan atau yang lainnya. LCD banyak digunakan pada alat elektronik sekarang ini seperti televisi, smartphone, laptop, monitor dan yang lainnya. Kristal cair yang digunakan pada LCD tidak memancarkan cahayanya sendiri, akan tetapi hanya memantulkan cahaya pada sudut tertentu untuk menampilkan warna yang dinginkan. LCD dapat menampilkan tampilan berwarna dan juga tampilan monochrome (tampilan 1 warna seperti kalkulator). Terdapat juga LCD yang dapat digunakan dengan mikrokontroler contohnya adalah LCD 1602. LCD 1602 merupakan LCD monokromatik berwarna hijau atau biru yang memiliki 16 kolom dan 2 baris karakter sehingga total karakter yang dapat ditampilkan berjumlah 32 karakter. LCD1602 menggunakan port pararel untuk komunikasi data dengan mikrokontroler. LCD1602 juga dapat digabungkan dengan modul I2C untuk memudahkan komunikasi data dan juga pengkabelan. Berikut adalah spesifikasi dari LCD1602: - Tegangan Operasi : 4.7 – 5.5 Volt - Tegangan Backlight : 5 Volt - Temperatur Operasi : 0 - ±50 Celsius - Bit Komunikasi : 4-Bit atau 8-Bit - Jumlah Karakter : 32 Karakter (16 karakter 2 baris) - Resolusi per-Karakter : 40 Dot (5 x 8)
4. Rangkaian Alat-alat Smart Home Rangkaian Alat-alat Smart Home Alat-alat pada smart home tidak memiliki batasan apapun, setiap smart home dapat memiliki alat-alat yang berbeda dengan smart home lainnya. Pada smart home yang akan kita buat ini ada beberapa alat yaitu: 1. Pengendali Lampu, alat ini berfungsi untuk mengendalikan lampu pada rumah. Lampu yang dikendalikan dapat berbagai macam seperti lampu taman, lampu depan, lampu didalam rumah, atau lampu-lampu lainnya. Pada alat ini juga terdapat sensor LDR yang berfungsi untuk mengetahui intensitas cahaya di sekitar tempat sensor LDR diletakkan. 2. Pengendali Kipas Angin, alat ini berfungsi untuk mengendalikan kipas angin. Pada alat ini juga terdapat sensor DHT 11 yang berfungsi untuk mengetahui suhu dan kelembapan ruangan. 3. Pengendali Kunci Pintu, alat ini digunakan untuk mengendalikan kunci pintu yang menggunakan solenoid door lock. Alat ini sangat berguna jika pengguna lupa mengunci pintu atau bahkan ingin membuka pintu ketika misalkan ada kerabat yang ingin berkunjung ke rumah. 4. Pengendali Keran Air, alat ini digunakan untuk mengendalikan keran air yang menggunakan solenoid valve. Dapat diterapkan pada penampungan air ataupun bak kamar mandi. Pada alat ini juga terdapat water level sensor yang berfungsi untuk mengetahui ketinggian air pada bak atau penampungan air. Beberapa kendala dalam pembuatan smart home ini seperti beberapa sensor atau aktuator tidak berkerja dengan baik menggunakan tegangan operasi ESP32 yaitu 3.3 Volt. Maka dari itu juga menggunakan logic level converter sehingga aktuator seperti relay dapat bekerja dengan baik pada tegangan 3.3 Volt. Alat smart home ini juga menggunakan 2 sumber daya yaitu adaptor 12 Volt sebagai sumber daya ESP32 dan beberapa aktuator seperti solenoid door lock dan juga menggunakan adaptor 5 Volt sebagai sumber daya sensor-sensor dengan tegangan operasi 5 Volt. Pada ESP32 juga menggunakan kapasitor yang terhubung dengan pin En supaya dapat upload program tanpa harus menekan tombol boot. Berikut adalah skema rangkaian dari alat-alat smart home yang dibuat: 5
5. Pemrograman Smart Home (ESP32 Web Server) Import Library dan Deklarasi Variabel Terdapat beberapa library yang digunakan pada pemrograman smart home ini seperti library untuk koneksi ke WiFi, library untuk sensor dan aktuator, dan library untuk web server ESP32. Terdapat juga beberapa variabel yang dideklarasikan seperti variabel untuk pin-pin sensor dan aktuator. Fungsi eepromstate Fungsi eepromstate digunakan untuk mengakses eeprom untuk melihat status relay sebelum alat dimatikan atau di-restart Fungsi WiFiConnect Fungsi WiFiConnect digunakan untuk koneksi ke WiFi dan juga untuk mengatur static IP ESP32 serta dapat restart ESP32 jika gagal terhubung ke WiFi dalam waktu 1 menit. Fungsi OTASetUp Fungsi OTASetUp digunakan untuk konfigurasi Arduino OTA supaya dapat upload program ke ESP32 melalui WiFi Fungsi Task1code Fungsi Task1code digunakan untuk melakukan multitasking pada ESP32 untuk menampilkan suhu, kelembapan, intensitas cahaya, dan ketinggian air pada LCD1602. Multitasking memanfaatkan dual core pada prosesor ESP32. void setup Pada void setup terdapat pengubahan mode pin, memulai komunikasi serial, memanggil fungsi WiFiConnect, OTASetUp, memulai multitasking, dan lain-lain. Void loop Pada void loop berisi kode html dan css untuk membuat tampilan halaman web. Terdapat kode untuk menyalakan dan mematikan relay berdasarkan perintah yang diberikan pada halaman web.
6. Pemrograman Smart Home (Web Service) Pemrograman Smart Home (Web Service) Pada silabus ini akan dibahas mengenai pemrograman smart home. pemrograman menggunkan bahasa C/C++ dan juga aplikasi Arduino IDE sebagai compiler dan uploader program. Perbedaan pemrograman ini dengan pemrograman web server adalah pada pemrograman ini ESP32 akan mengakses server cloud menggunakan API (Application Programming Interface) untuk mendapatkan perintah menyalakan dan mematikan alat-alat smart home dan juga memasukkan hasil pembacaan sensor kedalam database. Pada pemrograman ini dibutuhkan API dari servis-servis yang akan diakses dan juga sertifikat dari server, karena pada pemrograman ini kita menggunakan protokol HTTPS sehingga lebih unggul dari sisi keamanan dibandingkan menggunakan metode HTTP. Beberapa fungsi seperti Task1code, eepromstate, WiFiConnect, OtaSetup memiliki kegunaan yang sama dengan fungsi-fungsi pada pemrograman web server sehingga tidak akan dijelaskan kembali pada silabus ini. Import Library dan Deklarasi Variabel Terdapat beberapa library yang digunakan pada pemrograman smart home ini seperti library untuk koneksi ke WiFi, library untuk sensor dan aktuator, dan library untuk web server ESP32. Terdapat juga beberapa variabel yang dideklarasikan seperti variabel untuk pin-pin sensor dan aktuator. Terdapat juga variabel yang menyimpan API-API servis, API harus disesuaikan dengan API server yang kalian gunakan. Terdapat juga sertifikat dari server, harus disesuaikan dengan sertifikat server yang kalian gunakan. Void setup Void setup berisi pemanggilan fungsi-fungsi dan juga inisiasi eeprom, komunikasi serial, multitasking. Void Loop Void loop berisi pemanggilan fungsi-fungsi yang berguna untuk mengambil perintah mematikan atau menyalakan relay dan juga mengirim hasil pembacaan sensor ke server. Pada void loop diberikan delay sebesar 20 detik supaya tidak membebani server. Fungsi Task1code, eepromstate, WiFiConnect, OtaSetup Fungsi Task1code, eepromstate, WiFiConnect, OtaSetup (Line 115 - 245) sama denga pemrograman fungsi-fungsi pada pemrograman web server.
Fungsi setClock Fungsi setClock digunakan untuk mengatur waktu pada ESP32 untuk mengikuti waktu pada dunia sebenarnya. Pengaturan waktu ini penting untuk mengakses server karena waktu harus sesuai dengan waktu pada dunia sebenarnya. Fungsi postIpAddress Fungsi postIpAddress digunakan untuk memasukkan Ip Address ESP32 kedalam database. Fungsi getUpdateCommand Fungsi getUpdateCommand digunakan untuk mengambil perintah untuk mengendalikan alatalat smart home dari database dan juga untuk memperbaharui status bahwa perintah sudah dibaca oleh ESP32. Terdapat 4 fungsi getUpdateCommand yaitu getUpdateCommand_1, getUpdateCommand_2, getUpdateCommand_3, dan getUpdateCommand_4 (Line 297 – 608). Setiap fungsi digunakan untuk alat smart home yang berbeda. Perbedaan setiap fungsi adalah pada API yang diakses dan juga alat smart home yang dikendalikan. Disini hanya akan dicontohkan 1 fungsi saja. Fungsi readPostSensor_DHT11 Fungsi readPostSensor_DHT11 digunakan untuk memasukkan suhu dan kelembapan hasil pembacaan sensor DHT11 kedalam database. Fungsi readPostSensor_LDR Fungsi readPostSensor_LDR digunakan untuk memasukkan intensitas cahaya hasil pembacaan sensor LDR kedalam database. Fungsi readPostSensor_waterLevel Fungsi readPostSensor_waterLevel digunakan untuk memasukkan ketinggian air hasil pembacaan sensor water level kedalam database
0 Orang Menyukai Karya Ini