بِسْــــــــــــــــــمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ Hai sobat, selamat datang dan salam kenal untuk kalian yang bekunjung di Tutorial kali ini adalah menyalakan dan mematikan lampu menggunakan android atau bisa juga disebut IOT Internet Of Things. Internet of Things kian marak. Perangkat IoT yang murah meriah dan canggih sudah banyak dan akan terus bermunculan. Berbagai layanan platform IoT pun semakin berkembang dan saling berkompetisi. Ekosistem yang semakin meluas ini berdampak pada membludaknya jumlah penggiat IoT untuk membuat berbagai kreasi. Ada sekitar 4,5 juta individu developer aktif di seluruh dunia yang mengembangkan perangkat IoT. Dapat Kalian coba dengan tingkat kesulitan yang rendah dan budget yang ekonomis. Skenarionya adalah membuat perangkat yang dapat menyalakan dan mematikan lampu melalui handphone android yang terhubung ke internet. disini saya menggunakan Wemos D1 mini. Yaitu merupakan board wifi mini berbasis ESP266 yang dikenal ekonomis dan handal. ESP8266 ini yang bisa menghubungkan perangkat microcontroller seperti arduino dengan internet via wifi. Wemos D1 mini ini dapat membuat project mini tanpa menggunakan arduino sebagai mikrokontrolernya, karena modul Wemos D1 mini dapat bekerja sendiri atau stand-alone untuk memproses setiap bait code atau coding yang masuk. Perangkat dan Alat Wemos D1 Mini Relay module Kabel jumper Set lampu Untuk skema rangkaiannya GND=GPIN1=D1 PIN2=D2 PIN3=D3 PIN4=D4 VCC=3V3 Instalasi Driver USB to UART TTL ESP-8266 IoT Agar Wemos IoT dapat bertukar data dengan komputer, kita perlu melakukan instalasi driver USB to UART TTL terlebih dahulu. Pada bagian ini akan ditunjukkan proses instalasi driver pada komputer yang berjalan dengan sistem operasi Windows. Langkah-langkah prosedur instalasi tersebut adalah sebagai berikut Unduh file diver pada link kemudian lakukan extract, Pada hasil extract driver tersedia installer untuk versi sistem operasi 32-bit ... dan 64-bit ... Jalankan installer yang sesuai dengan arsitektur sistem operasi yang digunakan, Apabila proses instalasi driver berhasil, maka Wemos IoT akan terdeteksi pada Device Manager sebagai Silicon Labs CP210x USB to UART Bridge COMxx dimana xx merupakan nomor port serial yang digunakan, Instalasi Package ESP-8266 IoT pada Arduino IDE Wemos ESP-8266 IoT dapat diprogram dengan beberapa cara, salah satunya dengan menggunakan software Arduino IDE. Sebelum membuat dan mengupload sketch program pada board Wemos IoT menggunakan software Arduino IDE, kita harus menambahkan jenis board package melalui menu Board Manager. Pemograman Wemos IoT disarankan dilakukan menggunakan Arduino IDE pada versi ke atas yang dapat diunduh pada link berikut Prosedur instalasi board Wemos IoT pada Arduino IDE adalah sebagai berikut Buka software Arduino IDE, lalu pilih menu File Preferences atau dapat juga dengan menekan tombol Ctrl dan , tanda baca koma secara bersamaan pada keyboard, Ketikkan alamat URL berikut ke kolom Additonal Board Manager URLs, Kemudian pilih menu Tools Board Board Manager, ketikkan esp8266 pada text box kemudian lakukan instalasi, Setelah proses pengunduhan dan instalasi telah selesai, maka pilihan board ESP8266 akan muncul pada pilihan menu Tools Board, Pilih Generic ESP8266 Module, kemudian lakukan pengaturan parameter board seperti pada Tabel 1. Setelah pemilihan dan konfigurasi board, pilih nomor COM pada menu Tools Port sesuai dengan nomor COM yang terdapat pada jendela Device Manager. Selanjutnya kita akan mencoba untuk melakukan upload sketch contoh yang telah tersedia pada software Arduino IDE dengan cara membuka menu File Examples 01. Basic Blink. Setelah sketch Blink terbuka, lakukan sedikit pengubahan pada kode program dengan mengubah pin 13 menjadi pin 5 dimana pin tersebut terhubung dengan rangkaian LED on-board yang terdapat pada board ESP-8266 IoT. Jika tidak terdapat error, pin tersebut akan mengeluarkan sinyal high-low dengan interval selama 1 detik. Selain melakukan instalasi package ESP8266, kita juga harus menambahkan Blynk Arduino Library untuk membantu dalam membuat program untuk ESP8266 dengan aplikasi Blynk. Unduh dan install library tersebut pada link dan pilih library versi yang terbaru. Setelah file tersebut berhasil diunduh, salin semua isi folder hasil ekstrak dari ke direktori C\Users\\Documents\Arduino\libraries, dimana direktori tersebut merupakan kumpulan dari library Arduino. instalasi blynk pada smartphone Aplikasi Blynk tersedia bagi perangkat iOS maupun Android dan dapat bekerja dengan berbagai macam jenis mikrokontroler seperti Arduino, Raspberry Pi, Intel Galileo, ESP8266, dan lain-lain. Aplikasi ini dapat diunduh pada Play Store dengan kata kunci Blynk khusus bagi pengguna Android. Di bawah ini merupakan langkah-langkah konfigurasi awal untuk mengkombinasikan aplikasi Blynk dengan Wemos IoT Unduh dan install aplikasi Blynk pada smartphone yang mempunyai sistem operasi Android, Setelah proses instalasi telah selesai, buka aplikasi Blynk dan buat sebuah account baru, Akan tampil halaman dimana kita dapat melakukan registrasi account baru, Setelah masuk pada halaman user, klik tombol Create New Project untuk membuat project baru yang akan digunakan untuk merancang sebuah aplikasi, Tulis nama projek pada kolom Project Name dan pilih Hardware Model sesuai dengan hardware yang kita gunakan yaitu Wemos D1 mini, Karena nantinya Auth Token akan digunakan pada kode program sebagai identitas project Blynk, salin Auth Token tersebut atau dapat juga dengan cara meng-klik tombol Email agar terkirim pada email yang kita gunakan pada saat registrasi account, Jika konfigurasi telah selesai, kemudian klik tombol Create, Klik tombol + pada bagian kanan atas aplikasi Blynk untuk menambahkan widget yang akan mewakili tampilan setiap hardware, Tambahkan Button melalui jendela widget box, Klik pada button tersebut untuk masuk dalam jendela pengaturan Button, Atur output tombol menjadi D5, dimana pin 5 terhubung dengan rangkaian LED on-board yang terdapat pada board Wemos, Apabila langkah-langkah di atas telah selesai, selanjutnya kita akan mencoba untuk mengupload salah satu sketch contoh yang terdapat pada library Blynk ke ESP-8266 IoT dengan langkah-langkah sebagai berikut Buka software Arduino IDE dan buka menu File Examples Blynk Boards_WiFi ESP8266_Standalone. Akan terbuka jendela baru yang berisikan sketch dengan nama ESP8266_Standalone, Lakukan penyesuaian pada menu Tools Board dan pilih jenis modul Wemos D1 & R2 mini, Lakukan pula penyesuaian pada menu Tools Port dan pilih nomor COM sesuai dengan nomor COM yang terdapat pada Device Manager, Pastikan untuk selalu melakukan penyesuaian dengan mengubah kode program pada bagian YourAuthToken, YourNetworkName, dan YourPassword seperti pada kode program di bawah ini, YourAuthToken diisi sesuai dengan token yang terdapat pada project Blynk, Your NetworkName diisi sesuai dengan SSID jaringan WiFi, YourPassword diisi sesuai dengan password jaringan WiFi, Buka aplikasi blynk Kemudian klik tombol Play di sudut kanan atas dan cobalah untuk menekan/melepas tombol tersebut. LED yang terdapat pada Wemos akan menyala/padam sesuai dengan kondisi tombol pada aplikasi Blynk. jika masih kurang jelas bisa lihat video yang dibawah ini
ContactUs. Jl. Dian Permai Raya H9-30 Bandung - 40222 Jawa Barat - Indonesia +62(22)20569264 support@geeknesia.com
Well….well….welll….. Ini blog baru saya buka lagi setelah sekian lama saya sibuk dengan berbagai macam aktivitas penting dan tak penting. Okeh, pada posting kali ini topik yang akan saya bahas masih ada kaitannya dengan Arduino dan LED. Sebenarnya, pada postingan terdahulu saya sempat membuat artikel dengan judul “Menyalakan dan Mematikan LED Lampu Menggunakan Android dan Arduino via Internet”. Namun, berbeda dengan artikel tersebut, pada artikel ini proses menyalakan dan mematikan lampu tersebut akan dilakukan pada halaman web, maka dari itu judul artikel ini adalah “Mengendalikan Lampu LED melalui Internet Web – Arduino – LED”. Nah Loh ? Emang bisa ya ? Setelah dipelajari ebih lanjut dan dicari beberapa hardware penunjang, mengendalikan lampu dari halaman web intu memang bisa dilakukan. Untuk mengerjakan proyek ini diperlukan syarat-syarat khusus tentunya. Pertama, kalian harus mengerti yang namanya bahasa pemrograman PHP, HTML, CSS, JS / JSON, Framework Web dan tentunya pemrograman Arduino. Kedua, harus mengerti konsep database CRUD = Create-Read-Update-Delete. Dan yang ketiga yang gak kalah penting adalah kalian harus mengerti yang namanya elektronika. Oya, sebelum mulai jangan lupa juga persiapkan komponen-komponen dan hal lainnya yang bakalan dipakai dalam proyek ini ya! 1 Buah Arduino Uno / Duemilanove 1 Buah Arduino Ethernet Shield 1 Buah Kabel USB FTDI 1 Buah Kabel LAN 1 Buah Router ADSL / Modem / Hub atau sejenisnya yang terhubung ke Internet 1 Buah Adaptor Beberapa Buah LED Beberapa Buah Resistor 220K Ohm Kabel-Kabel Laptop Buat programming + SDK / Tools Buat Programming Ane pake Netbeans IDE Web Hosting Klo gak ada modal yang gratisan juga gak apa-apa, biar irit Kalau semua peralatan tempur sudah siap, saatnya mulai ya… Pertama, buat aplikasi web / halaman web yang berfungsi untuk mengirimkan instruksi ON/OFF dan menampilkan notifikasi apakah lampu berhasil dinyalakan atau tidak. Dalam proyek ini, pembuatan halaman web ane menggunakan framework PHP CodeIgniter, UI nya ane pake Bootstrap, dan databasenya MySQL. Namun, jika kalian tidak terbiasa dalam menggunakan CodeIgniter, kalian bisa menggunakan PHP framework lain atau bahkan tanpa framework juga bisa. Itu sih bagaimana selera kalian ya! Barangkali dari kalian ada yang bertanya-tanya, apa fungsi database? Fungsi database ini adalah untuk menyimpan kondisi lampu dan menyimpan login information dari user. Jadi untuk akses sistem ini gak sembarangan, hanya yang tahu username dan password saja. Nah, di Bawah ini adalah tampilan halaman web yang berfungsi untuk mengendalikan lampu ya. Nah kedua, kalau halaman web tersebut sudah berhasil dibuat, selanjutnya simpan file-file web tersebut di hostingan kalian ya. Dan jangan lupa cek dan recek lagi, barangkali ada yang salah / error. Ketiga, saatnya mempersiapkan hardware. Pasangkan ethernet shiled di atas Arduino ya. Jangan lupa cek dan ricek barangkali ad apin atau kaki-kaki yang belum masuk ke dalam lubang port. Untuk pemasangan LED, ane membuat rangkaian pada PCB Matriks nih. Setelah perakitan hardware selesai, saatnya hardware tersebut kita program. Jika masih bingung tentang programmingnya, kalian bisa lihat contoh program yang ada di Arduino Example ya. Untuk memasukkan program dari PC ke Arduino, jangan lupa pasang dulu kabel FTDI nya ya, awas kelupaan. Proses memasukkan program ke dalam Arduino tidak lama kok, hanya sekitar 2-8 detik saja. Web sudah di upload, Arduino sudah di program, selanjutnya pasangkan kabel LAN RJ-45 dari ethernet shield ke Router ADSL / Modem / Hub atau sejenisnya yang terhubung ke Internet. Selanjutnya, buka browser yang kamu punya, lalu buka alamat web yang kamu buat sebelumnya, klik salah satu tombol untuk menyalakan lampu. Setelah itu, cek apakah lampu sudah berhasil dinyalakan atau tidak. Kalau lampu menyala, berarti program kamu sudah berjalan dengan baik, sebaliknya program kamu masih ada masalah. Oya, perlu kalian ketahui, proyek ini ane kerjakan barengan ama teman ane yang bernama Dwi Aditya Herfiansyah dan Septian Rizky Maulidar Kalian mencobanya dan menghadapi masalah? boleh kok tanya-tanya ama ane dan temen-temen ane.
Menyalakan dan Mematikan Lampu Via Internet Menggunakan AgnosThings dan ESP8266 Artikel tutorial ini mungkin sudah kadaluwarsa, karena service AgnosThings sudah shutdown. Teknis program boleh jadi masih dapat digunakan, meskipun belum dites ulang. Internet of Things kian marak. Perangkat IoT yang murah meriah dan canggih sudah banyak dan akan terus bermunculan. Berbagai layanan platform IoT pun semakin berkembang dan saling berkompetisi. Ekosistem yang semakin meluas ini berdampak pada membludaknya jumlah penggiat IoT untuk membuat berbagai kreasi. Vision Mobile dalam salah satu reportnya menyebutkan bahwa pada hingga penghujung tahun 2015 ada sekitar 4,5 juta individu developer aktif di seluruh dunia yang mengembangkan perangkat IoT. Pada tutorial ini, Saya akan menunjukkan satu kasus implementasi IoT yang dapat Kamu coba dengan tingkat kesulitan yang rendah dan budget yang ekonomis. Skenarionya adalah membuat perangkat yang dapat menyalakan dan mematikan lampu melalui komputer atau handphone yang terhubung ke internet. Kalo Kamu belum punya gambaran tentang IoT atau Internet of Things, Kamu bisa baca ulasan tentang gambaran umum IoT pada artikel Penjelasan Sederhana mengenai Internet of Things atau CodePolitan Magazine edisi Internet of Things. Berikut adalah video demo hasil akhir dari tutorial ini Baiklah! Klik halaman selanjutnya untuk memulai tutorial! 😀 Persiapan Perangkat dan Alat Untuk dapat mengikuti tutorial ini, Kamu harus mempersiapkan beberapa perangkat berikut Wemos D1 MiniBoard ini adalah board wifi kecil berbasis ESP8266. ESP8266 dikenal sebagai modul WiFi yang handal, ekonomis dan komunitas yang besar. ESP8266 inilah yang akan menghubungkan perangkat kita dengan internet via WiFi. Ada banyak varian prototype board berbasis ESP8266, seperti NodeMCU, Adafruit HUZZAH ESP8266, ESPDuino, SparkFun ESP8266 Thing, dan Wemos. Kita sebenarnya bisa langsung memprogram ESP8266 langsung tanpa menggunakan yang breakout board. Tapi kali ini saya menggunakan Wemos D1 Mini karena board ini adalah yang paling murah dan mudah didapatkan dibanding board sejenisnya. Selain itu board ini sudah dilengkapi dengan onboard microUSB dan Serial driver sehingga tidak perlu lagi USB to TTL atau FTDI adapter. Cocok untuk belajar. Relay moduleModul ini berfungsi sebagai sakelar digital untuk lampu yang on-offnya akan kita kendalikan menggunakan ESP8266 board. Breadboard Kabel jumper Set lampuRangkaian lampu lengkap dengan dudukan lampu, kabel dan stekernya. Perhatikan bahwa bagian tengah dari salah satu linekabelnya kita putus untuk nantinya dihubungkan ke perangkat-perangkat di atas, Kamu akan memerlukan Wifi Access Point yang terhubung ke internet. Access Point ini yang nantinya akan digunakan oleh ESP8266 untuk terkoneksi ke internet. Kamu bisa menggunakan jaringan Wifi rumah kalo punya, sekolah, kantor atau melalui tethering hotspot dari smartphone atau wireless router. Selain itu, Kamu juga bakal memerlukan beberapa alat seperti obeng dan gunting. Install Hardware Package ESP8266 ESP8266 dapat diprogram dengan Arduino IDE. Untuk itu kita akan menginstal terlebih dahulu hardware package untuk ESP8266 pada Arduino IDE. Ada dua jalan untuk itu, yakni melalui board manager pada Arduino IDE, atau mengunduh source code atau git clone dari repo Github. Saya asumsikan Kamu sudah menginstal Arduino IDE di komputermu. Dan untuk menggunakan ESP8266 disarankan untuk menggunakan Arduino IDE ke atas. Kalo Kamu belum menginstal Arduino IDE, unduh terlebih dahulu installernya di sini lalu jalankan untuk menginstal di komputermu. Setelah itu ikuti salah satu langkah di bawah ini untuk menginstal hardware package untuk ESP8266. Via Board Manager Jalankan Arduino IDE Pilih menu File > Preferences Pada kolom “Additional Boards Manager URLs”, isikan tautan berikut kolom Boards Manager sudah ada isinya sebelumnya, pisahkan dengan koma. Pilih menu Tools > Board > Boards Manager…, akan muncul jendela Boards Manager. Pilih “esp8266 by ESP8266 Community” lalu klik tombol install di sebelah kanan bawahnya. Via Git Masuk ke folder Sketchbook locationuntuk Arduino IDE. Lokasi Sketchbook location dapat dilihat pada menu File > Preferences, pada jendela Preferences bagian atas. Buat folder hardware/esp8266com/ lalu masuk ke dalam folder tersebut. Di dalam folder hardware/esp8266com/ clone repository ESP8266 dengan perintah berikut git clone –depth=1 Unduh binary tools untuk ESP8266. Untuk tahap ini kita akan menjalankan script python, maka komputermu harus terisntall python ke atas. Masuk ke folder esp8266/tools/ lalu jalankan perintah berikut python Restart Arduino IDE Merangkai Alat Rangkai semua perangkat menjadi seperti bagan berikut hubungkan 5V pada Wemos ke VCC relay, GND ke GND dan pin D1 ke pin input signal pada relay. Perhatian karena kita bermain dengan listrik AC bertegangan tinggi, maka pastikan Kamu memasang kabel ke steker dan dudukan lampu dengan rapi, dan masukkan kedua ujung kabel ke relay dengan rapi agar tidak tersentuh saat arus umumnya ada 3 port pada relay, yang diberi simbol C, NC dan NO. C singkatan dari Common Connection, NC singkatan dari Normally Closed dan NO singkatan dari Normally Opened. Jadi bila kita menghubungkan kedua ujung kabel ke C dan NC, maka rangkaian listrik akan tertutup pada awalnya, dan bila dihubungkan ke C dan NO, maka rangkaian listrik akan terbuka. Kita akan gunakan C dan NO agar lampu tidak menyala saat pertama kali listrik dihubungkan. Membuat Project di AgnosThings Sebenarnya ESP8266 dapat berlaku sebagai Access Point, sehingga perangkat lain seperti komputer dan smartphone dapat terhubung langsung ke ESP8266 dan mengirimkan sinyal perintah tertentu. Namun bila skenarionya demikian, maka kita hanya bisa mengontrol ESP8266 dalam jarak yang terbatas. Pada tutorial kali ini kita akan memanfaatkan salahsatu platform IoT yakni AgnosThings yang akan kita gunakan untuk menyimpan nilai untuk mengindikasikan lampu menyala dan mati. Nantinya perangkat Wemos kita akan kita hubungkan ke internet dan mengambil nilai dari server AgnosThings untuk menentukan apakah lampu harus menyala atau mati. Pertama-tama mauk terlebih dahulu ke website AgnosThings di kemudian registrasi. Setelah proses registrasi selesai, login dengan akun yang sudah Kamu buat melalui halaman login. Kamu akan diarahkan ke halaman dashboard AgnosThings. Sekarang kita akan membuat project di AgnosThings. Project yang kita buat akan menyimpan data yang kita simpan untuk kebutuhan proyek IoT kita. Pilih menu untuk membuat Project/Channel baru. Kamu akan diarahkan ke halaman form untuk membuat project. Isi setiap field form seperti pada gambar di bawah ini. Bagian paling penting adalah kolom Fields. Kolom ini berisi field apa saja yang akan disimpan datanya. Karena tutorial kita hanya memerlukan pengecekan satu nilai saja –lampu menyala atau mati, maka kita hanya akan mengisi kolom ini dengan satu field bernama switch’.Daftar project/channel dapat diakses melalui menu Channel List. Setiap project/channel akan memiliki setidaknya tiga halaman fitur yang bisa diamati Info, Raw Data dan Chart. Halaman Info berisi informasi seputar project kita beserta daftar API yang dapat kita gunakan untuk menyimpan dan mengambil data dari server. Halaman Raw Data menampilkan tabel berisi data yang sudah tersimpan di server. Halaman Chart menampilkan grafik data yang sudah tersimpan di server dari mulai data pertama hingga data terakhir yang masuk. Setiap project memiliki ID dan GUID yang akan digunakan pada masuk ke halaman Info dan perhatikan bagian Channel API. Salin URL API yang berlabel Sending data to channel’ dan panggil pada browser lain. Atau Kamu dapat menggunakan aplikasi seperti Postman untuk memanggil API tersebut. Kamu dapat mengganti tag {value} pada URL API dengan nilai yang ingin disimpan. Karena kita hanya akan menyalakan dan mematikan lampu, maka kita hanya perlu menyimpan nilai 0 dan dapat mengecek data yang sudah masuk pada halaman Raw Data dan Chart. Kamu juga dapat memanggil data yang sudah tersimpan dengan menggunakan URL API yang ada di bawah label Getting data back from channel’ pada halaman Info. Kamu dapat mencoba berbagai API yang tersedia dan melihat hasilnya. Menuliskan Kode Kita sudah mendapatkan API untuk mengambil data dari server AgnosThings. Sekarang kita akan gunakan pada program ESP8266. Buka Arduino IDE dan hubungkan board Wemos D1 Mini ke komputer menggunakan kabel MicroUSB. Pada menu Tools > Board, pilih WeMos D1 R2 & mini. Set CPU Frequency ke 80MHz. Pilih Flash Size ke 4M 1M SPIFFS. Pilih Upload Speed ke 115200. Terakhir set Port ke port USB dimana WeMos terhubung. Setelah itu tuliskan kode program berikut include include ESP8266WiFiMulti WiFiMulti; void setup { // set Wifi SSID dan passwordnya “Password”; } void loop { // tunggu koneksi Wifi if == WL_CONNECTED { HTTPClient http; // ganti dengan URL API Last Feed punyamu sendiri // mulai koneksi dan ambil HTTP Header int httpCode = // httpCode akan bernilai negatif bila error ifhttpCode > 0 { // cetak httpCode ke Serial GET… code %d\n”, httpCode; // bila nilai dari server diterima ifhttpCode == HTTP_CODE_OK { // cetak string json dari server String json = } } else { GET… failed, error %s\n”, } // tutup koneksi HTTP } delay5000; } Penjelasan program Kita menggunakan dua library milik ESP8266, yakni ESP8266WiFiMulti untuk terkoneksi dengan jaringan WiFi, dan ESP8266HTTPClient untuk mengakses halaman HTTP. Pada fungi setup, set parameter addApp dengan SSID dan password jaringan WiFi yang ingin digunakan untuk terhubung ke Internet. Pada fungsi loop, set parameter fungsi dengan URL API projectAgnosThings Kamu. API yang digunakan adalah API untuk mengambil data terakhir last feed. Apabila koneksi berhasil dan server mengirimkan respon, respon server akan kita ambil dengan fungsi Value dari respon ini adalah string json dari value terakhir. Di akhir program, kita memanggil fungsi delay5000 agar program mengulang memanggil API setelah jeda 5 detik. Kamu dapat mengeset waktu tunggu ini lebih cepat atau lebih lambat tergantung kebutuhan nantinya. Upload kode program Kamu kemudian setelah proses upload selesai, buka jendela Serial Monitor melalui menu Tools > Serial Monitor. Bila programmu benar, mestinya WeMos akan mencetak data seperti pada gambar berikut Sembari program jalan dan terus mengecek API setiap 5 detik, coba Kamu perbaharui valuenya menggunakan API untuk mengirim data. Ubah value switchdari 1 menjadi 0, kemudian update lagi menjadi 1, dan mestinya data terakhir yang diterima oleh program kita pun berubah sesuai dengan data terakhir yang sudah kita update ke server. Menyalakan dan Mematikan Lampu Kita sudah bisa memanggil data switch kita dari server AgnosThings. Sampai sini kita masih belum bisa menyalakan dan mematikan lampu. Kita hanya perlu menambahkan pengecekan value jsonnya. Bila valuenya {“value””1″,”code”200} maka kita nyalakan lampu dan bila valuenya {“value””0″,”code”200} kita matikan lampu. include include ESP8266WiFiMulti WiFiMulti; // set variabel pin untuk lampu int lamp = LED_BUILTIN; void setup { // set Wifi SSID dan passwordnya “Password”; // set pin mode ke output pinModelamp, OUTPUT; } void loop { // tunggu koneksi Wifi if == WL_CONNECTED { HTTPClient http; // ganti dengan URL API Last Feed punyamu sendiri // mulai koneksi dan ambil HTTP Header int httpCode = // httpCode akan bernilai negatif bila error ifhttpCode > 0 { // cetak httpCode ke Serial GET… code %d\n”, httpCode; // bila nilai dari server diterima ifhttpCode == HTTP_CODE_OK { // cetak string json dari server String json = // cek value json ifjson == “{\”value\”\”1\”,\”code\”200}”{ // set ke LOW untuk menyalakan digitalWritelamp, LOW; } else { // set ke HIGH untuk mematikan digitalWritelamp, HIGH; } } } else { GET… failed, error %s\n”, } // tutup koneksi HTTP } delay5000; } Penjelasan program Sebelum fungsi setup, kita deklarasikan variable ingeger lamp untuk menyimpan nomor pin yang akan kita gunakan untuk menyalakan dan mematikan lampu. Saya set variabel ini dengan LED_BUILTIN yakni nomor pin LED yang ada pada onboard ESP8266 agar kita mudah dalam proses pengecekan. Bila program sudah berfungsi dengan baik, maka kita bisa kemudian mengubah nilai variabel ini menjadi D1 seperti pada bagan rangkaian pada step 4. Pada fungsi setup kita set pin mode untuk variabel lamp ke mode OUTPUT. dan pada fungsi loop, setelah kode kita menambahkan kode untuk mengecek nilai json yang nantinya digunakan untuk mengeset nilai digital pin lamp. Upload program dan tes dengan mengupdate nilai switch menggunakan API update value. Bila Kamu set value ke 1 dan LED menyala, begitu juga bila value diset ke 0 dan LED mati, berarti program Kamu selesaaaai! 😀 Langkah Terakhir Pastikan rangkaian lampu sudah terhubung dengan relay dan pin D1 pada WeMos terhubung ke pin input signal relay. Kemudian update baris kode int lamp = LED_BUILTIN; menjadi int lamp = D1;. Kemudian Upload lagi programmmu. Apakah lampu besarmu menyala dan mati sesuai harapan?? 😀 Kamu dapat bergabung dengan komunitas programmer ESP8266 di websitenya untuk berkomunikasi, berdiskusi dan mencari ide IoT lainnya menggunakan board ESP8266. ESP8266 hingga detik ini sudah dapat diprogram dengan menggunakan bahasa pemrograman C, Arduino, Lua dan MicroPython. Kedepannya kemungkinan besar perangkat ini akan menjadi perangkat yang paling banyak digunakan karena harganya yang sangat ekonomis dan juga mudah didapatkan.
- Уктէ ዙዡωглፀ отጉг
- Сл φеπ а
- Изижէ гоգիծ
- ንէ цахዴ ι ኮдрዝс
- Дагεф чո ኂοн
Setlampu Rangkaian lampu lengkap dengan dudukan lampu, kabel dan stekernya. Perhatikan bahwa bagian tengah dari salah satu line kabelnya kita putus untuk nantinya dihubungkan ke relay.Selain perangkat-perangkat di atas, Kamu akan memerlukan wifi access point yang terhubung ke internet.Tutorial ini mungkin sudah kadaluwarsa, karena service AgnosThings sudah shutdown. Teknis program boleh jadi masih dapat digunakan, meskipun belum dites ulang. Internet of Things kian marak. Perangkat IoT yang murah meriah dan canggih sudah banyak dan akan terus bermunculan. Berbagai layanan platform IoT pun semakin berkembang dan saling berkompetisi. Ekosistem yang semakin meluas ini berdampak pada membludaknya jumlah penggiat IoT untuk membuat berbagai kreasi. Vision Mobile dalam salah satu reportnya menyebutkan bahwa pada hingga penghujung tahun 2015 ada sekitar 4,5 juta individu developer aktif di seluruh dunia yang mengembangkan perangkat IoT. Pada tutorial ini, Saya akan menunjukkan satu kasus implementasi IoT yang dapat Kamu coba dengan tingkat kesulitan yang rendah dan budget yang ekonomis. Skenarionya adalah membuat perangkat yang dapat menyalakan dan mematikan lampu melalui komputer atau handphone yang terhubung ke internet. Kalo Kamu belum punya gambaran tentang IoT atau Internet of Things, Kamu bisa baca ulasan tentang gambaran umum IoT pada artikel Penjelasan Sederhana mengenai Internet of Things atau CodePolitan Magazine edisi Internet of Things. Berikut adalah video demo hasil akhir dari tutorial ini Baiklah! Klik halaman selanjutnya untuk memulai tutorial! D Persiapan Perangkat dan Alat Untuk dapat mengikuti tutorial ini, Kamu harus mempersiapkan beberapa perangkat berikut Wemos D1 Mini Board ini adalah board wifi kecil berbasis ESP8266. ESP8266 dikenal sebagai modul WiFi yang handal, ekonomis dan komunitas yang besar. ESP8266 inilah yang akan menghubungkan perangkat kita dengan internet via WiFi. Ada banyak varian prototype board berbasis ESP8266, seperti NodeMCU, Adafruit HUZZAH ESP8266, ESPDuino, SparkFun ESP8266 Thing, dan Wemos. Kita sebenarnya bisa langsung memprogram ESP8266 langsung tanpa menggunakan yang breakout board. Tapi kali ini saya menggunakan Wemos D1 Mini karena board ini adalah yang paling murah dan mudah didapatkan dibanding board sejenisnya. Selain itu board ini sudah dilengkapi dengan onboard microUSB dan Serial driver sehingga tidak perlu lagi USB to TTL atau FTDI adapter. Cocok untuk belajar. Board Wemos D1 Mini Relay module Modul ini berfungsi sebagai sakelar digital untuk lampu yang on-offnya akan kita kendalikan menggunakan ESP8266 board. Modul relay Breadboard Kabel jumper Set lampu Rangkaian lampu lengkap dengan dudukan lampu, kabel dan stekernya. Perhatikan bahwa bagian tengah dari salah satu line kabelnya kita putus untuk nantinya dihubungkan ke relay. Rangkaian lampu. Potong salah satu jalur kabelnya untuk nanti dihubungkan ke relay Selain perangkat-perangkat di atas, Kamu akan memerlukan Wifi Access Point yang terhubung ke internet. Access Point ini yang nantinya akan digunakan oleh ESP8266 untuk terkoneksi ke internet. Kamu bisa menggunakan jaringan Wifi rumah kalo punya, sekolah, kantor atau melalui tethering hotspot dari smartphone atau wireless router. Selain itu, Kamu juga bakal memerlukan beberapa alat seperti obeng dan gunting. Install Hardware Package ESP8266 ESP8266 dapat diprogram dengan Arduino IDE. Untuk itu kita akan menginstal terlebih dahulu hardware package untuk ESP8266 pada Arduino IDE. Ada dua jalan untuk itu, yakni melalui board manager pada Arduino IDE, atau mengunduh source code atau git clone dari repo Github. Saya asumsikan Kamu sudah menginstal Arduino IDE di komputermu. Dan untuk menggunakan ESP8266 disarankan untuk menggunakan Arduino IDE ke atas. Kalo Kamu belum menginstal Arduino IDE, unduh terlebih dahulu installernya di sini lalu jalankan untuk menginstal di komputermu. Setelah itu ikuti salah satu langkah di bawah ini untuk menginstal hardware package untuk ESP8266. Via Board Manager Jalankan Arduino IDE Pilih menu File > Preferences Pada kolom "Additional Boards Manager URLs", isikan tautan berikut Kalo kolom Boards Manager sudah ada isinya sebelumnya, pisahkan dengan koma. Pilih menu Tools > Board > Boards Manager..., akan muncul jendela Boards Manager. Pilih "esp8266 by ESP8266 Community" lalu klik tombol install di sebelah kanan bawahnya. Via Git Masuk ke folder Sketchbook location untuk Arduino IDE. Lokasi Sketchbook location dapat dilihat pada menu File > Preferences, pada jendela Preferences bagian atas. Buat folder hardware/esp8266com/ lalu masuk ke dalam folder tersebut. Di dalam folder hardware/esp8266com/ clone repository ESP8266 dengan perintah berikut git clone -depth=1 esp8266 Unduh binary tools untuk ESP8266. Untuk tahap ini kita akan menjalankan script python, maka komputermu harus terisntall python ke atas. Masuk ke folder esp8266/tools/ lalu jalankan perintah berikut python Restart Arduino IDE Merangkai Alat Rangkai semua perangkat menjadi seperti bagan berikut Hubungkan 5V pada Wemos ke VCC relay, GND ke GND dan pin D1 ke pin input signal pada relay. Perhatian karena kita bermain dengan listrik AC bertegangan tinggi, maka pastikan Kamu memasang kabel ke steker dan dudukan lampu dengan rapi, dan masukkan kedua ujung kabel ke relay dengan rapi agar tidak tersentuh saat arus tertutup. Hubungkan kabel listrik ke port C dan NO. Pastikan serabut kabel masuk dengan rapi agar aman dan tidak tersentuh. Pada umumnya ada 3 port pada relay, yang diberi simbol C, NC dan NO. C singkatan dari Common Connection, NC singkatan dari Normally Closed dan NO singkatan dari Normally Opened. Jadi bila kita menghubungkan kedua ujung kabel ke C dan NC, maka rangkaian listrik akan tertutup pada awalnya, dan bila dihubungkan ke C dan NO, maka rangkaian listrik akan terbuka. Kita akan gunakan C dan NO agar lampu tidak menyala saat pertama kali listrik dihubungkan. Membuat Project di AgnosThings Sebenarnya ESP8266 dapat berlaku sebagai Access Point, sehingga perangkat lain seperti komputer dan smartphone dapat terhubung langsung ke ESP8266 dan mengirimkan sinyal perintah tertentu. Namun bila skenarionya demikian, maka kita hanya bisa mengontrol ESP8266 dalam jarak yang terbatas. Pada tutorial kali ini kita akan memanfaatkan salahsatu platform IoT yakni AgnosThings yang akan kita gunakan untuk menyimpan nilai untuk mengindikasikan lampu menyala dan mati. Nantinya perangkat Wemos kita akan kita hubungkan ke internet dan mengambil nilai dari server AgnosThings untuk menentukan apakah lampu harus menyala atau mati. Pertama-tama mauk terlebih dahulu ke website AgnosThings di kemudian registrasi. Setelah proses registrasi selesai, login dengan akun yang sudah Kamu buat melalui halaman login. Kamu akan diarahkan ke halaman dashboard AgnosThings. Sekarang kita akan membuat project di AgnosThings. Project yang kita buat akan menyimpan data yang kita simpan untuk kebutuhan proyek IoT kita. Pilih menu untuk membuat Project/Channel baru. Kamu akan diarahkan ke halaman form untuk membuat project. Isi setiap field form seperti pada gambar di bawah ini. Bagian paling penting adalah kolom Fields. Kolom ini berisi field apa saja yang akan disimpan datanya. Karena tutorial kita hanya memerlukan pengecekan satu nilai saja -lampu menyala atau mati, maka kita hanya akan mengisi kolom ini dengan satu field bernama 'switch'. Form untuk membuat project baru di AgnosThings Daftar project/channel dapat diakses melalui menu Channel List. Setiap project/channel akan memiliki setidaknya tiga halaman fitur yang bisa diamati Info, Raw Data dan Chart. Halaman Info berisi informasi seputar project kita beserta daftar API yang dapat kita gunakan untuk menyimpan dan mengambil data dari server. Halaman Raw Data menampilkan tabel berisi data yang sudah tersimpan di server. Halaman Chart menampilkan grafik data yang sudah tersimpan di server dari mulai data pertama hingga data terakhir yang masuk. Setiap project memiliki ID dan GUID yang akan digunakan pada API. Pada halaman Info, ditampilkan beberapa data project Coba masuk ke halaman Info dan perhatikan bagian Channel API. Salin URL API yang berlabel 'Sending data to channel' dan panggil pada browser lain. Atau Kamu dapat menggunakan aplikasi seperti Postman untuk memanggil API tersebut. Kamu dapat mengganti tag {value} pada URL API dengan nilai yang ingin disimpan. Karena kita hanya akan menyalakan dan mematikan lampu, maka kita hanya perlu menyimpan nilai 0 dan 1. Contoh pemanggilan API menggunakan aplikasi Postman Kamu dapat mengecek data yang sudah masuk pada halaman Raw Data dan Chart. Kamu juga dapat memanggil data yang sudah tersimpan dengan menggunakan URL API yang ada di bawah label 'Getting data back from channel' pada halaman Info. Kamu dapat mencoba berbagai API yang tersedia dan melihat hasilnya. Contoh pemanggilan data dari AgnosThings. Data dikembalikan dalam format JSON Kita sudah mendapatkan API untuk mengambil data dari server AgnosThings. Sekarang kita akan gunakan pada program ESP8266. Buka Arduino IDE dan hubungkan board Wemos D1 Mini ke komputer menggunakan kabel MicroUSB. Pada menu Tools > Board, pilih WeMos D1 R2 & mini. Set CPU Frequency ke 80MHz. Pilih Flash Size ke 4M 1M SPIFFS. Pilih Upload Speed ke 115200. Terakhir set Port ke port USB dimana WeMos terhubung. Setelah itu tuliskan kode program berikut include include ESP8266WiFiMulti WiFiMulti; void setup { // set Wifi SSID dan passwordnya "Password"; } void loop { // tunggu koneksi Wifi if == WL_CONNECTED { HTTPClient http; // ganti dengan URL API Last Feed punyamu sendiri // mulai koneksi dan ambil HTTP Header int httpCode = // httpCode akan bernilai negatif bila error ifhttpCode > 0 { // cetak httpCode ke Serial GET... code %d\n", httpCode; // bila nilai dari server diterima ifhttpCode == HTTP_CODE_OK { // cetak string json dari server String json = } } else { GET... failed, error %s\n", } // tutup koneksi HTTP } delay5000; } Penjelasan program Kita menggunakan dua library milik ESP8266, yakni ESP8266WiFiMulti untuk terkoneksi dengan jaringan WiFi, dan ESP8266HTTPClient untuk mengakses halaman HTTP. Pada fungi setup, set parameter addApp dengan SSID dan password jaringan WiFi yang ingin digunakan untuk terhubung ke Internet. Pada fungsi loop, set parameter fungsi dengan URL API project AgnosThings Kamu. API yang digunakan adalah API untuk mengambil data terakhir last feed. Apabila koneksi berhasil dan server mengirimkan respon, respon server akan kita ambil dengan fungsi Value dari respon ini adalah string json dari value terakhir. Di akhir program, kita memanggil fungsi delay5000 agar program mengulang memanggil API setelah jeda 5 detik. Kamu dapat mengeset waktu tunggu ini lebih cepat atau lebih lambat tergantung kebutuhan nantinya. Upload kode program Kamu kemudian setelah proses upload selesai, buka jendela Serial Monitor melalui menu Tools > Serial Monitor. Bila programmu benar, mestinya WeMos akan mencetak data seperti pada gambar berikut Sembari program jalan dan terus mengecek API setiap 5 detik, coba Kamu perbaharui valuenya menggunakan API untuk mengirim data. Ubah value switch dari 1 menjadi 0, kemudian update lagi menjadi 1, dan mestinya data terakhir yang diterima oleh program kita pun berubah sesuai dengan data terakhir yang sudah kita update ke server. Menyalakan dan Mematikan Lampu Kita sudah bisa memanggil data switch kita dari server AgnosThings. Sampai sini kita masih belum bisa menyalakan dan mematikan lampu. Kita hanya perlu menambahkan pengecekan value jsonnya. Bila valuenya {"value""1","code"200} maka kita nyalakan lampu dan bila valuenya {"value""0","code"200} kita matikan lampu. include include ESP8266WiFiMulti WiFiMulti; // set variabel pin untuk lampu int lamp = LED_BUILTIN; void setup { // set Wifi SSID dan passwordnya "Password"; // set pin mode ke output pinModelamp, OUTPUT; } void loop { // tunggu koneksi Wifi if == WL_CONNECTED { HTTPClient http; // ganti dengan URL API Last Feed punyamu sendiri // mulai koneksi dan ambil HTTP Header int httpCode = // httpCode akan bernilai negatif bila error ifhttpCode > 0 { // cetak httpCode ke Serial GET... code %d\n", httpCode; // bila nilai dari server diterima ifhttpCode == HTTP_CODE_OK { // cetak string json dari server String json = // cek value json ifjson == "{\"value\"\"1\",\"code\"200}"{ // set ke LOW untuk menyalakan digitalWritelamp, LOW; } else { // set ke HIGH untuk mematikan digitalWritelamp, HIGH; } } } else { GET... failed, error %s\n", } // tutup koneksi HTTP } delay5000; } Penjelasan program Sebelum fungsi setup, kita deklarasikan variable ingeger lamp untuk menyimpan nomor pin yang akan kita gunakan untuk menyalakan dan mematikan lampu. Saya set variabel ini dengan LED_BUILTIN yakni nomor pin LED yang ada pada onboard ESP8266 agar kita mudah dalam proses pengecekan. Bila program sudah berfungsi dengan baik, maka kita bisa kemudian mengubah nilai variabel ini menjadi D1 seperti pada bagan rangkaian pada step 4. Pada fungsi setup kita set pin mode untuk variabel lamp ke mode OUTPUT. dan pada fungsi loop, setelah kode kita menambahkan kode untuk mengecek nilai json yang nantinya digunakan untuk mengeset nilai digital pin lamp. Upload program dan tes dengan mengupdate nilai switch menggunakan API update value. Bila Kamu set value ke 1 dan LED menyala, begitu juga bila value diset ke 0 dan LED mati, berarti program Kamu selesaaaai! D Langkah Terakhir Pastikan rangkaian lampu sudah terhubung dengan relay dan pin D1 pada WeMos terhubung ke pin input signal relay. Kemudian update baris kode int lamp = LED_BUILTIN; menjadi int lamp = D1;. Kemudian Upload lagi programmmu. Apakah lampu besarmu menyala dan mati sesuai harapan?? D Kamu dapat bergabung dengan komunitas programmer ESP8266 di websitenya untuk berkomunikasi, berdiskusi dan mencari ide IoT lainnya menggunakan board ESP8266. ESP8266 hingga detik ini sudah dapat diprogram dengan menggunakan bahasa pemrograman C, Arduino, Lua dan MicroPython. Kedepannya kemungkinan besar perangkat ini akan menjadi perangkat yang paling banyak digunakan karena harganya yang sangat ekonomis dan juga mudah didapatkan. Dan buat Kamu yang menyukai tantangan dalam belajar atau berkreasi. Kamu juga bisa mengikuti dua tantangan dari XL Axiata untuk membuat karya IoT, yaitu AgnosThings Savvy Home IOT Challenges dan AgnosThings Smart Power Monitoring IOT Challenges. Tentunya akan ada hadiah bagi kamu yang berhasil memenangkannya. Semoga tutorial ini bermanfaat untuk Kamu dan mendorong Kamu untuk mencoba hal lain yang lebih menantang. Salam coders!