Projek M4 Praktikum Mikroposessor&Mikrokontroller


MODUL 4 MIKROPOSESSOR & MIKROKONTROLLER

[KEMBALI KE MENU SEBELUMNYA]


MODUL 4

"Sistem Peringatan Dini Flash Flood Menggunakan Multi Sensor Berbasis STM32 pada Daerah Batu Busuak"

    Banjir bandang merupakan salah satu bencana alam yang sering terjadi secara mendadak dengan daya rusak yang tinggi, terutama di daerah aliran sungai. Keterlambatan dalam penyampaian informasi mengenai kenaikan debit air dan curah hujan sering kali menjadi penyebab utama besarnya kerugian materiil maupun korban jiwa. Oleh karena itu, diperlukan sebuah sistem mitigasi bencana yang mampu bekerja secara real-time, otomatis, dan akurat untuk memberikan peringatan dini kepada masyarakat sekitar.

    Proyek ini merancang sebuah Early Warning System (EWS) Banjir Bandang cerdas memanfaatkan mikrokontroler STM32F103C8T6 (Blue Pill) berbasis ARM Cortex-M3. Sistem ini mengintegrasikan tiga parameter sensor utama: sensor hujan untuk mendeteksi intensitas presipitasi, sensor ultrasonic untuk memantau ketinggian/luapan permukaan air sungai, dan sensor water flow FS300A untuk mengukur kecepatan debit arus air.

    Data dari ketiga sensor tersebut diolah menggunakan metode evaluasi matriks risiko akumulatif secara non-blocking di dalam program. Hasil analisis risiko dikategorikan menjadi tiga tingkatan status aktual (AMAN, SIAGA, BAHAYA) yang langsung dieksekusi menjadi indikator output berupa fluktuasi warna LED, bunyi intermiten/konstan pada buzzer, serta visualisasi data sensor yang informatif pada layar LCD 16x2 via komunikasi I2C. Sistem ini diharapkan dapat mengoptimalkan waktu evakuasi mandiri warga sebelum luapan banjir bandang mencapai pemukiman.


2. Tujuan[Kembali]    

   1. Merancang dan mengimplementasikan Sistem Peringatan Dini (Early Warning System) Flash Flood berbasis mikrokontroler STM32F103C8T6 BluePill untuk memonitoring potensi banjir bandang di kawasan rawan  seperti daerah Batu Busuak secara real-time.

2. Mengintegrasikan multi-sensor yang terdiri dari Rain Sensor YL-83 (deteksi intensitas curah hujan lokal), Ultrasonic Sensor HC-SR04 (pembacaan level kenaikan permukaan tinggi air), dan Water Flow Sensor YF-S201 (pemantauan laju debit arus air sungai) ke dalam satu kesatuan sistem pembuat keputusan matriks risiko.

3. Menerapkan sistem kendali berbasis non-blocking memanfaatkan penanda waktu internal dan interupsi eksternal (EXTI) pada STM32 untuk memproses sinyal frekuensi pulsa dari sensor aliran air tanpa mengganggu kontinuitas pembacaan sensor lainnya.

4. Memberikan indikasi keluaran (output) yang informatif dan responsif berupa visualisasi data pada LCD I2C, penanda level bahaya berkala via LED Indicator (Hijau, Kuning, Merah), serta peringatan suara darurat melalui Buzzer sebagai mekanisme instruksi evakuasi mandiri bagi warga sekitar.                                                   

3. Alat dan Bahan[Kembali]

PERANGKAT KERAS PENDUKUNG

1. Voltmeter

DC Voltmeter merupakan alat yang digunakan untuk mengukur besar tengangan pada suatu komponen. Cara pemakaiannya adalah dengan memparalelkan kaki2 Voltmeter dengan komponen yang akan diuji tegangannya.
 
Karakteristik, Prinsip Kerja, Dan Bagian Voltmeter 


Berikut adalah Spesifikasi dan keterangan Probe DC Volemeter





2.ST-LINK





3. Lem Tembak

4.Kabel Jumper




KOMPONEN UTAMA:

1.STM32F103C8T6


Model : STM32F103C8T6

Core : ARM32 Cortex-M3 CPU

Clock : 72 MHz

Memory : 64K Flash + 20K SRAM

GPIO : 32 pin

ADC : 10 channel dengan resolusi 12-bit

PWM : 15 pin

Koneksi : USART, USB, SPI, I2C, CAN BUS

EEPROM –  SRAM 20KB 

Jumlah Pin I/O Digital 22 (6 PWM)

Jumlah Pin I/O Analog 8

    

    STM32 Blue Pill merupakan salah satu board mikrokontroller buatan STMicroelectronics yang cukup populer pemakaiannya saat ini. Mikrokontroler yang digunakan adalah STM32F103C8 yang berbasis ARM Cortex M3. 

 

    Berdasarkan spesifikasi diatas, terlihat bahwa dari segi kapasitas memori baik RAM maupun Flash, STM32 Blue Pill memiliki keunggulan dibanding dengan Arduino, meskipun pada STM32 Blue Pill tidak memiliki EEPROM. Dengan kapasitas memori yang cukup besar tersebut maka implementasi FreeRTOS sangat mungkin dilakukan dengan menggunnakan board mikrokontroller ini. Selain itu dari segi clock speed dan jumlah pin I/O, Blue Pill juga lebih unggul dibanding Arduino. Meskipun begitu, yang menjadi kelemahan utama SM32 Blue Pill ini adalah diperlukannya modul antarmuka tambahan untuk melakukan komunikasi serial dengan PC. Atau dengan kata lain untuk melakukan upload program masih harus dibutuhkan modul tambahan yang dinamakan bootloader. Tambahan modul interfacing ini cukup menyulitkan penulis saat praktikum karena pada beberapa kasus tidak bekerja. Selain itu dari sisi pemrograman, SM32 Blue Pill ini juga cukup lebih sulit dibanding dengan pemrograman pada Arduino karena meskipun dapat menggunakan bahasa pemrograman yang sama, sejumlah library juga harus dicari dan pencariannya tidak terlalu mudah karena komunitas online board mikrokontroller ini belum terlalu berkembang seperti Arduino. 


2.Rain Sensor YL-83




Komponen ini terutama terdiri dari dua bagian:
  • Pelat konduktif yang mendeteksi air melalui kemampuannya menghantarkan listrik.
  • Modul komparator yang mengubah sinyal papan menjadi nilai analog atau digital.

Ketika tetesan air hujan jatuh ke pelat sensor, tetesan tersebut menghubungkan kontak logam di permukaan, menyebabkan perubahan resistansi. Perubahan ini diproses oleh modul komparator, yang menghasilkan nilai analog antara 0 dan 1023 atau output digital (0 atau 1) tergantung bagaimana Anda ingin menggunakannya.

Sensor ini adalah sangat serbaguna dan dapat disesuaikan dengan proyek yang berbeda. Fitur utamanya meliputi:

  • Daya dari 3.3 hingga 5V, cocok dengan sebagian besar papan Arduino.
  • Dua output: digital (DO) dan analog (AO).
  • Sensitivitas yang dapat disesuaikan menggunakan potensiometer bawaan.
  • Desain ringkas dengan ketahanan terhadap oksidasi berkat permukaan berlapis nikel.


3.Ultrasonic Sensor HC-SR04


    merupakan sensor yang menggunakan gelombang ultrasonik. Gelombang ultrasonik yaitu gelombang yang umum digunakan untuk mendeteksi keberadaan suatu benda dengan memperkirakan jarak antara sensor dan benda tersebut. Sensor ini berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik begitu pula sebaliknya. Gelombang ultrasonik memiliki frekuensi sebesar 40.000 Hz. Bunyi tersebut tidak dapat didengar oleh telinga manusia. Bunyi tersebut dapat didengar oleh hewan tertentu seperti anjing, kelelawar dan kucing. Bunyi gelombang ultrasonik dapat merambat melalui zat cair, padat dan gas. Benda cair merupakan media merambat yang paling baik untuk sensor ultrasonik jika dibandingkan dengan benda padat dan gas. Oleh karena itu, sensor ultrasonik banyak digunakan pada kapal selam dan alat khusus untuk mengukur kedalaman air laut. 


Berikut ini cara kerja sensor ultrasonik secara detail :

  Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi dan durasi waktu tertentu. Sinyal tersebut memiliki frekuensi di atas 20 kHz. Frekuensi yang umum digunakan untuk mengukur jarak benda yaitu 40 kHz.

  Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan sekitar 340 m/s. Ketika membentur suatu benda, maka sinyal tersebut akan dipantulkan oleh benda tersebut.

  Sinyal akan diproses untuk menghitung jarak benda tersebut setelah gelombang pantulan sampai di alat penerima.


    Sensor ultrasonik memiliki 4 pin, pin Vcc, Gnd, Trigger, dan Echo. Pin Vcc digunakan sebagai listrik positif dan Gnd sebagai ground. Pin Trigger digunakan untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap sinyal pantul dari benda. Cara menggunakan sensor ini yaitu ketika diberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40 kHz. Selanjutnya, sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut.

4.Water Flow Sensor FS300A




    Water flow sensor FS300A menggunakan teknologi Hall-effect untuk mendeteksi kecepatan aliran air. Ketika air melewati rotor, rotor berputar, yang mengaktifkan core magnetik untuk mengaktifkan tindakan switch. Sensor Hall-effect menghasilkan sinyal pulsa yang sesuai dengan kecepatan aliran, sehingga pengguna dapat mendeteksi kecepatan aliran dengan mengamati pulsa tersebut.

5.LCD 16x2 dengan Modul I2C

LCD 16x2 dengan modul I2C sebenarnya adalah LCD 16x2 biasa yang telah dipasangi sebuah "backpack" atau modul adaptor I2C di bagian belakangnya. Modul ini berisi chip (umumnya PCF8574 atau PCF8574A) yang bertindak sebagai port expander.

  • Jumlah Pin yang Dibutuhkan:

    • Dengan modul I2C, Anda hanya memerlukan 4 pin untuk menghubungkan LCD ke Arduino:

      • VCC: Ke 5V Arduino.

      • GND: Ke GND Arduino.

      • SDA (Serial Data Line): Ke pin SDA Arduino (A4 pada Uno, Leonardo, dll.).

      • SCL (Serial Clock Line): Ke pin SCL Arduino (A5 pada Uno, Leonardo, dll.).

    • Modul I2C itu sendiri memiliki potensiometer kecil untuk mengatur kontras, jadi Anda tidak perlu potensiometer eksternal lagi. Beberapa modul juga memiliki jumper untuk mengendalikan backlight.

  • Prinsip Kerja:

    • Modul I2C mengubah komunikasi paralel LCD menjadi komunikasi serial I2C.

    • Arduino mengirimkan data dan perintah ke modul I2C hanya melalui dua kabel (SDA dan SCL) menggunakan protokol I2C.

    • Chip PCF8574 pada modul I2C kemudian akan "menerjemahkan" data serial ini menjadi sinyal paralel yang dibutuhkan oleh LCD dan mengirimkannya ke pin-pin LCD yang relevan.

  • Keuntungan:

    • Menghemat pin digital Arduino secara drastis! Dari 6-11 pin menjadi hanya 2 pin data (SDA dan SCL). Ini sangat berharga untuk proyek kompleks.

    • Pengkabelan jauh lebih sederhana dan rapi, mengurangi risiko kesalahan koneksi.

    • Membuat kode lebih ringkas dan mudah dipahami karena library I2C mengurus detail komunikasi paralel di baliknya.

    • Satu bus I2C dapat menampung banyak perangkat I2C lainnya (misalnya, sensor suhu, RTC, dll.) secara bersamaan, selama setiap perangkat memiliki alamat I2C yang unik.

  • Kekurangan:

    • Sedikit lebih mahal karena ada modul I2C tambahan.

    • Sedikit lebih lambat dalam kecepatan komunikasi dibandingkan koneksi paralel langsung (meskipun perbedaannya tidak signifikan untuk aplikasi tampilan karakter sederhana).

    • Anda perlu mengetahui alamat I2C modul Anda (umumnya 0x27 atau 0x3F), dan menginstal library LCD I2C yang benar.


6.LED Indicator




7.Buzzer 5V



    adalah sebuah komponen elektronika yang dapat menghasilkan getaran suara berupa gelombang bunyi. Buzzer elektronika akan menghasilkan getaran suara ketika diberikan sejumlah tegangan listrik dengan taraf tertentu sesuai dengan spesifikasi bentuk dan ukuran buzzer elektronika itu sendiri. Pada umumnya, buzzer elektronika ini sering digunakan sebagai alarm karena penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka buzzer elektronika akan menghasilkan getaran suara berupa gelombang bunyi yang dapat didengar manusia.

8. Resistor

Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika (V=I R). 
Jenis Resistor yang digunakan disini adalah Fixed Resistor, dimana merupakan resistor dengan nilai tetap terdiri dari film tipis karbon yang diendapkan subtrat isolator kemudian dipotong berbentuk spiral. Keuntungan jenis fixed resistor ini dapat menghasilkan resistor dengan toleransi yang lebih rendah.
Cara menghitung nilai resistor:
Tabel warna

Contoh :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau   = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 4 : Perak  = Toleransi 10%
Maka nilai resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.

Spesifikasi


 
9. Power Adepter





Spesifikasi :


Tegangan keluaran (Output Voltage): 5 Volt DC

Arus keluaran (Output Current): 1 A – 2 A (umumnya 1000 mA – 2000 mA)

Tegangan masukan (Input Voltage): 100 – 240 Volt AC, 50/60 Hz

Daya keluaran (Output Power): ±5 – 10 Watt

Jenis konektor: Port USB tipe A atau kabel tetap (micro USB / USB Type-C)

Polaritas output: Positif di bagian dalam konektor, negatif di bagian luar (standar DC)

Efisiensi: ≥ 80%

Perlindungan: Overload, overvoltage, dan short circuit protection


10. Bread Board 




Berdasarkan gambar di atas, fungsi dari masing-masing jalur koneksi pada breadboard dengan keterangan warnanya yaitu sebagai berikut :

 1. Jalur warna merah digunakan untuk menempatkan pin 5V atau kutub positif  untuk dihubungkan ke kutub positif komponen lain. 

2. Jalur warna biru digunakan untuk menempatkan pin GND atau kutub negatifuntuk dihubungkan ke kutub negatif komponen lain.

 3. Jalur warna hijau digunakan untuk menempatkan pin digital  untuk dihubungkan ke komponen lain. Selain itu, di bagian tengah papan breadboard terdapat ruang kosong yang masing-masing pinggirannya terdapat ujung jalur vertikal. Fungsi dari ruang kosong ini adalah untuk menancapkan langsung ic component.

                                            

 
                                                                                     
PERANGKAT LUNAK
1.Software Pendukung(STM32CubeIDE)


2.Proteus 8 Profesional 





4. Dasar Teori [Kembali]

  4.1  Mikrokontroler STM32F103C8T6 (Blue Pill)  

STM32F103C8T6 adalah mikrokontroler 32-bit berbasis prosesor ARM Cortex-M3 yang diproduksi oleh STMicroelectronics. Mikrokontroler ini bekerja dengan frekuensi clock hingga 72 MHz, menggunakan arsitektur RISC (Reduced Instruction Set Computer) yang memiliki kecepatan eksekusi instruksi jauh lebih tinggi dibandingkan dengan mikrokontroler 8-bit konvensional (seperti AVR atau Arduino Uno).

 Mikrokontroler ini memiliki memori Flash sebesar 64 KB untuk penyimpanan program dan SRAM sebesar 20 KB. Fitur-fitur periferal yang terintegrasi di dalamnya meliputi:
  • Nested Vectored Interrupt Controller (NVIC): Mengelola interupsi eksternal dengan latensi rendah secara real-time.

  • General Purpose Timers (TIMx): Timer 16-bit yang dapat digunakan untuk pencacah pulsa, PWM, maupun generator delay mikrodetik.

  • Protokol Komunikasi: Mendukung antarmuka I2C, SPI, dan USART untuk komunikasi data dengan perangkat periferal eksternal.



Dalam sistem EWS ini, STM32F103C8T6 berperan sebagai unit pemroses sentral yang mengintegrasikan pembacaan sensor melalui interupsi eksternal (EXTI) dan komunikasi serial I2C.






Fitur-fitur lain dari papan tersebut adalah sebagai berikut:


  • Paket ini berisi MCU utama – STM32F103C8T6 dalam kemasan Quad Flat Package.
  • Tombol Reset – untuk mereset Mikrokontroler.
  • Port microUSB – untuk komunikasi serial dan daya.
  • Jumper Pemilih BOOT – Jumper BOOT0 dan BOOT1 untuk memilih memori booting.
  • Dua LED – LED Pengguna dan LED Daya.
  • Kristal 8 MHz – Jam Utama untuk MCU.
  • Osilator 32,768KHz – Jam RTC.
  • Antarmuka SWD – untuk pemrograman dan debugging menggunakan ST-Link.
  • Regulator 3.3V (di bagian bawah) – mengubah 5V menjadi 3.3V untuk memberi daya pada MCU.
Di setiap sisi panjang papan, terdapat pin untuk menghubungkan berbagai input/output analog dan digital serta hal-hal yang berkaitan dengan daya. Gambar berikut menunjukkan konfigurasi pin papan beserta berbagai fungsi yang didukung oleh setiap pin.


Setelah sedikit membahas tentang Blue Pill Board, mari kita pahami beberapa fitur penting dari inti board ini, yaitu Mikrokontroler STM32F103C8T6. Seperti yang disebutkan sebelumnya, MCU ini berisi inti CPU ARM 32-bit Cortex-M3 dengan frekuensi maksimum 72 MHz.

Sekarang mari kita lihat beberapa spesifikasi MCU yang diterapkan pada papan Blue Pill.

  • Memori: berisi 64 Kbyte Flash dan 20 Kbyte SRAM.
  • Pin GPIO – 32 dengan kemampuan interupsi eksternal
  • Timer – 3 Timer 16-bit, 1 Timer PWM 16-bit
  • Pin PWM – 15
  • Analog – 10 Saluran ADC 12-bit
  • I2C – 2 Perangkat Periferal I2C
  • USART – 3 Perangkat Periferal USART dengan kontrol perangkat keras
  • SPI – 2 Perangkat Periferal SPI
  • Perangkat Tambahan Lainnya – USB 2.0 Full Speed, CAN 2.0B


Mengupload: 80466 dari 80466 byte diupload.


4.2 
Sensor Jarak Ultrasonic HC-SR04
Sensor HC-SR04 adalah perangkat yang digunakan untuk mengukur jarak objek dengan memanfaatkan perambatan gelombang ultrasonik. Pada sistem Early Warning System (EWS) banjir, sensor ini dipasang menghadap ke permukaan air sungai untuk mendeteksi perubahan ketinggian muka air secara berkala.
Pengukuran jarak dengan HC-SR04 didasarkan pada metode waktu tempuh gelombang (Time of Flight). Sensor memerlukan pulsa trigger dengan logika HIGH selama 10 mikrodetik  melalui pin Trigger. Setelah menerima trigger, transducer pemancar akan memancarkan 8 siklus gelombang ultrasonik dengan frekuensi 40 kHz.
Gelombang tersebut akan merambat melalui udara, mengenai permukaan air, dan memantul kembali menuju transducer penerima (Receiver). Saat gelombang mulai dipancarkan, pin Echo akan berubah ke logika HIGH dan kembali ke logika LOW tepat saat pantulan gelombang diterima.
Jarak objek  dihitung berdasarkan durasi waktu logika HIGH pada pin Echo  dengan menggunakan konstanta kecepatan rambat bunyi di udara (340 m/s) melalui persamaan berikut:
Pembagian dengan angka 2 dilakukan karena durasi waktu yang terukur merupakan waktu tempuh bolak-balik gelombang dari sensor ke objek dan kembali ke sensor.






Sensor Ultrasonic HC-SR04 dilengkapi dengan empat pin utama yang masing-masing memiliki fungsi spesifik untuk mendukung pengoperasian sensor ini. Berikut adalah penjelasan rinci mengenai fungsi setiap pin pada sensor HC-SR04:

1. VCC (5V Power Supply)

Pin VCC adalah pin yang digunakan untuk memberikan sumber daya positif kepada sensor. Pin ini harus dihubungkan dengan sumber tegangan 5V untuk mengaktifkan sensor HC-SR04. Tegangan yang diberikan pada pin ini memungkinkan seluruh sistem sensor bekerja dengan baik, baik pada modul pengirim maupun penerima sinyal ultrasonik. Tanpa pemberian tegangan yang cukup, sensor tidak akan berfungsi.

2. Trig (Trigger/Penyulut)

Pin Trig berfungsi sebagai pemicu atau penyulut yang digunakan untuk memulai proses pengiriman sinyal ultrasonik. Ketika pin ini diberi sinyal logika tinggi (HIGH) selama sekitar 10 mikrodetik, sensor akan mengirimkan gelombang ultrasonik dari modul pengirim. Sinyal ini kemudian akan dipantulkan oleh objek yang ada di depan sensor dan kembali ke penerima. Pin Trig ini sangat penting dalam mengontrol kapan sensor mengirimkan sinyal untuk pengukuran jarak.

3. Echo (Receive/Indikator)

Pin Echo adalah pin yang digunakan untuk menerima sinyal pantulan dari objek yang diukur. Setelah sinyal ultrasonik dipancarkan oleh pin Trig, pin Echo akan mendeteksi pantulan gelombang yang kembali ke sensor. Waktu yang dibutuhkan untuk gelombang tersebut kembali dihitung oleh sensor untuk menentukan jarak antara sensor dan objek. Pin Echo ini memberikan sinyal logika tinggi (HIGH) selama durasi waktu perjalanan gelombang ultrasonik, yang nantinya bisa dihitung untuk memperoleh jarak yang tepat.

4. GND (Ground/0V Power Supply)

Pin GND adalah pin ground atau sumber tegangan negatif untuk sensor. Pin ini harus dihubungkan dengan ground pada sistem kelistrikan untuk menyeimbangkan sirkuit dan menyediakan jalur kembali bagi aliran arus listrik. Tanpa koneksi ground yang benar, sensor tidak akan berfungsi dengan semestinya.

Keempat pin tersebut bekerja bersama-sama untuk memastikan sensor HC-SR04 dapat mengukur jarak dengan akurat. Penggunaan yang tepat dari masing-masing pin sangat penting untuk memperoleh hasil pengukuran yang optimal.

Cara Kerja Sensor Ultrasonik



Cara kerja sensor ultrasonik didasarkan pada prinsip pantulan gelombang suara untuk mengukur jarak suatu objek dengan menggunakan frekuensi tertentu. Gelombang ultrasonik ini dihasilkan oleh komponen yang disebut piezoelektrik, yang berfungsi untuk mengubah energi listrik menjadi gelombang suara dengan frekuensi spesifik.

Piezoelektrik akan menghasilkan gelombang ultrasonik dengan frekuensi 40 kHz ketika diberikan osilasi listrik. Secara umum, sensor ini akan memancarkan gelombang ultrasonik ke area atau objek yang menjadi target. Ketika gelombang tersebut mengenai permukaan target, sebagian gelombang akan dipantulkan kembali. Sensor kemudian menangkap gelombang pantulan ini. Selanjutnya, sensor menghitung waktu yang dibutuhkan gelombang untuk kembali setelah dipantulkan, dan berdasarkan selisih waktu antara pengiriman dan penerimaan gelombang, sensor dapat menentukan jarak objek yang diukur.

Berikut ini adalah penjelasan lebih detail mengenai cara kerja sensor ultrasonik:



1. Pemancaran Sinyal

Sensor ultrasonik dimulai dengan pemancaran sinyal oleh pemancar ultrasonik yang menggunakan frekuensi dan durasi waktu tertentu. Frekuensi yang umum digunakan untuk mengukur jarak objek adalah sekitar 40 kHz, yang lebih tinggi dari batas pendengaran manusia (20 kHz). Sinyal ini berupa gelombang suara yang dikendalikan oleh osilator, dan dipancarkan dalam bentuk pulsa yang teratur menuju objek yang ingin diukur jaraknya.

2. Perambatan Gelombang Suara

Setelah sinyal dipancarkan, gelombang bunyi ultrasonik tersebut akan merambat melalui udara dengan kecepatan sekitar 340 meter per detik, tergantung pada suhu udara dan faktor lainnya. Ketika gelombang suara ini mengenai suatu objek atau permukaan, gelombang akan dipantulkan kembali oleh objek tersebut. Proses ini terjadi dengan sangat cepat, dan kecepatan serta arah pantulan sangat dipengaruhi oleh jarak dan bentuk objek yang dikenai gelombang.

3. Penerimaan dan Pengolahan Sinyal Pantulan

Setelah gelombang pantulan diterima oleh alat penerima, sensor akan menghitung waktu yang dibutuhkan gelombang suara untuk kembali. Waktu perjalanan gelombang ini sangat singkat, namun cukup untuk diukur oleh sensor. Dengan mengetahui waktu tempuh gelombang dan kecepatan suara di udara, sensor dapat menghitung jarak antara sensor dan objek. Perhitungan ini dilakukan dengan rumus dasar:

Penggunaan faktor 2 diperlukan karena waktu yang diukur adalah waktu tempuh bolak-balik (dari sensor ke objek dan kembali lagi). Hasil penghitungan ini kemudian dapat digunakan dalam berbagai aplikasi, seperti pengukuran jarak, deteksi rintangan, atau pengaturan posisi otomatis dalam robotika.

Dengan cara kerja ini, sensor ultrasonik mampu memberikan pengukuran jarak dengan akurasi yang tinggi dan kecepatan respon yang sangat cepat, sehingga sangat berguna dalam berbagai proyek dan aplikasi teknik serta otomasi.

4.3 Sensor Aliran Air (Water Flow Sensor) FS300A
Sensor Water Flow FS300A adalah perangkat mekanoelektronik yang berfungsi untuk mengukur laju debit aliran zat cair di dalam pipa atau saluran tertutup berdiameter 3/4 inci. Sensor ini terdiri dari katup plastik, rotor air (kincir), dan sebuah sensor efek Hall (Hall Effect Sensor).




Gambar ini menampilkan grafik karakteristik fisis dari sensor water flow FS300A yang menunjukkan hubungan linier antara laju aliran debit zat cair pada sumbu X (satuan Liter/menit) dengan frekuensi pulsa listrik yang dihasilkan pada sumbu Y (satuan Hertz). Karakteristik linier ini dibuktikan secara empiris melalui data pada tabel, di mana saat debit aliran air bernilai 2 L/MIN kincir magnetik di dalam sensor akan berputar dan menghasilkan frekuensi pulsa sebesar 11 Hz. Seiring meningkatnya kecepatan aliran secara konstan, frekuensi pulsa ikut naik secara linier hingga mencapai angka 33 Hz saat debit berada di 6 L/MIN, dan puncaknya berada di kisaran 55 Hz ketika laju aliran menyentuh batas 10 L/MIN.

Sifat kelinieran grafik tersebut menjadi landasan matematis dalam menentukan konstanta kalibrasi pada kode program STM32. Jika diambil rasio perbandingan antara nilai frekuensi terhadap laju aliran dari titik mana saja pada tabel,sebagai contoh pada kondisi aliran 10 L/MIN dengan frekuensi 55 Hz,maka diperoleh nilai konstanta pembagi yang stabil sebesar 5.5. Perbandingan fisis ini menghasilkan rumusan dasar

4.4 Sensor Rain YL-83




Sensor hujan  adalah perangkat elektronika yang berfungsi untuk mendeteksi keberadaan serta intensitas cairan atau air hujan di lingkungan sekitar. Secara fisik, perangkat ini terdiri dari dua bagian utama, yaitu papan sensor (sensing pad) yang memiliki jalur tembaga terbuka berbentuk zigzag sebagai area tangkapan air, dan modul komparator elektronik yang berfungsi mengondisikan sinyal analog menjadi sinyal digital.

Prinsip kerja dari sensor ini didasarkan pada hukum resistansi listrik dan konduktivitas air. Ketika kondisi cuaca kering atau tidak ada air yang menempel pada papan sensor, hambatan listrik antar jalur tembaga bernilai sangat besar (mendekati tak terhingga), sehingga tidak ada arus listrik yang mengalir. Namun, saat rintik air hujan mulai jatuh dan membasahi papan sensor, air tersebut akan bertindak sebagai konduktor yang menghubungkan jalur-jalur tembaga yang terpisah. Hal ini menyebabkan nilai resistansi pada papan sensor menurun secara drastis sebanding dengan banyaknya volume air yang menempel.










Perubahan resistansi tersebut kemudian dibaca oleh IC komparator (biasanya menggunakan LM393) pada modul sensor. Modul ini menyediakan keluaran digital (Digital Output / DO) yang dikonfigurasikan dengan sistem logika Active LOW. Artinya, ketika sensor mendeteksi adanya air hujan, pin output digital akan mengeluarkan sinyal berlogika LOW (0 Volt atau GPIO_PIN_RESET), dan sebaliknya akan mengeluarkan sinyal HIGH (3.3 Volt atau GPIO_PIN_SET) saat kondisi papan sensor kering.



Dalam implementasi proyek Early Warning System (EWS) ini, pin digital output dari sensor hujan dihubungkan langsung ke pin PA0 pada mikrokontroler STM32F103C8T6. Logika Active LOW ini dimanfaatkan di dalam program untuk memicu perubahan bobot skor matriks risiko secara non-blocking. Ketika pin PA0 membaca logika LOW, sistem akan langsung mengenali bahwa kondisi cuaca sedang hujan dan memberikan bobot nilai risiko sebesar 1, yang kemudian diakumulasikan dengan sensor lainnya untuk menentukan status akhir kebencanaan.

4.5 Protokol Antarmuka Inter-Integrated Circuit (I2C)

I2C adalah protokol komuni kasi serial dua arah sinkron yang dikembangkan oleh Philips Semiconductors (sekarang NXP Semiconductors). Protokol ini dirancang untuk menghubungkan mikrokontroler dengan perangkat periferal jarak pendek menggunakan hanya dua jalur kabel:

  • SDA (Serial Data Line): Jalur untuk transfer data bit demi bit.

  • SCL (Serial Clock Line): Jalur untuk sinkronisasi clock yang dikendalikan oleh perangkat Master.

Layar LCD karakter 16x2 konvensional umumnya memerlukan 8 atau 4 jalur data paralel ditambah dengan jalur kontrol (RS, EN, RW) untuk dapat beroperasi. Hal ini memakan banyak pin I/O pada mikrokontroler. Untuk mengefisiensikan penggunaan pin, digunakan chip ekspander I/O PCF8574.

Chip PCF8574 bertindak sebagai perangkat Slave I2C yang menerima data serial 8-bit dari master (STM32) dan mengonversinya menjadi keluaran paralel 8-bit untuk mengendalikan pin data dan kontrol LCD. Komunikasi I2C memerlukan pengalamatan (addressing) unik agar master dapat mengenali slave. Berdasarkan konfigurasi pin alamat fisik (A0, A1, A2) pada modul chip PCF8574, alamat default yang digunakan adalah 0x27 (atau 0x3F untuk varian PCF8574AT). Di dalam kode program STM32 HAL, alamat 7-bit tersebut digeser ke kiri sebanyak 1 bit agar sesuai dengan format operasi write 8-bit:

Proses Komunikasi I2C Inisiasi dan Start Condition Proses komunikasi I2C dimulai dengan kondisi start, yang ditandai oleh perubahan keadaan SDA dari tinggi ke rendah saat SCL masih tinggi. Setelah terjadi kondisi start, maka master mengirimkan alamat slave yang akan dikontak. Pengalamatan Perangkat Setiap perangkat pada bus I2C memiliki alamat unik. Setelah kondisi start terjadi, master mengirimkan 7 bit pertama yang merupakan alamat slave, diikuti oleh bit kedelapan yang menunjukkan apakah operasi yang diinginkan adalah pembacaan atau penulisan. Pengiriman dan Penerimaan Data Setelah pengalamatan berhasil, proses pengiriman atau penerimaan data akan dimulai. Data dikirim dalam bentuk byte dengan setiap byte diikuti oleh bit ACK (Acknowledge) dari penerima. Proses pengiriman atau penerimaan dapat dilakukan dalam satu atau lebih transaksi tergantung pada kebutuhan aplikasi. Kondisi Stop Proses komunikasi diakhiri dengan kondisi stop, dimana SDA naik ke tinggi saat SCL tetap tinggi. Kondisi stop menunjukkan bahwa transmisi telah selesai dan bus I2C kembali siap untuk digunakan.


LCD 16x2 dengan modul I2C sebenarnya adalah LCD 16x2 biasa yang telah dipasangi sebuah "backpack" atau modul adaptor I2C di bagian belakangnya. Modul ini berisi chip (umumnya PCF8574 atau PCF8574A) yang bertindak sebagai port expander.

  • Keuntungan:

    • Menghemat pin digital Arduino secara drastis! Dari 6-11 pin menjadi hanya 2 pin data (SDA dan SCL). Ini sangat berharga untuk proyek kompleks.

    • Pengkabelan jauh lebih sederhana dan rapi, mengurangi risiko kesalahan koneksi.

    • Membuat kode lebih ringkas dan mudah dipahami karena library I2C mengurus detail komunikasi paralel di baliknya.

    • Satu bus I2C dapat menampung banyak perangkat I2C lainnya (misalnya, sensor suhu, RTC, dll.) secara bersamaan, selama setiap perangkat memiliki alamat I2C yang unik.

  • Kekurangan:

    • Sedikit lebih mahal karena ada modul I2C tambahan.

    • Sedikit lebih lambat dalam kecepatan komunikasi dibandingkan koneksi paralel langsung (meskipun perbedaannya tidak signifikan untuk aplikasi tampilan karakter sederhana).

    • Anda perlu mengetahui alamat I2C modul Anda (umumnya 0x27 atau 0x3F), dan menginstal library LCD I2C yang benar.

Slave Address = 0x27* 2 = 0x4E

4.6 Resistor
Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika (V=I R). 
Jenis Resistor yang digunakan disini adalah Fixed Resistor, dimana merupakan resistor dengan nilai tetap terdiri dari film tipis karbon yang diendapkan subtrat isolator kemudian dipotong berbentuk spiral. Keuntungan jenis fixed resistor ini dapat menghasilkan resistor dengan toleransi yang lebih rendah.
Cara menghitung nilai resistor:
Tabel warna

Contoh :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau   = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 4 : Perak  = Toleransi 10%
Maka nilai resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.


5. Percobaan [Kembali]

Langkah - Langkah Percobaan :

Langkah 1: Persiapan File Hex/Elf di STM32CubeIDE

  1. Buka project kamu di STM32CubeIDE.

  2. Pastikan kodingan main.c terbaru (dengan konstanta pembagi 5.5 untuk FS300A) sudah terpasang.

  3. Klik kanan pada folder project  pilih Clean Project.

  4. Lakukan kompilasi dengan menekan tombol Palu (Build) atau Ctrl + B.

  5. Pastikan proses selesai tanpa error (0 errors). Hasil kompilasi ini akan menghasilkan file berformati .elf atau .hex di dalam folder Debug atau Release proyekmu.

Langkah 2: Konfigurasi Komponen di Proteus

  1. Buka file skematik simulasi proyekmu di software Proteus.

  2. Pastikan semua komponen utama sudah terhubung ke pin STM32F103C8 sesuai desain:

    • Logic State / Toggle Switch (Simulasi Sensor Hujan) terhubung ke pin PA0.

    • Sensor Ultrasonic (HC-SR04/SRF04) terhubung ke pin PA1 (Trig) dan PA2 (Echo).

    • Clock Generator (Simulasi Sensor Water Flow) terhubung ke pin PB0.

    • Modul I2C PCF8574 + LCD 16x2 terhubung ke pin PB6 (SCL) dan PB7 (SDA).

    • LED Hijau, Kuning, Merah, dan Buzzer masing-masing terhubung ke pin PB12, PB13, PB14, dan PB15.

  3. Klik dua kali pada komponen STM32F103C8 di Proteus. Pada bagian Program File, klik ikon folder lalu arahkan ke file .elf atau .hex yang sudah kamu build di Langkah 1 tadi.

  4. Pastikan pengaturan Crystal Frequency pada STM32 di Proteus diisi 72MHz agar penentuan waktu/delay di simulasi berjalan sinkron.

Langkah 3: Pengujian Kondisi 1 – Status AMAN

  1. Klik tombol Play/Run di pojok kiri bawah Proteus untuk memulai simulasi.

  2. Atur Logic State (Sensor Hujan) pada posisi 1 (Logika HIGH = Kondisi Kering).

  3. Atur jarak pada model Sensor Ultrasonic di atas 25 cm (misal 30 cm) untuk mensimulasikan permukaan air sungai yang sangat jauh/aman.

  4. Atur Clock Generator (Water Flow) pada frekuensi 0 Hz atau di bawah 25 Hz (Debit air < 5 L/min).

  5. Amati Output: * Layar LCD 16x2 harus menampilkan tulisan "STATUS: AMAN" pada baris pertama.

    • Baris kedua LCD menampilkan nilai data sensor aktual.

    • LED Hijau menyala, sedangkan LED Kuning, LED Merah, dan Buzzer dalam kondisi mati (OFF).

Langkah 4: Pengujian Kondisi 2 – Status SIAGA

  1. Ubah Logic State (Sensor Hujan) menjadi 0 (Logika LOW = Terdeteksi Hujan)  Skor Risiko Hujan = 1.

  2. Turunkan nilai jarak pada Sensor Ultrasonic ke angka antara 12 cm sampai 25 cm (misal 15 cm)Skor Risiko Jarak = 1.

  3. Atur Clock Generator (Water Flow) ke frekuensi 11 Hz hingga 110 Hz (Simulasi debit air sedang, berkisar 5 L/min sampai 30 L/min)y Skor Risiko Aliran = 1.

  4. Amati Output:

    • Karena akumulasi total skor risiko berada di angka 2 atau 3, LCD akan otomatis berganti menampilkan teks "STATUS: SIAGA".

    • LED Hijau mati dan LED Kuning menyala.

    • Buzzer berbunyi secara intermiten (putus-putus/berkedip) mengikuti ritme pembacaan program.

Langkah 5: Pengujian Kondisi 3 – Status BAHAYA (Flash Flood)

  1. Biarkan Logic State (Sensor Hujan) tetap pada posisi 0 (Kondisi Hujan Lebat)  Skor Risiko Hujan = 1.

  2. Turunkan drastis jarak pada Sensor Ultrasonic hingga di bawah 12 cm (misal 8 cm) untuk mensimulasikan air sungai kritis meluap  Skor Risiko Jarak = 2.

  3. Naikkan Clock Generator (Water Flow) ke frekuensi di atas 165 Hz (Debit air sangat deras, di atas 30 L/min) Skor Risiko Aliran = 2.

  4. Amati Output:

    • Total skor risiko kini berharga 4. Layar LCD akan langsung berkedip sekali untuk membersihkan layar dan menampilkan pesan darurat "FLASH FLOOD!!".

    • LED Kuning mati dan LED Merah menyala tajam.

    • Buzzer berbunyi konstan (nyaring tanpa putus) sebagai alarm evakuasi warga.

Langkah 6: Pengujian Fitur Anti-Flicker LCD

  1. Saat simulasi masih berjalan di kondisi Bahaya, ubah kembali parameter sensor secara mendadak ke kondisi AMAN.

  2. Perhatikan pergerakan karakter di layar LCD. Layar hanya boleh melakukan clearscreen (LCD_Cmd(0x01)) tepat satu kali saat transisi status risiko berubah.

  3. Pastikan tulisan data sensor di baris kedua tidak berkedip-kedip (flicker) yang menandakan logika pencegah flicker (last_total_risk) berhasil mengunci layar dengan baik.

  4. Jika semua parameter output sudah merespons dengan presisi, klik tombol Stop pada Proteus. Percobaan simulasi proyek dinyatakan sukses dan selesai.


    Uji kondisi:


        
    
Matriks risiko adalah alat bantu manajemen yang digunakan untuk mengukur tingkat keparahan suatu kondisi berdasarkan akumulasi dari beberapa parameter input. Pada proyek EWS ini, tingkat kerawanan banjir bandang dihitung berdasarkan total akumulasi skor dari tiga sensor individu yang dikategorikan sebagai berikut:
{Total Skor Risiko} = {Skor Hujan} + {Skor Jarak Luapan} + {Skor Arus Aliran}

Hasil penjumlahan bobot risiko ini menentukan tiga status keputusan akhir sistem:

  1. Skor 0 - 1 (Status AMAN): Ditandai dengan indikator LED Hijau. Menandakan kondisi lingkungan normal dengan intensitas hujan rendah, arus landai, dan volume sungai di bawah batas kritis.

  2. Skor 2 - 3 (Status SIAGA): Ditandai dengan indikator LED Kuning dan suara peringatan buzzer intermiten. Menandakan salah satu atau lebih parameter telah melewati batas normal dan masyarakat diimbau mulai waspada.

  3. Skor >= 4 (Status BAHAYA / FLASH FLOOD): Ditandai dengan indikator LED Merah dan bunyi buzzer konstan tanpa putus. Menandakan akumulasi seluruh parameter telah berada di titik kritis tinggi dan evakuasi harus segera dilakukan.


 

 

Komentar

Postingan populer dari blog ini

Tugas Besar