28 March 2019

Tutorial 18 - Projek iOT (Blynk dan LED)


Apa khabar semua..? Dah lama rasanya saya tak bersiaran.. Ada yang rindu ke? Kalau ada, terharu pula saya.. Kalau tiada, "Ada aku kisah..???" Hahaha. Gurau - gurau je..

Baiklah, untuk entry kali ini, saya akan buat satu projek yang tgh trending buat masa ini. Terlalu banyak pertanyaan dan tempahan projek oleh pelajar kepada saya berkaitan projek ini. Jadi, kepada yang bertanya berkaitan projek 'Internet of Things', entry ini saya tujukan khas untuk anda.. Mmmmuaaahhh ciked kat kening...

Internet of Things atau lebih dikenali sebagai iOT adalah satu jenis teknologi baru (takdela baru sangat..) yang sedang pesat berkembang disebabkan pelancaran The Forth Industrial Revolution (IR 4.0) oleh pemain industri pada tahun 2016.. Antara tonggak utama dalam IR4.0 adalah iOT.

So, apa itu iOT?

Bahasa mudahnya, pengguna (kita) boleh mengawal peranti atau menerima sebarang bentuk informasi dari mana - mana peranti dengan syarat, peranti tersebut mestilah dihubungkan dengan internet.

Tak faham?

Macam ni.. Sebagai contoh:

Saya ingin mengawal lampu di rumah pada keadaan saya tidak berada di rumah (pergi kerja, shopping atau dating dengan awek).. Adalah amat mustahil untuk saya mengawal lampu rumah sewaktu saya tiada di rumah kan.. Jadi, dengan teknologi iOT ini, saya  mampu mengawal lampu rumah walaupun saya berada jauh di hujung dunia.. Tapi ada syarat dia.. Lampu itu kena bersambung dengan rangkaian internet. Tu je.. 

Hmmm.. alang - alang dah cerita pasal control lampu dari jauh, saya jadikan projek ini sebagai tutorial lah.. Ok kan?

Jadi, apa yang kita perlu ada untuk buat projek ini ialah:

  1. NodeMCU ESP8266 (Harga RM20-RM25)
  2. Telefon bimbit / telefon pintar (aplikasi Blynk)
  3. Breadboard
  4. LED / Relay
  5. Perintang 220 Ohm
  6. Jumper wire secukup rasa
NodeMCU ESP8266
Aplikasi Blynk pada telefon pintar (Android & iOS)
Cara - cara:
  • Create akaun pada aplikasi Blynk.. Kalau malas nak fikir, guna akaun Facebook pun boleh.. Takde masalah..

  • Pilih Create New Project, kemudian ikut gambar di bawah.

  • Tekan butang Create, nanti akan keluar notification yang mengatakan bahawa ada token telah dihantar kepada email anda. Simpan token itu elok - elok. Jangan buang pula.


  • Perhatikan pada telefon anda, akan keluar paparan seperti dibawah:

  • Klik icon + untuk ke Widget Box, pilih Button


  • Layout akan jadi macam ni.. Tekan widget Button tersebut.
Klik pada icon Button

Pada OUTPUT, pilih Digital dan D0
  • Finally, akan keluar macam ni..
Perhatikan, perkataan Button dah tukar ke SUIS, dan tertera pin D0

Next step adalah perkara paling senang, iaitu tulis coding!!! Hahaha. Tapi macam biasa, saya belanja coding.. Tuan - tuan dan Puan - puan hanya perlu edit sikit - sikit sahaja..


#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = ".....";      // buka email, masukkan token yang anda dapat melalui email
char ssid[] = ".....";      // Nama hotspot anda.. Pada telefon anda, pada Setting, enable Personal Hotspot.
char pass[] = ".....";      // Password hotspot anda

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}

Sambung positive LED pada pin D0 dan negative LED pada GND.


Upload code di atas ke NodeMCU anda.

Hasilnya??



14 June 2018

SELAMAT HARI RAYA EIDUL FITRI 1439H / 2018M


Gemersik takbir mengundang hiba,
Salam diutus tanda ingatan,
Syawal dinanti menjelang tiba,
Salam diutus pohon kemaafan.



Ikhlas dari kami, warga kerja N.A.A ELECTRONICS

23 May 2018

Tutorial 17 - Arduino dan Soil Moisture Sensor


Apa khabar pada pembaca setia blog litar projek2u semua? Sihat ke dak tu? Yang paling penting, puasa ke tak? Hehe.. Jangan curi - curi minum air pula waktu berwuduk nanti.. Kot ye pun dahaga sangat, tunggulah waktu Maghrib ye..

Sempena bulan Ramadhan yang mulia ini, saya doakan pembaca semua mendapat keampuanan dan keredhaan dari Allah s.w.t.. Amin...

Pada entry kali ini, saya akan berkongsikan sedikit ilmu berkaitan sensor yang agak bermanfaat dalam kehidupan harian kita, iaitu Soil Moisture Sensor. Komponen ini memang sangat sesuai digunakan pada projek - projek yang bertemakan pertanian. Kenapa? Sensor ini biasa digunakan untuk mengukur tahap kelembapan tanah pada kebun, ladang, padang golf, padang bola sepak dan lain-lain lagi.

Soil Moisture Sensor
Apabila membeli sensor jenis ini, anda akan memperoleh 2 komponen, iaitu:
  1. Sensor ( yang macam garfu tu )
  2. Comparator ( warna biru )

Jika dilihat pada struktur sensor ini, terdapat 2 hujung yang tajam macam garfu la. Mengapa ek?
Ini bagi memudahkan kepada pengguna untuk mencucuk atau menenggelamkan sensor ini ke dalam tanah.

Kenapa nak kena cucuk dalam tanah pulak??
Kan kita nak ukur tahap kelembapan tanah.. kena la cucuk kat tanah.. Takkan nak cucuk sensor ni dalam lubang hidung pulak.. Kan? Apa punya soalan la ni..

Jadi, pada kali ini, saya nak kongsikan pada pembaca semua cara untuk membuat satu projek yang ringkas menggunakan Soil Moisture Sensor ini. Projek adalah bertemakan pertanian iaitu Automatic Plant Watering System atau dalam bahasa Melayu, Sistem Penyiraman Pokok Automatik. Projek ini berfungsi dengan mengesan kelembapan tanah secara berterusan. Apabila kelembapan tanah berada pada paras rendah (40% dan ke bawah), Arduino akan menghidupkan pam bagi menyiram air ke kawasan yang kering tadi selama 20 saat. Selepas tamat 20 saat, pam akan berhenti dan sensor akan kembali menngesan kelembapan tanah. Proses ini berlaku secara berterusan. 

Walaubagaimanapun, saya akan menggantikan relay dengan LED pada pin 13 bagi memudahkan penulisan tutorial ini. Sekiranya Tuan/Puan/Cik berjaya dengan menggunakan LED, sudah pasti anda berjaya juga dengan menggunakan relay kerana kedua-duanya dikawal secara digital.

Komponen yang diperlukan:
  1. Arduino UNO
  2. Soil Moisture Sensor
  3. Kabel penyambung
Cara Sambungan

How to connect it?
Sambungkan antara bahagian sensor dengan comparator seperti diatas. Akan terdapat tanda ground (3 line macam simbol Adidas) pada sensor dan comparator yang menunjukkan ianya adalah bahagian negatif. Sambungkan bahagian ini dan pin yang ke-2 itu pastinya bahagian positif.

Seterusnya pada bahagian keluaran comparator, terdapat 3 pin yang perlu disambungkan pada Arduino. Eh, kenapa 3 pula? Bukan ada 4 pin ke? Ya, seperti yang kita nampak pada gambar diatas, ada 4 pin iaitu:
  1. Vcc
  2. GND
  3. Digital Output (D0)
  4. Analog Output (A0)
Pin Vcc dan GND sudah wajib disambungkan pada Arduino. Persoalannya sekarang, mana satu kita nak guna? A0 atau D0?

Anda bebas memilih sama ada ingin gunakan A0 atau D0. Untuk guna D0, sensor mengesan hanya 2 keadaan sahaja sama ada tanah kering atau basah. 2 keadaan sahaja. Jika tanah basah, sensor akan hantar isyarat HIGH (1) manakala jika tanah kering, sensor akan hantar LOW (0).

Jika gunakan A0, kita boleh memilih tahap kelembapan yang ingin digunakan. Ini disebabkan analog dapat mengukur dari 0 hingga ke 1027. 0 adalah paling kering, manakala 1027 adalah paling lembap.
Jika kita nak air mula dipam sekiranya tahap kelembapan pada kadar 50%, maka, kita boleh membuat tetapan dengan mengambil nilai 1027 darab 0.5 = 513. Jika nak 40% kelembapan, kita tetapkan nilai 1027 darab 0.4 =  411.. Dekat mana nak buat tetapan?? Kat dalam coding la.. Sabaq la sat... Cheq nak tunjuk la ni..

Aturcara:

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const int MoistureSensor = A0;     // sambungkan pin A0 comparator pada pin A0 Arduino
const int waterPump =  13;         // Saya gunakan LED bagi menggantikan relay

int SensorState = 0;               // declare pembolehubah yang mana semua bacaan yang diterima akan disimpan di dalam ini

void setup() {
  
  pinMode(waterPump, OUTPUT);      // tetapkan water pump sebagai output
  pinMode(MoistureSensor, INPUT);  // tetapkan moisture sensor sebagai input
}

void loop() {
  
  SensorState = analogRead(MoistureSensor); // baca nilai yang diterima oleh sensor pada pin A0 secara analog iaitu 0 hingga 1027

  if (SensorState < 411)           // jika bacaan kelembapan kurang dari 40%:
  {
    digitalWrite(waterPump, HIGH); // waterpump akan ON
    delay (20000);                 // tunggu 20 saat
    digitalWrite(waterPump, LOW);  // tutup semula water pump
  } 
  
  else 
  {
    digitalWrite(waterPump, LOW);  // jika bacaan kelembapan lebih dari 40%, jangan hidupkan pump
  }
}

Jika berjaya, anda boleh ke langkah seterusnya, iaitu menggantikan LED pada pin 13 dengan menggunakan pam air yang sebenar. Litar geganti diperlukan.

Apa? Tak tau nak buat sambungan litar relay macam mana? Takpe, boleh klik pada pautan di bawah untuk melihat kembali tutorial saya berkaitan relay.
  1. Relay 1
  2. Relay 2

SELAMAT MENCUBA & SEMOGA BERJAYA

15 November 2017

Tutorial 16 - Arduino & PIR Sensor



Hello semua!! Rindu saya tak? Haha.. Lama sungguh rasanya saya tak update blog ni. Seperti kebiasaan, bulan 10 dan 11 memang meletihkan. Hampir kebanyakan IPT melaksanakan presentation FYP pada waktu ini. Jadual saya terus jadi padat. Tempahan keluar dan masuk tak henti - henti.  Phewwww!! Mak letih dik... Haha..

Terima kasih kepada semua yang menempah projek dengan saya tempoh hari, harap anda semua berpuas hati dengan hasil kerja saya.

Ok, untuk sesi perkongsian kali ini, saya nak cerita sedikit pasal sebuah sensor yang biasa digunakan. Sensor ini biasa digunakan untuk mengesan pergerakan (movement). Pergerakan ini tidak terhad kepada manusia sahaja. Boleh juga pergerakan ini terhasil daripada objek - objek yang bergerak seperti kipas, pintu, kucing, langsir dan juga lain - lain. Jadi, sensor apakah itu? Saya bagi situasi ya..

PIR Sensor

Situasi 
Pernahkah anda pergi ke mana - mana shopping complex dan tidak semena - mena, pintu itu terbuka sendiri? Pernah kan? Adakah anda rasa ada kuasa mistik pada pintu itu sehingga ia boleh terbuka sendiri? Kalau anda rasa ada unsur mistik, anda memang mistik..

Jika anda perhatikan dengan teliti pada pintu tersebut, anda akan mendapati yang pintu itu dilengkapi dengan sensor yang mengesan pergerakan pada jarak lingkungan 2 ke 3 meter dari pintu tersebut. Rujuk gambar dibawah:

Konsep PIR
Konsep apa dia guna ek..? Ok. Dia macam ni..Apabila terdapat pergerakan di dalam range penebaran cahaya IR, gelombang IR yang terpantul semula ke sensor ini akan menjadi tidak seragam. Receiver sensor akan proses ketidakseragaman ini dan menghasilkan nilai HIGH. Sensor ini bukan mengesan manusia atau kucing tau.. IA MENGESAN PERGERAKAN! Tak percaya? Cuba buat macam ni:

Berdiri tegak di depan pintu tersebut.. Jangan bergerak - gerak tau. Kali pertama, pintu akan terbuka. Ok. Bila pintu dah terbuka, kekal berdiri.. Jgn gerak. Anda akan dapati, pintu akan tertutup semula walaupun anda sedang berdiri betul - betul di hadapan pintu.. Ini membuktikan yang sensor ini mengesan pergerakan, bukannya objek.

Contoh Projek

Theft Detector

Baiklah. Untuk tutorial kali ini, saya akan tunjukkan bagaimana menghasilkan projek Theft Detector. Projek ini akan menggunakan PIR sensor, Arduino dan juga buzzer. PIR sensor ini akan diletakkan di luar rumah kediaman. Objektif projek ini dihasilkan adalah untuk mengesan sebarang pergerakan di luar rumah pada waktu malam dengan andaian pencuri ingin memecah masuk rumah sewaktu tuan rumah sedang tidur.

Sambungan


Aturcara (Coding)


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const int PIR_Sensor = 2;     // the number of the PIR Sensor pin connect
const int Buzzer =  13;      // the number of the buzzer pin

int SensorState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(Buzzer, OUTPUT);
  // initialize the PIR Sensor pin as an input:
  pinMode(PIR_Sensor, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  SensorState = digitalRead(PIR_Sensor);

  // check if the PIR Sensor is triggered.
  // if it is, the SensorState is HIGH:
  
  if (SensorState == HIGH) 
  {
    // turn LED on:
    digitalWrite(Buzzer, HIGH);
  } 
  
  else 
  {
    // turn LED off:
    digitalWrite(Buzzer, LOW);
  }
}


SELAMAT MENCUBA & SEMOGA BERJAYA

04 July 2017

Tutorial 15 - Kaedah Betul Menggunakan Relay Module


Hai! Hola! Apa khabar semua? Harap masih sihat walafiat semua. Masih dalam mood raya lagi ke tu? Takpe.. Teruskan aktiviti beraya anda. Raya kan sebulan.. Tapi pastikan anda maintain berat badan tu, jangan keje nak melantak free je.. Haha..

Memandangkan kita berada di musimperayaan, saya pun tak mahulah nak bercerita tentang benda-benda yang berat dan kompleks. Perkongsian saya kali ini ringan-ringan sahaja iaitu cara penyambungan yang betul di antara Arduino dengan relay module.

Apa itu relay module? Relay module ni adalah satu litar relay yang dah siap dan sedia untuk digunakan. Maksudnya, pengguna tidak perlu lagi nak solder, etching atau sebagainya. Pergi kedai, pilih mana yang berkenan, balik terus sambung ke Arduino dan load. Senang kerja! Namun terdapat banyak jenis relay module yang ada di pasaran. Ada 1 channel, 2 channel, 4 channel dan 8 channel. Channel ni bermaksud berapa banyak litar relay yang ada atas satu papan PCB yang sama. Jika kita beli 4 channel relay module, maksudnya ada 4 litar relay pada satu papan. Rujuk gambar di bawah.
4 Channel Relay

2 Channel Relay

Ok, baik! Sekarang kita dah kenal apa itu relay module. Sekarang kita belajar cara sambungan antara Arduino dengan relay module. Saya akan menggunakan 4 channel relay module sebagai contoh ya.. Kalau tak faham, cepat-cepat angkat tangan tau..

Jom!!

Jika diperhatikan pada pin-out di atas, anda akan dapati yang pin JD-VCC bersambung dengan pin VCC menggunakan 2.54mm header pin jumper (rujuk gambar di bawah). Jadi, akan timbul 2 persoalan untuk situasi ini.
  1. Bila kita perlu kekalkan sambungan ini?
  2. Bila perlu cabut jumper ini? 

2.54mm header pin jumper
Pilihan 1: Biarkan sahaja jumper ini bersambung antara pin JD-VCC dengan pin VCC

Jika anda untuk membiarkan sahaja jumper ini berada pada pin JD-VCC dengan pin VCC, bermakna anda telah memilih untuk menolak ciri keselamatan yang ada pada litar ini.

Tidaklah menjadi satu kesalahan atau berdosa jika anda membiarkan jumper ini, tapi kemungkinan besar litar relay dan juga load yang bersambung pada relay akan lebih terdedah kepada kerosakan. Namun jika anda bertegas untuk memilih kaedah ini, berikut adalah cara sambungannya.


Cara Sambungan dengan mengekalkan jumper

Pilihan 2: Cabut jumper

Ini adalah pilihan yang bijak dan boleh saya katakan, PALING TEPAT. Tahniah! Namun, jika anda memilih untuk guna kaedah ini, anda perlu menyediakan satu sumber bekalan kuasa yang lain. Sebagai contoh, jika saya nak menggunakan kaedah ini, saya akan stand-by DC Power Supply 5V untuk disambungkan pada pin JD-VCC nanti. Ikuti langkah-langkah seperti di bawah:


  1. Cabut header pin jumper yang menyambungkan pin JD-VCC dengan pin VCC
  2. Ambil kabel terminal positive DC power supply (+5V) dan sambungkan pada pin JD-VCC 
  3. Ambil kabel terminal negative DC power supply (0V) dan sambungkan pada pin GND
  4. Sambungkan kabel 5V pada papan Arduino dengan satu lagi pin VCC pada relay module
  5. Untuk pin IN1 hingga IN4, sambungkan pada mana - mana pin Arduino seperti yang anda telah assign di dalam coding


Gambar dibawah adalah contoh penyambungan antara DC Power Supply, relay module dan Arduino. Check-it out!

Pastikan pin GND Arduino tidak bersambung dengan mana - mana pin pada relay module

SELAMAT MENCUBA & SEMOGA BERJAYA