Minggu, 22 Maret 2020

Web Server Cuaca dengan ESP32

Masih dengan topik yang sama dengan blog sebelumnya, kali ini kita akan membuat Web Server Weather Report.
Tidak jauh berbeda dari sebelumnya, kini kita menggunakan sensor suhu. Untuk sensor suhu yang biasa dipakai itu DHT11, DHT22, BME280, BMP180, BMP280, BME180 dan mungkin sensor-sensor suhu lainnya. Perbedaan antarsensor hanya di spesifikasi yang ditampilkan saja misalnya ada yang dapat menampilkan temperatur, kelembaban dan tekanan, atau hanya menampilkan satu atau dua dari hal tersebut. Untuk percobaan ini, aku memakai sensor DHT11.
Okey, let's get it!

Alat dan Bahan 

  1. ESP32 (30 pins)
  2. Kabel jumper female to male (3 buah)
  3. Kabel jumper female to female (2 buah)
  4. DHT11
  5. Breadboard

Rangkaian

Wiring Fritzing Connecting DHT11 Temperature Humidity Sensor with ESP32

Jika kalian DHT11 yang hanya memiliki 3 kaki, kalian bisa mengabaikan salah satu dari kaki DHT11 yang ada di gambar, tepatnya yang tidak disambungkan kabel jumper apapun.
Seperti rangkaian aku buat di bawah ini.


Kode Program





Sama seperti case pada blog sebelumnya, perhatikan bagian variabel (SSID, password, GPIO pins). Untuk melihat blog sebelumnya, bisa ke link ini (https://coretangrace.blogspot.com/2020/03/membuat-web-server-dengan-esp32.html). Dan selesai deh.. Kalian tinggal lihat serial monitor, dan copy IP Address Web Server ESP32 kalian ke Address Bar pada web browser yang kalian biasa pakai. Jika berhasil, kalian akan menemukan tampilan seperti gambar berikut.


Note: Karakter aneh pada temperature disebabkan sensor DHT11 milikku yang sudah sedikit eror karena sering digunakan *maklum masih mahasiswa, modal terbatas hehe*

Oke sekian dari aku untuk blog Web Server, selamat bereksplorasi dan..

STAY SAFE EVERYONE!!

Referensi :



Sabtu, 21 Maret 2020

Membuat Web Server dengan ESP32?

Haloo
Setelah beberapa minggu aku tidak meng-upload konten baru, kini aku akan menulis tentang "Bagaimana Cara Membuat Web Server dengan ESP32" nih.
Oh iya sebelumnya, aku mau bilang buat kalian untuk STAY SAFE and STAY AT HOME GUYS! Jangan pernah meremehkan virus ataupun penyakit lainnya. INTINYA JAGA KESEHATAN YA! hehe..
Dan aku juga berharap Indonesia baik pemerintah, tenaga medis, hingga masyarakat dapat bertahan melewati semua wabah pandemi ini. WE CAN DO IT GUYS!
Oke sekarang langsung aja yuk.

Jadi tugas kali ini itu diberikan di saat COVID - 19 sedang mewabah hebatnya di Indonesia sehingga membuat semua sekolah dan universitas rata-rata di rumahkan alias belajar online. Kebayang gak sih, harusnya ini itu kerja kelompok karena yang punya ESP32 cuma satu orang. Tapi, fortunatelly di kelompok aku itu masing-masing punya ESP32. Walaupun ada nih teman aku yang entah kesambet apa ngebuang ESP32 miliknya. Sayang banget kan:(
Tapi aku sih emang punya gitu kitnya yang aku namakan Sistem Embedded Kit (SE KIT), keren kan hehe.. Aku emang suka ngoprek sensor-sensor gitu sih, meskipun sering banget gagal (keinget zaman PRD waktu TPB huhu).

Okey balik lagi ke judulnya, kita akan membuat Web Server dengan ESP32. HOW?
Yuk ikutin langkah ini.

Alat dan Bahan

  1. ESP32 (30 pins)
  2. Kabel jumper female to male (3 buah)
  3. Resistor 330 ohm (2 buah)
  4. LED (2 buah) * note: disarankan menggunakan LED 5mm dan berbeda warna.
  5. Breadboard

Rangkaian




Kode Program




Gimana? Pasti gagal sih kalau kalian ngikutin 100% kode aku di atas hehe..
Kalau di perhatikan lagi, pada bagian define variabel ssid dan password pada kode emang aneh gak sih..
Nah itu sebenarnya adalah nama dari koneksi yang sedang tersambung ke perangkat kalian atau bisa dibilang Wi-Fi atau hotspot siapa yang sedang kalian pakai beserta dengan password koneksi tersebut. Di kode itu, aku memakai koneksi Hotspot? Tanya yang punya dulu dengan password I******* (maaf di sensor hehe). Intinya bagian itu disesuaikan sama koneksi yang sedang digunakan saja. Dan tentunya jangan lupa untuk menyesuaikan pin GPIO pada ESP32 dengan define pada Arduino IDE.
Selain itu, saat aku melakukan eksplorasi ini, aku berulang kali ganti kabel jumper karena kabel jumper milikku sudah banyak yang sedikit rusak, jadi pastikan juga kabel jumper yang kalian pakai dalam kondisi baik ya..

Setelah semuanya sudah berjalan, sekarang buka serial monitor dan akan muncul seperti gambar berikut.



Copy bagian IP Address di Host dan ketik pada Address Bar di Web Browser kalian. IP Address itu merupakan IP Address dari Web Browser ESP32 milik kalian.
Dan selesaii.. Di bawah ini, kalian bisa lihat hasil simulasi percobaan aku. Selamat mencoba!

Oh iya, blog selanjutnya juga berbicara tentang Web Server Cuaca dengan ESP32. Jangan lupa dikunjungi di link ini https://coretangrace.blogspot.com/2020/03/web-server-cuaca-dengan-esp32.html

Referensi :
https://randomnerdtutorials.com/esp32-web-server-arduino-ide/

Jumat, 06 Maret 2020

Canteens Detector?

Pada kesempatan kali ini, aku akan menuangkan gagasan-gagasan aku untuk menyelesaikan "permasalahan" yang ada di sekitarku, khususnya di lingkungan kampus ITB. Gagasan aku berupa membuat suatu sistem bernama Canteens Detector. Berikut penjelasannya.
  • Identifikasi Masalah
Kampus ITB memiliki banyak sekali kantin, namun kantin-kantin tersebut saling berjauhan satu sama lain. Jarang sekali terdapat dua kantin yang berdekatan. Ditambah lagi, tidak ada yang mengetahui kantin mana saja yang sedang tutup ataupun sudah/masih buka. Hal ini membuat para mahasiswanya terkadang memiliki dilema untuk mengunjungi suatu kantin, apalagi jika gedung kuliahnya jauh dari posisi-posisi kantin atau jika ingin mencoba suatu menu dari suatu kantin yang posisinya jauh dari gedung kuliah mereka.
Hasil gambar untuk i want to canteen animation
  • Deskripsi Singkat Solusi
Untuk menyelesaikan solusi ini, aku memiliki sebuah ide yaitu kita dapat memasang sensor di setiap kantin. Sensor tersebut berupa sensor ultrasonik dan sensor PIR. Sensor ultrasonik digunakan untuk mendeteksi apakah ada aktivitas keluar-masuk di kantin tersebut dengan mengukur jarak dari orang yang melakukan perpindahan dari satu sensor ke sensor ultrasonik lainnya sedangkan sensor PIR digunakan untuk mendeteksi perubahan infra red yang terjadi di dalam ruangan.
Untuk pengolahan datanya sendiri sama seperti mengumpulkan data kecepatan dari suatu kendaraan yang melintas dengan menggunakan sensor ultrasonik, di sini pun kita akan melakukan perhitungan jarak dengan orang yang melintas (keluar-masuk gedung kantin dengan melalui pintu kantin, jadi dipasang pada pintu batas ruang dalam kantin dengan luar kantin).
Cara menampilkan hasilnya yaitu menggunakan LCD Display dan koneksi bluetooth ke HP. Dari LCD Display, jika seorang mahasiswa ingin mengetahui letak kantin yang available, mahasiswa tersebut dapat mencari LCD Display terdekat dari posisinya lalu menghubungkan perangkat Android mahasiswa dengan LCD tersebut. LCD Display mendapat input dari ESP32 communication.
  • Spesifikasi Desain Sistem
Desain sistemnya sendiri aku memakai alat-alat di bawah ini :
  1. Beberapa mikrokontroler ESP32 WROOM 32 (30 pins). Tetapi karena kita hanya membuat prototype terlebih dahulu, kita hanya menggunakan 2 saja.
  2. Sensor PIR dengan besaran yang diukur yaitu perubahan infra red yang terjadi dalam ruangan.
  3. Sensor ultrasonik dengan besaran yang diukur adalah perpindahan suatu objek.
  4. LCD Display karena masih dalam tahap prototype bisa menggunakan I2C 16x2 LCD Display.
  5. Komunikasi yang digunakan oleh kedua mikrokontroler pada prototype ini yaitu Client-Server Wi-Fi Communication. Mungkin pada kesempatan yang lebih advance dapat menggunakan protokol komunikasi IoT seperti MQTT.
  6. Bluetooth series dengan aplikasi Serial Bluetooth Terminal yang sudah terpasang di handphone, guna menghubungkan antara mikrokontroler-LCD dengan user.
  • Skenario Penggunaan Aplikasi
Skenario dari penggunaan aplikasi penerapan sistem embedded dalam solusi ini dapat dilihat melalui diagram berikut.
Dari diagram di atas, dijelaskan bahwa saat seseorang datang dan membuka pintu kantin, maka secara otomatis Sensor PIR akan aktif. Namun untuk mendapatkan respons bahwa kantin tersebut buka, kita harus memastikan bahwa orang tersebut melewati Sensor Ultrasonik yang kita pasang juga. Pada saat kedua sensor mengirimkan sinyal aktif yang berarti adanya suatu pergerakan di suatu kantin, maka kantin tersebut berpeluang besar menyatakan bahwa kantin tersebut sedang buka. Sinyal tersebut akan di kirimkan pada LCD yang terpasang pada mikrokontroler client di setiap gedung perkuliahan. Hal ini bertujuan agar menjangkau seluruh tempat yang strategis dan selalu dikunjungi oleh mahasiswa. Tak hanya sampai disitu, Canteens Detector ini juga menyediakan fitur bagi mahasiswa yang berada di sekitar LCD - mikrokontroler client untuk mengakses informasi secara langsung melalui bluetooth handphone mereka.
  • Rancangan Hardware
Pada bagian ini, aku akan menampilkan diagram berupa rancangan dari sistem hardware yang memperlihatkan cara terhubungnya antarkomponen.
  • Rancangan Software
Untuk alur berpikir dalam pembuatan programnya, dapat dilakukan seperti activity diagram berikut.
Sekian gagasan dari aku mengenai Canteens Detector. Jika ada yang memiliki ide lain, bisa disampaikan melalui kolom komentar. Sampai berjumpa di blog selanjutnya.
Salam hangat,

Rehuel Grace Marbun
18218006
Sistem dan Teknologi Informasi
Institut Teknologi Bandung

Minggu, 23 Februari 2020

Sensor Suhu X I2C LCD

 Hello!
Welcome back to my blog..
Hari ini aku bakal share tentang pembacaan sensor suhu dengan I2C LCD. Tapi, kali ini juga lumayan dibutuhkan improvisasi dalam membuat rangkaian dan membuat kodenya. Okey tanpa basa-basi lagi, yuk kita mulai.

[[ Peralatan : ]]

  1. Kabel jumper male - female (3 buah)
  2. Kabel jumper female - female (4 buah)
  3. ESP32 WROOM 32 (30 pins)
  4. Kabel USB Type A
  5. Arduino IDE (yang sudah terinstall library Adafruit dan LiquidCrystal)
  6. Breadboard
  7. DHT11
  8. I2C LCD 16x2
[[ Steps :: ]]
  • Rangkaian


  • Code 




[[ Simulasi :: ]]




Tips ::
Gimana-gimana.. Udah pada bisa gak?
Kalau belum, selamat datang kembali di pojok tips hehe..
Sama seperti modul percobaan sebelumnya, kali ini juga banyak sekali kegagalan yang terjadi.
Oleh karena itu, aku akan share nih beberapa kemungkinan yang bisa saja membuat percobaanmu gagal.
  1. Bisa cek nih port GPIO pada ESP32 kalian, mungkin ada beberapa GPIO yang udah mulai kurang optimal kerjanya jadi pindahin ke GPIO lainnya dan jangan lupa untuk re-define pin GPIO nya pada kodingan ya gais!
  2. Masalah kabel nih, baik jumper maupun USB. Disarankan untuk memakai kabel data ya, soalnya kalau gak pakai kabel data portnya ESP32 tidak terdeteksi oleh Arduino IDE. Kabel jumper juga jangan lupa di cek karena kabel jumper bisa saja sudah rusak atau putus di bagian dalamnya.
  3. Cek sensor dan LCD kalian, bisa saja sensor ataupun LCD kalian mengalami kerusakan pada komponennya, dan itu bisa menyebabkan pada LCD ataupun serial monitor menampilkan hasil yang aneh seperti NaN.
Okey segitu dulu ya teman-teman.. Selamat mencoba!
Dan jangan lupa share pengalaman kalian dalam bereksperimen dengan ESP32 di blog ini..

Jumat, 14 Februari 2020

Say Hello with I2C LCD

Halo, aku kembali..
Di percobaan kali ini jujur banyak banget kegagalannya, mulai dari gak bisa di-download library LiquidCrystal_I2C karena gak ketemu di Manage Library, code yang gagal update karena Port gak kedeteksi di Arduino IDE, yang awalnya pake OLED terus ganti ke LCD 16x2 karena eror saat update kodenya sampai gonta-ganti Board ESP32 karena dikira rusak.
Jadi di blog kali ini aku gak hanya membahas tentang "BAGAIMANA" tetapi "MENGAPA" biar bisa saling berbagi tips mengatasi kegagalan nih, hehe..
Oke langsung mulai  aja ya..

[[ Peralatan :: ]]

  • Kabel jumper female to female (4 buah)
  • USB Type A
  • I2C LCD 16x2
  • ESP32 Board (30 pins)
  • Arduino IDE (yang telah diinstall board dan port untuk ESP32, jika belum cek bit.ly/InstalasiBoardESP32)

[[ Steps :: ]]

Instalasi Library
  • Install library LiquidCrystal_I2C. Bisa di download di link berikut. (https://github.com/marcoschwartz/LiquidCrystal_I2C/archive/master.zip)
  • Selesai download, unzip folder dan rename folder from LiquidCrystal_I2C-master ke LiquidCrystal_I2C.
  • Move folder LiquidCrystal_I2C ke folder Arduino IDE installation libraries.
  • Finally, re-open your Arduino IDE.
Kode
  • Menampilkan ke layar address dari I2C LCD

Setelah berhasil compile dan update akan terlihat seperti gambar berikut pada serial monitor.

  • Menampilkan text pada I2C LCD


Rangkaian

[[ Simulasi :: ]]




Tips & Trick :
Jadi, di awal tadi kan aku udah bilang kalau di percobaan ini aku sering banget gagal.
Nah aku mau bagi tips nih ke kalian.
Masalah 1 : Cek kode programnya, apakah sudah sesuai atau belum. Untuk OLED pada bagian #define OLED_RESET diisi dengan -1 bukan 4. Untuk alamatnya di OLED juga diganti jadi 0x3C.
Untuk I2C LCD 16x2, setelah mendapatkan address dari I2C LCD nya, masukkan nilai tersebut pada bagian LiquidCrystal_I2C(address, ledColumns, ledRows).
Masalah 2 : Pastikan librabry LiquidCrystal_I2C telah ada di libraries folder Arduino IDE kamu.
Masalah 3 : Pakai kabel data untuk USB nya, tidak memakai kabel untuk powerbank (gatau sih tapi sewaktu percobaan, aku gagal updating mulu >.< jadi apa salahnya mencegah hehe).
Masalah 4 : Pastikan kamu sudah mengatur bagian PORT ya (kalau di aku itu Port nya COM4, tapi ada juga di COM3).

Segitu sih kendala yang aku hadapi sepanjang percobaan ini, semoga bisa membantu.. Terimakasih sudah berkunjung!

Minggu, 09 Februari 2020

Eksperimen dengan Sensor Suhu

Seperti minggu-minggu sebelumnya, aku kembali dengan membawa pengalaman baru bersama ESP32. Oh iya sebelumnya, kalau ada yang ingin ditanyakan ataupun ada kesulitan dengan experience-experience ESP32 ini, bisa banget comment di kolom komentar..
Dan sesuai dengan judul postingan hari ini, kita akan bermain dengan sensor suhu!
Tanpa basa-basi lagi, ayo kita mulai eksperimennya..

[[ Peralatan :: ]

  1. ESP32 Devkit V1 (30 pins)
  2. Laptop / PC
  3. Arduino IDE (yang sudah terinstall board dan portnya)
  4. Kabel USB Type A to MicroUSB
  5. Breadboard
  6. Kabel Jumpe Male to Female (5 buah)
  7. DHT 11 (bisa juga menggunakan sensor suhu lainnya seperti DHT 22, BMP280, BME280)
[[ Steps :: ]
  • Rangkaian
    tips : Selama proses percobaan ini, aku menemui beberapa kendala diantaranya munculnya kalimat kesalahan yaitu 'sensor suhu tidak terdeteksi' pada serial monitor. Jika kamu menemui masalah yang sama, atur ulang rangkaianmu, dan buatlah semua komponen yang terhubung dengan kaki-kaki DHT11 (3 pins) tersebut menjadi satu blok (persis seperti gambar di atas).

    Kesalahan lain yang sering terjadi yaitu pada kode programnya. Seperti yang akan dibahas berikutnya.

  • Code

    Dalam kode di atas, ada pemakaian suatu library dari Adafruit dan ESPAsyncWebServer yang dapat kita peroleh melalui Tools >> Board >> Board Manager >> lalu ketik Adafruit Unified >> lalu pilih install. Begitupun dengan ESPAsyncWebServer.
    Kode diatas juga terdapat 3 pilihan sensor yang di define yaitu DHT11, DHT22, DHT21. Biasanya banyak orang yang salah dan mengira semua type itu di uncomment, tetapi yang di uncomment hanya type DHT yang dipakai saja, dalam percobaan ini kita hanya memakai DHT11, maka uncomment hanya DHT11, type yang lain bisa di hapus.
    Untuk define DHT pin, dapat dilakukan di pin mana saja asal pada kode juga diganti sesuai letak pin, dan kebetulan di kode tertera DHTPIN 27, maka taruh di pin D27.

    Oke setelah selesai, mari kita simulasikan..
    Untuk langkah simulasi lebih rinci, bisa banget kunjungin blog pertama aku di sini bit.ly/InstalasiBoardESP32.
[[ Simulasi :: ]]

Weather Database with ESP32 using MySQL and PHP

Halo.. Ini blog terakhir aku untuk semester ini ya karena awalnya blog ini ditujukan untuk tugas Sistem Embedded sih. Kalau untuk selanjut...