Minggu, 29 Maret 2020

Data Visualization ESP32 and DHT11 - Temperature and Humidity in Real Time Charts

Haloo
Di blog kali ini, aku akan nulis tentang pengalamanku membuat visualisasi data temperature dan humidity secara real time di web server yang juga akan kita buat juga. Sebelumnya, aku juga mau cerita nih, dalam proses pembuatan ini, aku harus menunggu paket SE Kit aku sampai di rumah, karena minggu lalu aku akhirnya memutuskan untuk kembali ke rumah (fyi, aku anak rantau yang jauh dari rumah hehe). Kenapa di kirim? ya menghindari SE Kit aku di cekal di bandara aja sih kan sayang banget kalau ternyata gak dibolehin bawa.
(Fyi, SE Kit = Sistem Embedded Kit)
Okey sekarang kembali ke topik.
Sesuai dengan judul blog kali ini, ayo kita mulai eksperimennya.

Peralatan

  1. Jumper Cable female to male (3 pcs)
  2. Jumper Cable female to female (2 pcs)
  3. Breadboard
  4. ESP32 (30 pins)
  5. USB Cable Type A
  6. DHT11

Rangkaian

Rangkaiannya masih sama dengan rangkaian sebelumnya yang menggunakan DHT11. (Bisa banget nih singgah di blog-blog sebelumnya hehe)



Kode Program

Jangan lupa untuk download library CircusESP32Lib terlebih dahulu. Kemudian extract dan copy ke direktori tempat file arduino kamu install.
#include //CircusESP32Lib.h *hapus tanda // dan tambahkan < >*
#include  //DHT.h *hapus tanda // dan tambahkan < >*
// ------------------------------------------------
// These are the CircusESP32Lib related declarations
// ------------------------------------------------
char ssid[] = "your_SSID_here"; // Place your wifi SSID here
char password[] =  "your_password_here"; // Place your wifi password here
char token[] = "your_token_here"; // Place your token, find it in 'account' at Circus. It will identify you.
char server[] = "www.circusofthings.com";
char temperature_key[] = "xxxxx";  // Place the Key of the signal you created at Circus Of Things for the Temperature
char humidity_key[] = "xxxx";  // Place the Key of the signal you created at Circus Of Things for the Humidity
CircusESP32Lib circusESP32(server,ssid,password); // The object representing an ESP32 to whom you can order to Write or Read
// ------------------------------------------------
// These are the Temperature Example related declarations
// ------------------------------------------------
#define DHTPIN 27      // digital of your ESP32 connected to DHT11
#define DHTTYPE DHT11 // exact model of temperature sensor DHT 11 for the general library
DHT dht(DHTPIN, DHTTYPE); // The object representing your DHT11 sensor
void setup() {
   Serial.begin(115200); // Remember to match this value with the baud rate in your console
   dht.begin(); // Set the DHT11 ready
   circusESP32.begin(); // Let the Circus object set up itself for an SSL/Secure connection
}
void loop() { // Now that all is set up, let's begin with the tasks
   delay(10000);
   // Let the library get the Temperature that DHT11 probe is measuring.
   float t = dht.readTemperature(); 
   if (isnan(t))
       t=-1; // if so, check the connection of your DHT11 sensor... something is disconnected ;-)
   float h = dht.readHumidity();
   if (isnan(h))
       h=-1; // if so, check the connection of your DHT11 sensor... something is disconnected ;-)
   // Show values, just for debuging
   Serial.println(""); Serial.print("Temperature: "); Serial.println(t); Serial.print("Humidity: "); Serial.println(h);
   // Report the values gathered by the sensor to the Circus
   circusESP32.write(temperature_key,t,token); // Report the temperature measured to Circus.
   circusESP32.write(humidity_key,h,token); // Report the humidity measured to Circus.
}

How to get temperature_key, humidity_key dan token?


  • Buka dan buat akun kamu di https://circusofthings.com/Sign up on Circus
  • Jangan lupa verifikasi via email ya. Setelah itu kamu masuk ke 'Account' dengan klik profile icon di pojok kanan dan copy bagian token pada profil kamu dan paste ke token[] pada kode program.

    • Setelah itu pilih Workshop. Lalu klik Add Signal.
    Enter at workshopAdd signal
    • Kemudian atur nama tab signal, di sini aku set dengan Temperature dan Humidity (maafkan itu aku typo hehe.


    • Copy key yang ada di bawah "Temperature" dan "Humidity" dan buat ke variabel temperature_key[] dan humidity_key[].
    • Selesai.

    Simulasi

    Sekian blog hari ini.
    Tetap sehat semuanya dan STAY AT HOME ya teman-teman.

    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 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

    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...