Author : Ila MulyandiNo comments
Membuat "GPS TRACKER with LCD 2.4" and Auto SMS Location Sender + RTC & Temperature Sensor" dengan Arduino UNO Atmega328
Module yang dibutuhkan dalam Project ini :
- 1 Unit Arduino Uno Atmega328
- 1 Unit Module RTC DS3231
- 1 Unit Module LCD TFT 2,4 inch dengan Chip Controller ILI9328 / ILI9325 / ILI9341
- 1 Unit Memory microSD 1GB atau 2GB (4GB juga gak papa) untuk save image dan data
- 1 Unit Module GPS, pilih salah satu :
Ublox Neo6M-V1 dapatkan disini
Ublox Neo6M-V2 dapatkan disini
Ublox Neo7M dapatkan disini
- 1 Unit Module GSM/GPRS SIM800L V.2 (alternatif bisa pakai V.1+stepdown)
- Beberapa pcs kabel Jumper Dupont Male-Female dan Female-Female
(Apabila anda mempunyai LCD TFT 2,4 yang berbeda Seri Chip Driver Controllernya mungkin tidak
bisa berjalan dengan Library Adafruit dan HARUS menggunakan library mcufriend_kbv atau Uglib
sehingga harus ada modifikasi coding pada bagian tampilan display nya )
Library Arduino yang dibutuhkan dalam Project ini :
- Library SPFD5408 untuk LCD TFT dengan chip ILI9325/9328 download disini.
- Library Adafruit_LCD_TFT untuk LCD TFT dengan chip ILI9341/Other Chip download disini.
- Library mcufriend_kbv untuk LCD TFT yang tidak mau jalan dengan Lib Adafruit download disini.
- Library GPS Ublox Neo6M / Neo7M download disini.
- Library RTC DS3231 download disini.
(Beberapa kasus apabila anda menggunakan LCD TFT 2,4 yang menggunakan library selain
SPFD5408 (mcufriend dan Adafrui TFT_LCD) harus mengatur ulang posisi cursor text & shape.
Wiring Module ke Arduino Board Project ini :
Menghubungkan Arduino uno dengan Module LCD TFT 2,4"
-Karena Module LCD TFT 2,4" sudah berbentuk Uno Shiled maka tidak perlu adanya Wiring jumper dari module ini ke Arduino Board.Yang perlu kita perhatikan adalah adanya pin yang nantinya akan dipakai bersama oleh Module LCD TFT dan Module RTC DS3231 yaitu pin Analog A4.
-Pin A4 pada Arduino dipakai oleh Module TFT LCD sebagai RESET PIN yang fungsinya sebagai Trigger LCD BEGIN atau untuk memulai penggunaan LCD dan pengkosongan layar.
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_TFTLCD.h> // Hardware-specific library // The control pins for the LCD can be assigned to any digital or // analog pins...but we'll use the analog pins as this allows us to // double up the pins with the touch screen (see the TFT paint example). #define LCD_CS A3 // Chip Select goes to Analog 3 #define LCD_CD A2 // Command/Data goes to Analog 2 #define LCD_WR A1 // LCD Write goes to Analog 1 #define LCD_RD A0 // LCD Read goes to Analog 0 #define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
Pada sample coding dari library kita dapat melihat bahwa pin Analog A0 sampai dengan A4 digunakan oleh LCD termasuk A4 sebagai LCD RESET.
Pada sample diatas juga disebutkan bahwa pin LCD RESET dapat menggunakan pin selain A4 (Apabila pin A4 akan digunakan untuk keperluan lain.misal komunikasi i2c/iic/twi) yaitu dengan menggabungkan pin LCD RESET dengan PIN RESET (RST) pada board Arduino.
Sebetulnya kita bisa saja memindahkan posisi PIN LCD RESET ke pin lain yang tersisa seperti A5,D0 ataupun D1,sayangnya semua pin tersebut akan kita pakai untuk koneksi dengan Module RTC, GPS dan SIM800L sehingga tidak ada jalan lain kita akan menggunakan PIN Reset Arduino sebagai Pin Reset LCD.
Artinya untuk memulai LCD kita harus mereset Arduino terlebih dulu.jadi saat Arduino baru mendapat power LCD blum bekerja sampai kita melakukan RESET pada board arduino baik dari tombol Reset yang di Board Arduino ataupun Tombol Reset yang berada di Module LCD TFT.
Pada penggunaan LCD nya kita tidak boleh memasukan pin LCD Reset ke dalam lubang A4 pada Board Arduino karena kita akan menghubungkanya dengan pin Reset Arduino.Jadi Jika kita akan menancapkan langsung LCD ke Arduino Board kita harus "membengkokan" pin LCD RST ke dalam atau keluar agar tidak masuk ke lubang A4 kemudian kita dapat menggunakan kabel Jumper untuk menghubungkan pin LCD RESET dengan Pin Reset pada Arduino Uno Board.
(Gambar diatas : PIN LCD RST pada LCD TFT Module saya bengkokan agar tidak masuk ke lubang A4 pada board Arduino.Kabel jumper hitam kita hubungkan ke pin Reset Arduino)
(Gambar diatas : PIN Reset pada Arduino Board (Arduino Uno Clone double header ditambah pin Male pada lubang sebelah female header) saya bengkokan untuk menerima kabel jumper dari PIN LCD RST pada lcd tft module.Kabel jumper hitam kita hubungkan ke pin LCD RST.
Untuk #define LCD_RESET pada codingnya bisa kita atur ke sembarang PIN,disini saya sarankan ke PIN 13 namun tetap pada actual wiringnya kita menyambungkan pin LCD RESET ke pin Reset Arduino.
Maka pada Define pin LCD akan kita rubah seperti di bawah ini :
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_TFTLCD.h> // Hardware-specific library // The control pins for the LCD can be assigned to any digital or // analog pins...but we'll use the analog pins as this allows us to // double up the pins with the touch screen (see the TFT paint example). #define LCD_CS A3 // Chip Select goes to Analog 3 #define LCD_CD A2 // Command/Data goes to Analog 2 #define LCD_WR A1 // LCD Write goes to Analog 1 #define LCD_RD A0 // LCD Read goes to Analog 0 #define LCD_RESET 13 // Fake Reset PIN
Setelah selesai melakukan Wiring LCD dengan Board Arduino maka akan didapatkan Sisa Pin A4, A5, D0 dan D1.Kita akan menggunakan 4 pin tersebut untuk keperluan berikut :
A4 dan A5 = koneksi data i2C dengan module RTC DS3231
D0 (RX) = Menerima data Serial dari Module GPS Neo6M / Neo7M
D1 (TX) = Mengirimkan data Serial ke Module SIM800L untuk perintah Kirim SMS
Memasukan background image ke memory untuk ditampilkan di LCD
Untuk mempercantik tampilan display GPS kita akan menampilkan gambar pada background nya.
gambar akan kita taruh pada kartu microSD yang nantinya akan kita masukan ke dalam slot memory yang ada di LCD TFT Module. Jenis LCD ini mampu membaca memory hingga 8GB (belum coba sampai 16GB dan 32GB).
Syarat gambar yang dapat kita load ke LCD adalah jenis bitmap (.bmp) dan resolusi gambar sama dengan resolusi LCD yaitu 320*240pixel dengan kerapatan 72-96dpi.
Pada sampel kode ini saya sertakan contoh gambar yang saya Load ke LCD (bersama ino file) yang bisa di download pada link download di link download.
Menghubungkan Arduino uno dengan Module RTC DS3231
DS3231 < --> Arduino Uno Board
VCC <--> pin 5V Arduino
GND <--> pin GND Arduino
SDA <--> pin SDA Arduino (A4)
SCL <--> pin SCL Arduino (A5)
Menghubungkan Arduino uno dengan Module GPS Ublox Neo6M/Neo7M
GPS Ublox < --> Arduino Uno Board
VCC <--> pin 5V Arduino atau 5V Eksternal Power Supply
GND <--> pin GND Arduino atau GND Eksternal Power Supply
TX <--> pin D0 Arduino (RX)
RX <--> tidak dihubungkan (Not Connected)
Menghubungkan Arduino uno dengan Module GPS Ublox Neo6M/Neo7M
SIM800L V.2 < --> Arduino Uno Board
VCC <--> pin 5V Arduino atau 5V Eksternal Power Supply
GND <--> pin GND Arduino atau GND Eksternal Power Supply
TX <--> tidak dihubungkan (Not Connected)
RX <--> pin D1 Arduino (TX)
Warning : Jika kita mengambil Power untuk SIM800L V.2 dari pin 5V Arduino beberapa kasus yang terjadi adalah SIM800L gagal booting karena drop tegangan (arus kurang), perhatikan lampu RING/PWR pada module SIM800L V.2, apabila dia berkedip berulang berarti SIM800L V.2 mengalami auto reset akibat gagal booting karena kurang power, namun jika lampu led pada RING/PWR dapat menyala terus dan diikuti dengan lampu NET/SIGNAL berkedip mencari signal maka power masih cukup untuk booting module SIM800L.
Warning :Jika anda menggunakan SIM800L V.1 (pcb warna merah) maka anda harus menggunakan tambahan step down converter (misal module LM2596) untuk merubah tegangan 5V menjadi sekitar 3,9-4,1 V untuk power supply SIM800L V.1 (Versi 1 membutuhkan tegangan VCC min 3,7V max 4,2V).
Indikator pada Module SIM800L (analisa error)
-Lampu Ring/Power Menyala terus : Power kuat untuk melakukan booting
-Lampu Ring/Power berkedip setiap beberapa detik : Power kurang untuk melakukan booting (auto resart)
-Lampu NET/Signal berkedip cepat : Search Network / Registrasi Network
-Lampu NET/Signal berkedip pelan :Sudah terdaftar pada Jaringan / mendapatkan signal operator
*Jika Lampu Net/Signal terus berkedip cepat dan tida melambat berarti Module SIM800L tidak berhasil mendapatkan jaringan dan terus mencari,bisa karena signal Operator yang minim di tempat tersebut ataupun kartu SIM yang sudah Expired atau posisi Kartu SIM terbalik.
-Lampu Ring/Power Kedip Cepat 3 kali kemudian padam (SIM800L V.1) : Over Voltage tegangan melebihi 4,2V.Semua fungsi akan dihentikan.
Sketch Coding / Sourche code untuk project ini :
Untuk .ino file dan sampel .bmp background silahkan download disini.
Anda bisa melihatnya terlebih dulu kemudian copy paste code berikut ke Arduino IDE anda dan upload sketch nya ke dalam Arduino Board anda.
Warning : Saat Upload sketch melalui Arduino IDE lepas sambungan kabel jumper dari TX GPS ke RX (D0) Arduino Board, setelah selesai Upload silahkan dihubungkan kembali karena Arduino Board tidak bisa menerima program selama PIN D0 (TX) masih terhubung dengan module lain.
Posted On : Sunday, February 5, 2017Time : 2:43 PM