27 May 2017
Selamat Menyambut Ramadhan Al Mubarak
Location:
Bali, Indonesia
24 April 2017
Tutorial 14 - Arduino & Gas Sensor
Apa khabar kepada semua pembaca - pembaca setia blog saya? Mudah - mudahan dirahmati Allah sentiasa lah ye.. Rasanya dah hampir 3 bulan saya tidak update apa - apa dalam blog ini. Maaf sekiranya ada yang ternanti - nanti berkaitan tutorial terbaru dalam blog ini. Saya menghadapi kesibukan yang amat luar biasa berikutan tempahan projek dari pelajar diploma politeknik yang telah pun selamat membuat pembentangan akhir projek mereka pada bulan 3 lepas. Alhamdulillah, kini saya ada sedikit kelapangan untuk berkongsi dengan anda semua tutorial terbaru saya iaitu Gas Sensor.
Gas sensor adalah satu instrumen yang digunakan untuk mengesan kehadiran sesuatu jenis gas yang wujud dalam persekitaran. Saya sering ditanya oleh pelajar, bolehkah saya mengukur jumlah gas mengunakan gas sensor? Jawapannya adalah TIDAK SAMA SEKALI. Ini kerana, gas sensor digunakan hanya untuk mengesan kewujudan gas, bukannya mengukur ketumpatan / jumlah gas. Ada beza tu ye..
Terdapat pelbagai jenis gas sensor yang ada dipasaran. Kepelbagaian ini adalah disebabkan wujudnya banyak jenis gas yang ada di persekitan kita. Semua gas sensor mempunyai kod produk yang tersendiri. Kod produk gas sensor adalah MQ-X. Abjad "X" adalah merujuk kepada jenis gas yang ingin dikesan. Di sini, saya akan membuat senarai ringkas berkaitan jenis - jenis gas sensor yang ada dipasaran:
- MQ-2 : General combustible gas
- MQ-3 : Gas alkohol
- MQ-4 : Gas metana dan CNG ( compressed natural gas )
- MQ-5 : LPG ( gas memasak) & gas natural
- MQ-6 : LPG ( gas memasak), gas butana & gas propana
- MQ-7 : Gas karbon monoksida
- MQ-8 : Gas hidrogen
![]() |
| Gas sensor module |
Saya ingin membuat satu alat / device yang mengesan kebocoran gas memasak (LPG) di dapur. Apabila terdapatnya kebocoran gas, kipas ekzos yang terdapat di dapur akan berfungsi secara automatik ( bertujuan untuk menyedut gas LPG ini keluar dari rumah ) sehinggalah tiada lagi gas LPG dikesan.
Komponen / Peralatan
- Arduino UNO
- MQ-5 gas sensor module
- 5V Relay
- Kipas Ekzos
Cara Sambungan
Jika diperhatikan, gas sensor module ini boleh digunakan dalam 2 cara, iaitu secara digital atau analog. Oleh sebab itu, sensor ini didatangkan dengan 4 pin yang perlu disambung kepada Arduino. Dari 4 pin ini, kita hanya perlu sambung 3 sahaja bergantung pada kaedah yang ingin kita gunakan, sama ada digital atau analog. Rujuk rajah dibawah.
Bagi projek ini, saya ingin menggunakan kaedah digital sahaja. Tidak menjadi satu kesalahan jika anda ingin menggunakan pengesanan kaedah analog. Tak berdosa pun!
Jadi, sambungannya adalah seperti ini:
- Vcc ( module ) ---- 5V ( Arduino )
- GND ( module ) ---- GND ( Arduino )
- DOUT ( module ) ---- Pin 2 ( Arduino )
Sambungan relay module pula adalah seperti di bawah
- IN ( relay ) ---- Pin 8 ( Arduino )
- GND ( module ) ---- GND ( Arduino )
- Vcc ( module ) ---- 5V ( Arduino )
![]() |
| Sambungan relay module sebagai suis bagi kipas ekzos |
Aturcara:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | const int Gas_Sensor = 2; const int fan_relay = 8; int Gas_state = 0; void setup() { pinMode(fan_relay, OUTPUT); pinMode(Gas_Sensor, INPUT); } void loop() { Gas_state = digitalRead(Gas_Sensor); if (Gas_state == HIGH) { digitalWrite(fan_relay, HIGH); } else { digitalWrite(fan_relay, LOW); } } |
SELAMAT MENCUBA!!
Labels:
arduino
,
gas sensor
,
tutorial
Location:
Pekan, Pahang, Malaysia
09 January 2017
Tutorial 13 - Arduino dan Paparan LCD Menggunakan I2C
Hai kawan - kawan.. Sihat ke tu? Kalau sihat, baguslah.. Kalau tak sihat, jangan lupa makan ubat yer.. Rasanya masih belum terlewat untuk saya ucapkan Selamat Tahun Baru 2017. Semoga tahun 2017 ini menjadi turning point untuk saya dan rakan - rakan pembaca setia blog ini berusaha lebih keras lagi.
Untuk tutorial kali ini, saya ingin berkongsi dengan anda semua cara mudah menggunakan LCD. Saya pernah berkongsi cara menggunakan LCD pada Tutorial 2 sebelum ini. Kaedah itu adalah salah satu dari DUA cara yang boleh diaplikasikan untuk menggunakan LCD. Cara ke-2 adalah menggunakan Serial Interface Adapter Module atau lebih popular dipanggil I2C ( sebut I to see ). Jika ditanya pada saya kaedah mana yang lebih digemari, saya akan pilih guna I2C ini. Saya akan senaraikan kebaikan dan keburukan ( pada pandangan saya ) menggunakan I2C ini.
Kebaikan:
- Mengurangkan penggunaan pin pada Arduino ( dari 6 pin kepada 2 pin sahaja)
- Mengurangkan risiko kesalahan penyambungan antara Arduino dgn LCD
- Tidak perlu menggunakan variable resistor (VR) kerana sudah ada VR dalam module I2C
Keburukan:
- Kena beli I2C module yang harganya RM12.
I2C mempunyai 4 pin yang perlu disambungkan secara terus kepada Arduino anda. 4 pin tersebut ialah:
- Vcc / 5V
- GND
- SCL
- SDA
Jika papan Arduino anda tiada pin SCL dan SDA (model lama), anda masih boleh menggunakan I2C ini dengan cara sambungan seperti berikut:
- SCL ( I2C ) ke pin A5 ( Arduino )
- SDA ( I2C ) ke pin A4 ( Arduino )
![]() |
| I2C Module |
Contoh Sambungan I2C dan Arduino
Untuk menggunakan I2C ini, untuk penulisan coding nanti, kita perlu menambah library LiquidCrystal_I2C pada folder libraries Arduino kita. Mana nak dapat library itu? Seperti biasa, saya yang baik hati ini akan memudahkan kerja anda. Anda boleh muat turun library itu di bawah
LiquidCrystal_I2C
Aturcara:
Selepas anda membuat sambungan seperti gambar di atas dan memuat turun library I2C, anda bolehlah memulakan penulisan coding anda. Saya akan tunjukkan coding ringkas menggunakan I2C dan anda semua bolehlah jadikan ini sebagai rujukan,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { lcd.begin(16,2); lcd.backlight(); } void loop() { lcd.setCursor(4,0); lcd.print("Welcome!"); delay (2000); lcd.setCursor(1,1); lcd.print("Selamat Datang"); delay (2000); lcd.clear(); delay (1000); } |
Perhatikan pada baris yang ke-2, terdapat nombor 0x27. Ini menunjukkan alamat I2C yang digunakan. Jika anda perhatikan tiada apa - apa paparan pada LCD selepas anda upload coding ini, terdapat 2 faktor yang menyebabkan masalah ini.
- VR tidak dilaraskan. Anda perlu laraskan VR (warna biru) yang terdapat pada module I2C sehinggalah tulisan timbul
- 0x27 bukanlah alamat I2C yang digunakan. Cuba tukar 0x27 kepada 0x3F.
SELAMAT MENCUBA...!
Location:
Liverpool, UK
10 December 2016
Selamat Menyambut Maulidur Rasul 1438H
08 December 2016
Tutorial 12 - Arduino & Bluetooth
Dah lama rasanya saya tak menulis dalam blog ni. Bukan sombong atau apa - apa yang sewaktu dengannya. Ini semua disebabkan tempahan projek dari pelajar Kolej Vokasional (KV) dan politeknik yang tak putus - putus. Sampai tak tido malam saya dibuatnya. Apa - apa pun, jutaan terima kasih saya ucapkan pada semua pelanggan kerana memberi kepercayaan kepada syarikat kecil kami, NAA Electronics untuk menyiapkan projek akhir anda. Diharap anda semua berpuas hati dengan servis yang telah kami beri.
![]() |
| TERIMA KASIH PELANGGAN!! |
Ok. Back to business. Untuk tutorial kali ini, saya akan menunjukkan kaedah dan juga cara yang mudah untuk mengawal output (ON & OFF) menggunakan teknologi tanpa wayar, Bluetooth.
Apa itu Bluetooth?
Bluetooth adalah teknologi memindahkan data (fail, suara, nombor dll) dari satu device ke satu device yang lain tanpa menggunakan wayar (wireless). Bluetooth ini sesuai digunakan untuk perhubungan jarak dekat ( kurang 10 meter ) dan yang paling penting, sistem keselamatan untuk perhubungan jenis bluetooth adalah secured kerana memerlukan persetujuan antara 2 pihak untuk memulakan proses pemindahan data ( pairing concept )
HC-06 Bluetooth Module
![]() |
| HC-06 Bluetooth Module |
Module ini mempunyai 4 pin yang mana keempat - empat ini akan disambungkan secara terus pada Arduino anda. Saya akan tunjukkan cara untuk sambungan ini nanti. Oh ya, untuk pengetahuan anda semua, harga module ini dalam lingkungan RM30 - RM40 per unit. So, hati - hati ya.. Jangan sampai kena game..
Contoh Projek
Untuk tutorial kali ini, saya akan mengawal 3 biji LED dengan menggunakan apps yang saya muat turun dari Google Playstore. 3 LED ini akan dikawal digital (ON/OFF) secara berasingan dan juga secara serentak. Bagi memastikan agar anda semua dapat follow contoh ini dengan mudah, disarankan agar anda memuat turun apps yang sama seperti yang saya guna. Jadi, muat turun la apps di sini.
Komponen - komponen yang digunakan
- Arduino
- Kabel USB
- HC-06 Bluetooth Module
- 3 x LED
- 3 x Perintang 220 Ohm
- Breadboard
- Jumper wire secukupnya
Baiklah. Bagi memudahkan anda, saya akan pecahkan projek ini pada 2 bahagian. Bahagian pertama adalah untuk membaca data yang dihantar oleh apps kepada Arduino kita. Jom!
Bahagian 1: Membaca Data Apps Menggunakan "Serial Monitor"
Sambungan:
Arduino HC-06
VCC -------- 5V
GND -------- GND
10 -------- TX
11 -------- RX
Arduino HC-06
VCC -------- 5V
GND -------- GND
10 -------- TX
11 -------- RX
![]() |
| Sambungan Arduino dengan HC-06 |
Aturcara:
#include <SoftwareSerial.h> #include <Wire.h> SoftwareSerial BT(10, 11); char a; void setup() { BT.begin(9600); Serial.begin(9600); } void loop() { if (BT.available()) { a = (BT.read()); Serial.println(a); } }
Selepas anda memuat naik coding di atas ke Arduino anda, sila ikuti langkah - langkah berikut:
- Buka Setting pada telefon pintar anda, dan ON kan Bluetooth
- Scan nearby bluetooth signal
- Sekiranya ada device bernama HC-06, pilih device itu untuk pairing
- Password untuk pairing adalah "1234"
- Pastikan pada bawah perkataan HC-06, ada tertulis dengan tulisan kecil, "Paired" yang membuktikan connection was establish.
Sekarang kita tumpu pada Apps pula. Sila ikuti langkah - langkah seperti dibawah:
- Pastikan apps anda sama seperti dibawah. Sekiranya sama, tekan butang "Connect" untuk memulakan komunikasi antara apps dengan module
- Pilih device yang bernama HC-06
- Sekiranya proses pairing berjaya, anda dapat perhatikan yang lampu biru pada module HC-06 akan berhenti berkelip dan berada dalam keadaan statik. Tahniah!
- Sekarang, buka Serial Monitor pada software Arduino dan setkan 'No line ending' dan baudrate = 9600
- Bila dah buat tetapan seperti di atas, sila tekan keypad pada apps anda. Mulai tekan keypad pada Device 1, kemudian OFF semula dan teruskan dengan Device 2, OFF semula dan seterusnya.
- Perhatikan pada Serial Monitor anda. Ada keluar apa - apa tak?
- Kalau ada, tahniah sekali lagi.
- Kalau tak keluar apa - apa, takziah. Sila check balik. Haha.
Saya buat kesimpulan apa yang akan anda dapat pada Serial Monitor.
Device 1: ON = A, OFF = a
Device 2: ON = B, OFF = b
Device 3: ON = C, OFF = c
Device 4: ON = D, OFF = d
Device 5: ON = E, OFF = e
Betul tak? Hehe.. Power kan saya.. Sekarang, catat apa yang anda dapat dari Serial Monitor kerana data ini adalah bahagian terpenting dalam coding kita nanti.
![]() |
| Tekan butang Connect |
| Pilih device HC-06 |
![]() |
| Buka Serial Monitor pada Arduino IDE |
![]() |
| Buat tetapan "No line ending" dan "9600" |
![]() |
| Data yang terhasil apabila keypad pada apps ditekan |
So, bahagian 1 dah tamat.
Sekarang kita bergerak ke bahagian ke-2 iaitu menambah LED dan membuat aturcara penuh.
Bahagian 2: Mengawal LED Menggunakan HC-06
Rujuk gambarajah dibawah untuk sambungan penuh.
![]() |
| Sambungan penuh litar |
Apa yang nak saya pada LED saya adalah seperti berikut:
Device 1 akan mengawal LED 1
Device 2 akan mengawal LED 2
Device 3 akan mengawal LED 3
Device 4 akan mengawal LED 1, 2 & 3 (serentak)
Aturcara:
#include <SoftwareSerial.h> #include <Wire.h> SoftwareSerial BT(10, 11); char a; int LED1 = 4; int LED2 = 5; int LED3 = 6; void setup() { BT.begin(9600); Serial.begin(9600); pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); } void loop() { if (BT.available()) { a = (BT.read()); Serial.println(a); if ( a == 'A' ) { digitalWrite (LED1, HIGH); } if ( a == 'a' ) { digitalWrite (LED1, LOW); } if ( a == 'B' ) { digitalWrite (LED2, HIGH); } if ( a == 'b' ) { digitalWrite (LED2, LOW); } if ( a == 'C' ) { digitalWrite (LED3, HIGH); } if ( a == 'c' ) { digitalWrite (LED3, LOW); } if ( a == 'D' ) { digitalWrite (LED1, HIGH); digitalWrite (LED2, HIGH); digitalWrite (LED3, HIGH); } if ( a == 'd' ) { digitalWrite (LED1, LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, LOW); } } }
SELAMAT MENCUBA...!
Location:
Bratislava, Slovakia
Subscribe to:
Posts
(
Atom
)



















