08 April 2016

Tutorial 8 : Pad Kekunci (Keypad) & Arduino

ASSALAMUALAIKUM WBT & SALAM SEJAHTERA


Apa khabar semua? Saya mendoakan agar semua pembaca setia blog litarprojek2u sihat dan sejahtera belaka.

Sempena hari Jumaat yang penuh keberkatan ini, saya ingin berkongsi dengan pembaca semua cara - cara membuat sambungan dan di antara Arduino dan keypad (4x4) dan juga cara menulis atur caranya.

Apa itu Pad Kekunci (Keypad) ?

Pad kekunci adalah sejenis alat / komponen yang membekalkan (provide) isyarat masukan (input) kepada Arduino. Keypad biasanya dipakai bila mana pengguna ingin membuat operasi menggunakan jujukan nombor seperti password, nombor telefon, nombor pekerja dan lain - lain lagi.

Terdapat pelbagai keypad yang dijual di pasaran. Ada yang murah, ada yang mahal. Pada pendapat saya, keypad jenis membrane adalah sangat sesuai kerana ianya lebih ekonomi dan saiznya yang nipis memudahkan pengguna untuk pasang dan dibawa ke mana - mana.
Membrane Keypad (4 x 4)









Button Keypad (4 x 4)
Button Keypad (4 x 3)
Jika diperhatikan, kita dapat lihat perbezaan ketara antara keypad (4 x 4) dan keypad (4 x 3). Untuk 4 x 4, keypad tersebut mempunyai 4 baris dan 4 kolum (16 karakter) manakala bagi 4 x 3,  keypadnya pula mempunyai 4 baris dan 3 kolum (12 karakter). Oleh yang demikian, adalah sangat penting jika anda memilih keypad yang betul sebelum membeli. Takut membazir pula. Membazir tu kan amalan syaitoon!

Operasi Aturcara

LED akan menyala apabila kata kunci (password) yang betul iaitu 1234 dimasukkan ke dalam sistem. Cara menekan masuk password adalah dengan cara menekan karakter 1, 2, 3 dan 4, kemudian diikuti butang ' * ' yang berfungsi seolah - olah butang ENTER. Jika pengguna tersilap tekan (sebab jari gemuk sangat), pengguna boleh menggunakan butang ' # ' yang berfungsi sebagai butang RESET.

Secara jujurnya, projek ini amat menarik kerana anda boleh mengubah LED kepada Solenoid Lock ( guna litar geganti untuk terima isyarat dari Arduino ) dan letakkan dibahagian dalam pintu rumah anda. Ia akan bertindak seperti home security system. Murah & mudah.


Komponen Yang Diperlukan
  1. Arduino ( apa - apa jenis pun takpe, tapi saya guna Nano )
  2. Membrane Keypad
  3. USB Cable A-B type
  4. Perintang 220 Ohm
  5. LED
  6. Jumper Cable
Libraries Yang Diperlukan
  1. Keypad 
  2. Password 
Sambungan Litar


LED disambung pada pin 13 Arduino Nano
Resistor 220 dipasang pada LED
Aturcara


#include <Password.h>
#include <Keypad.h>


Password password = Password ("1234"); // tukar password disini


const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

byte rowPins[ROWS] = { 9, 8, 7, 6 };
byte colPins[COLS] = { 5, 4, 3, 2 };

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup()
  { 
  pinMode(13, OUTPUT);
  keypad.addEventListener(keypadEvent);
  }

void loop(){
  keypad.getKey();
  }
  void keypadEvent(KeypadEvent eKey){
  
  switch (keypad.getState()){
  case PRESSED:
  
  switch (eKey){
    
    case '*': 
    
    checkPassword();
    delay(10); 
    break;
    
    case '#': 
    
    password.reset();
    delay(10);
    
    break;
    
    default: 
    
    password.append(eKey);
    delay(10);
    }
  }
}

void checkPassword(){
  
if (password.evaluate())
    {
    digitalWrite(13, HIGH);   
    }


else
    {
    digitalWrite(13, LOW); 
    }
}




21 March 2016

Tutorial 7 - Arduino & GSM Module (SIM900)

ASSALAMUALAIKUM W.B.T & SALAM SEJAHTERA

Hai pembaca setia blog litarprojek2u! Apa khabar semua? Semoga sihat - sihat belaka. Okey, cerita banyak pun tak guna. Untuk post kali ini, saya ingin kongsikan cara - cara menggabungkan Arduino UNO dengan satu lagi alat perhubungan tanpa wayar iaitu GSM Module jenis SIM900. Jika anda baca post sebelum ini, saya ada membuat senarai pendek tentang alat perhubungan tanpa wayar ini. Antaranya ialah RF Transmitter & Receiver, Bluetooth dan GSM. GSM module ni sangat powerful sebab kita boleh kawal litar kita menggunakan SMS atau, lagi power, boleh buat call terus. Oleh kerana dia power, harga dia pun boleh tahan power. Chia chia chia... (ketawa jilake)

Saya ada membuat tinjauan sekitar Jalan Pasar di Pudu, KL (syurga elektronik bagi saya) berkaitan modul GSM ini. Saya dapati harga setiap kedai lebih kurang sama sahaja iaitu dalam lingkungan RM190 ke RM200. Tak termasuk GST tau.. So, dalam RM210++ la jugak.. Jadi, kalau ada pembaca yang ingin membeli module ini, pasti jangan kena tipu pulak ye.. Kalau murah semacam je, hati - hati. Takut kena scam pula.

APA ITU SIM900?

SIM900 GSM / GPRS Shield
SIM900 GSM/GPRS Shield adalah alat yang berfungsi untuk melakukan komunikasi antara telefon bimbit dengan Arduino anda menggunakan rangkaian GSM. Menggunakan alat ini, kita boleh menghantar dan menerima SMS dan panggilan, dengan menggunakan general purpose input/output (GPIO) yang disediakan

SIM900 menggunakan AT Command untuk beroperasi dan menggunakan komunikasi UART (Universal Asynchronous Receiver/Transmitter) dengan Arduino. SIM900 memiliki 12 GPIO, 2 ADC dan 1 PWM.

SIM900 boleh beroperasi secara Quad Band, iaitu rangkaian GSM yang berfrekuensi 850MHz, 900MHz, rangakaian Dual-Band 900/1800MHz dan 1900MHz. Di Malaysia, kita menggunakan jaringan 900/1800MHz. Oleh yang demikian, boleh la kita guna module ini.
 
Ciri - ciri lain SIM900 (saya copy paste dari eBay)
  • Quad-Band 850 / 900/ 1800 / 1900 MHz. 
  • GPRS multi-slot class 10/8
  • GPRS mobile station class B
  • Compliant to GSM phase 2/2+
  • Class 4 (2 W @ 850 / 900 MHz)
  • Class 1 (1 W @ 1800 / 1900MHz)
  • Control via AT commands - Standard Commands: GSM 07.07 & 07.05 | Enhanced Commands: SIMCOM AT Commands.
  • Short Message Service - so that you can send small amounts of data over the network (ASCII or raw hexadecimal).
  • Embedded TCP/UDP stack
  • RTC supported.
  • Selectable serial port.
  • Speaker and Headphone jacks
  • Low power consumption - 1.5mA(sleep mode) 
  • Industrial Temperature Range - -40°C to +85 °C

Library yang perlu ditambah:

Untuk menggunakan module ini, anda perlu menambah library Software Serial ke dalam folder libraries Arduino.

Bekalan Kuasa SIM900

Untuk membolehkan module ini beroperasi dalam keadaan optimum, sila gunakan adapter berkapasiti 5V dengan arus sebanyak 2 Ampere.

Operasi

Untuk kali ini, saya ingin membina satu aturcara bila mana water sensor mengesan air (HIGH), SMS akan dihantar ke telefon bimbit penerima.

Memasang Kad Sim pada SIM900

Pastikan kad sim yang anda hendak pasang pada module ini ada kredit ye. Kalau takde kredit, sampai kiamat la SMS tak kan diterima.
Pasang sim kad pada Modul SIM900
Selepas anda memasang sim kad, gunakan adapter 5V,2A untuk menghidupkan module ini. Terdapat 2 indicator LED iaitu Status dan juga NetLight. Jika module ini menerima voltan yang mencukupi dan minima arus, LED Status akan menyala (tidak berkelip). Anda perlu menekan  softswitch yang terdapat pada module tersebut. Jika Netlight berkelip selang 3 saat, itu menunjukkan yang SIM900 anda sudah bersedia untuk beraksi.

Sambungan

Bagi water sensor, sambungan dia adalah sangat mudah. Terdapat 3 pin iaitu +, - dan S. Jadi:
  • + sambung pada pin Arduino 5V
  • - sambung pada pin Arduino GND
  • S sambung pada pin Arduino A0 (sebenarnya, mana - mana pin Analog Input pun boleh)
Water Sensor
Untuk berkomunikasi dengan Arduino, shield ini menggunakan komunikasi serial UART. Pin yang digunakan adalah port Arduino anda, sama ada ingin gunakan pin Rx/Tx (D0/D1) atau Rx/Tx (D7/D8). Agar tidak menganggu komunikasi antara Arduino dengan PC, pin yang kita gunakan adalah software serial D7/D8. Oleh itu, kita perlu membuat tetapan jumper UART di module SIM900 seperti gambarajah di bawah:
Sambungan UART pada SIM900

 

Aturcara.


#include <SoftwareSerial.h>   
#define rxPin 0  
#define txPin 1  

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);  
char text[150];   
String message="WATER DETECTED";

int Water_Sensor = A0;

int Water_Sensor_State = 0;

int sms_Send = 0;

void setup() {

  mySerial.begin(9600);  

  pinMode (Water_Sensor, INPUT);

}

void loop() {

 Water_Sensor_State = digitalRead (Water_Sensor);

 if ( Water_Sensor_State == HIGH )
  {
    for (sms_Send; sms_Send < 1; sms_Send++)
        {
          delay (30);
          mySerial.print("AT+CMGF=1\r"); 
          delay(1000);  
          mySerial.print("AT+CMGS=\"+601xxxxxxxx\"\r"); // masukkan no. telefon
          delay(1000);  
          mySerial.println(message);  
          mySerial.print("\r");  
          delay(1000);  
          mySerial.println((char)26);  
          mySerial.println();
        }
      
   }

 else
  {

  }

13 January 2016

Tutorial 6 - Arduino + 433MHz Radio Frequency (RF) Transmitter & Receiver

ASSALAMUALAIKUM WBT & SALAM SEJAHTERA.

Seperti yang janjikan pada post sebelum ini, saya akan menerangkan tentang cara mengawal output menggunakan kaedah wireless. Kali ini, saya memilih alat / komponen asas dalam telekomunikasi  iaitu Radio Frequency.

433MHz RF Transmitter - Receiver
Untuk pengetahuan anda, RF banyak digunakan pada alat kawalan jauh (remote control) seperti TV, penghawa dingin, kipas dan juga alat keselamatan kereta. Sebelum kita pergi lebih jauh, adalah lebih baik kita mengenal secara mendalam tentang RF Transmitter - Receiver.

Transmitter (Tx): 

Voltan Kendalian : 3V hingga 12V  (untuk kuasa maksimum, guna 12V)
Arus Kendalian: 9mA hingga 40mA
Mod Resonan: Surface Acoustic Wave
Mod Modulasi: Amplitude Shift Keying
Frekuensi Kendalian: 433MHz
Kuasa Penghantaran: 25mW (433MHz pada 12V)
Ralat Frekuensi: +150kHz (maksima)
Halaju Gelombang :  kurang dari 10Kbps

Receiver (Rx):

Voltan Kendalian: 5.0VDC +0.5V
Arus Kendalian: maksima 5.5mA
Mod Nyahmodulasi: On Off Keying / Amplitude Shift Keying
Frekuensi Kendalian: 315MHz hingga 433.92MHz
Lebar jalur: 2MHz
Halaju Penghantaran: <9.6Kbps (pada 315MHz dan -95dBm)


Jika di lihat pada spesifikasi di atas, kita boleh membuat kesimpulan yang dengan menggunakan RF Tx-Rx ini, jarak maksimum antara Tx dengan Rx boleh dikawal sejauh 100 meter!! What??!! Ya. 100 meter. Jarak 100 meter hanya boleh dicapai jika tiada halangan seperti dinding, pokok atau bangunan. Atau dalam kata lain, KAWASAN TERBUKA ler.. Jika ada halangan antara Tx dan Rx, maka jarak maksima 100 meter tidak mampu dicapai.

Untuk projek kali ini, saya akan menggunakan 2 Arduino (satu untuk transmit data dan satu lagi untuk receiver) untuk menyalakan LED. Jika bahagian Rx menerima isyarat yang dihantar oleh Rx, LED pada pin 13 (onboard) akan berkelip - kelip mengikut isyarat yang diterima.

Ayuh!! kita mula berhuhu~ ~

Komponen  yang diperlukan.

  1. Arduino UNO - 2 set
  2. 433MHz Transmitter - Receiver - 1 set
  3. Jumper Wire - sesedap rasa
  4. Breadboard
  5. 9V Bateri (Petak) - 2 biji

Skematik Sambungan Litar

Sambungan pada Tx

Sambungan pada Rx

 Aturcara Arduino

Sebelum menulis aturcara, anda perlu memuat turun Arduino library yang membolehkan pengguna menghantar data ringkas tanpa melalui proses addressing, re-transmit dan juga acknowlegdement. Klik link dibawah dan paste folder VirtualWire ini ke dalam libraries Arduino.


Virtual Wire Arduino 

Aturcara pada Tx


#include <VirtualWire.h>
char *controller;
void setup()
{
  pinMode(13,OUTPUT);
  vw_set_ptt_inverted(true);
  vw_set_tx_pin(12);
  vw_setup(4000);
}

void loop()
{
  controller="1"  ;
  vw_send((uint8_t *)controller, strlen(controller));
  vw_wait_tx(); 
  digitalWrite(13,1);
  delay(2000);
  controller="0"  ;
  vw_send((uint8_t *)controller, strlen(controller));
  vw_wait_tx(); 
  digitalWrite(13,0);
  delay(2000);
}


Aturcara pada Rx


#include <VirtualWire.h>
 
void setup()
{
  vw_set_ptt_inverted(true);
  vw_set_rx_pin(12);
  vw_setup(4000); 
  pinMode(13, OUTPUT);
  vw_rx_start();     
}
  
void loop()
{
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)){
      
       if(buf[0]=='1'){
         digitalWrite(13,1);
         }
   
      if(buf[0]=='0'){
         digitalWrite(13,0);
         }

      }
}

02 December 2015

Pengenalan - ARDUINO Dan Alat Perhubungan Tanpa Wayar

ASSALAMUALAIKUM & SALAM SEJAHTERA

Untuk entry kali ini, saya akan berkongsi bersama para pembaca tentang komponen komunikasi yang biasa digunakan bersama mikro pengawal Arduino.

Persoalan yang biasa diajukan kepada saya adalah mengapa perlu ada komponen komunikasi? Jawapannya mudah! Untuk menghantar isyarat kepada sesuatu alat dengan menggunakan kaedah tanpa wayar atau wireless.

Sebagai contoh, jika saya ingin menghidupkan lampu rumah yang terletak 200km dari lokasi saya berada sekarang, apa yang saya perlukan adalah Arduino dan 1 alat komunikasi. Kedua-dua alat ini saya akan letakkan di rumah saya dan berada dalam keadaan ON 24 jam. Bila saya ingin menghidupkan lampu / kipas, saya hanya perlu membuat panggilan ke alat komunikasi yang di attach bersama Arduino dan pommm!! lampu pun hidup.. Hebat bukan?!

Terdapat beberapa jenis alat komunikasi yang biasa digunakan bersama Arduino, antaranya ialah:
  1. 433MHz RF Module
  2. Bluetooth Module
  3. GSM Module
  4. Wi-Fi Module
433MHz Radio Frequency Module

Bluetooth Module
GSM Module (Siemens TC-35)
Wi-Fi Module
Saya akan kongsikan dalam post yang akan datang cara menggunakan 433MHz RF Transmitter & Receiver bersama Arduino.

Tunggu...

06 October 2015

Litar Bekalan Kuasa 12V, 9V dan 5V DC (Power Supply Circuit)

ASSALAMUALAIKUM WBT & SALAM SEJAHTERA

Litar bekalan kuasa ini menghasilkan Arus Terus (DC) sebanyak TIGA keluaran (output) iaitu:
  1. 5V  (untuk litar PIC)
  2. 9V  (untuk Arduino, litar relay)
  3. 12V (untuk litar motor)
Ketiga - tiga keluaran ini boleh digunakan secara serentak. Menggunakan 4 buah diod 1N4001 yang bertindak sebagai "bridge rectifier" atau penerus, diod akan menukar AC voltage kepada DC voltage dan 2 kapasitor akan bertindak sebagai penapis.

LM7809, LM7805 dan LM7812 bertindak sebagai voltage regulator atau pengatur voltan akan mengeluarkan voltan keluaran yang dikehendaki. 2 digit terakhir pada voltage regulator ini bermaksud nilai voltan yang akan dihasilkan. Contoh, LM7805. 2 digit terakhir (05) bermaksud, voltan keluaran yang akan dihasilkan adalah 5V DC.

Litar Bekalan Kuasa dengan 3 Voltan Keluaran (ISIS)
PCB Footprint Untuk Litar Bekalan Kuasa (ARES)
3D View Litar Bekalan Kuasa.
Memandangkan litar ini mudah dan ringkas, namun proses penghasilannya tetap rumit. Anda masih perlu melakukan proses UV, develop, etching, drilling dan soldering. Jika tersilap melakukan proses develop, terpaksa pulak membeli UV Board yang baru (RM15 - RM 17 bagi saiz 15cm x 10 cm). Jika tiada maslah bagi setiap proses di atas, berkemungkinan litar anda tidak dapat beroperasi disebabkan silap melukis litar pada software. Berapa banyak kos dah habis? Penat lagi.. Supervisor dah makin hilang sabar dah tu..

JANGAN RISAU.. KAMI BOLEH MEMBANTU MERINGANKAN BEBAN ANDA!

Dengan RM45.00**, anda akan mendapat satu set litar bekalan kuasa 5V, 9V & 12V (1 Ampere) yang cun dan tip - top. Anda tak perlu membazir masa, tenaga dan wang untuk membuat litar power supply lagi. Kami telah melakukan ujian kendalian sebelum litar ini dihantar kepada ada bagi memastikan kualitinya terjamin.

Litar Bekalan Kuasa 5, 9 & 12V DC (1 Amp) - RM45.00**