Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Jumat, 01 April 2022

Internet of Things Middleware

- Tidak ada komentar

IoT middleware adalah salah satu layer penting pada IoT. Dengan keterbatasan sumber daya memungkinkan node sensor tidak memiliki fungsi atau akses untuk terhubung langsung ke internet. Selain itu, beberapa perangkat yang tidak bekerja di atas protokol TCP / IP otomatis tidak dapat berkomunikasi secara langsung dengan perangkat yang ada di internet. Hal ini bisa menjadi kendala dalam pengiriman data dari node sensor ke aplikasi IoT yang ada pada inernet. Selain keterbatasan sumber daya, keberagaman sensor dari segi teknologi komunikasi menjadikan tantangan tersendiri, yaitu interoperabilitas. Solusi dari permasalahan itu adalah dengan pendekatan middleware sebagai jembatan anatara infrastruktur IoT dan aplikasi berbasis IoT (Razzaque dkk., 2016).

Middleware didefinisikan menjadi beberapa jenis yaitu :

a. Service based middleware

Sebuah middleware yang dikategorikan dengan fungsi utama untuk pengelolaan data dari sensor dengan dilengkapi fungsi pemrosesan data. Fungsi kedua yaitu melayani permintaan data atau hasil pemrosesan data dari aplikasi yang lain.

b. Cloud-based middleware

Middleware tipe ini memiliki kinerja yang tinggi dan tepat jika diterapkan pada infrastruktur cloud. Umumnya komunikasi yang digunakan adalah berbasis web services RESTfull dengan method POST untuk mengirim data dan method GET untuk meminta sebuah data.

c. Actor-based middleware

Middleware jenis ini dirancang agar lebih dekat dengan infrastruktur IoT, yaitu ke perangkat-perangkat sensor, dan bahkan ke pengguna aplikasi IoT. Konsep middleware ini dirancang untuk menjawab keterbatasan yang ada pada Things. Media dan protokol komunikasi pada middleware ini terdapat dua jenis, satu untuk berinteraksi dengan perangkat-perangkat sensor atau node sensor pada intranet, yang kedua untuk berinteraksi dengan perangkat IoT yang ada pada internet (TerraSwarm, 2017).

Salah satu permasalahan yang ada pada IoT adalah interoperabilitas. Interoperabilitas muncul akibat keberagaman entitas yang ada pada IoT. Contohnya beragam jenis sensor dengan format data yang berbeda pula, antarmuka komunikasi yang berbeda dan protokol komunikasi yang tersedia. Hal ini wajar karena setiap node sensor atau Things mempunyai fungsi yang beragam. Solusi dari masalah ini adalah sebuah middleware yang mampu mengatasi interoperabilitas dengan menyediakan antarmuka, protokol komunikasi yang beragam dan mampu mengolah data dengan data yang beragam.

 

Arsitektur IoT Middleware

    

Pada penelitian sebelumnya, penulis mengusulkan sebuah IoT middleware yang dilengkapi dengan berbagai jenis media komunikasi dan protokol komunikasi (Pramukantoro dan Anwari, 2018) (Pramukantoro et al., 2018). Sebagai gambaran dari IoT middleware tampak pada gambar 1.1 middleware tersebut terdiri dari beberapa network interface, sensor gateway, service unit, application gateway dan internet gateway.  

a. Network Interface

Pada bagian network interface, middleware tidak hanya mampu berkomunikasi dengan satu antarmuka atau media komunikasi, terdapat Wi-Fi, BLE, 6LoWPAN dan LoRa. Antarmuka BLE, 6LoWPAN dan LoRa memiliki keunggulan dari segi konsumsi energi yang rendah. Akan tetapi BLE dan LoRa tidak bekerja di atas TCP / IP, oleh karena itu diperlukan sebuah gateway untuk mengubah data yang diterima dari BLE dan LoRa ke dalam format publish / subscribe. Tujuannya adalah agar mempunyai standar yang sama setelah sampai pada IoT middleware.

b. Sensor Gateway

Sensor gateway bertugas untuk menerima data sebelum diteruskan ke message broker. Message broker pada umumnya bekerja di atas protokol TCP / IP, hal ini menyebabkan node sensor yang tidak punya fitur TCP / IP tidak dapat bekerja dengan mekanisme publish-subscribe. Protokol perpesanan yang umum digunakan adalah MQTT dan CoAP. Pola komunikasi CoAP adalah client-server, berbeda dengan MQTT yang menggunakan publish-subscribe, sebagai gantinya perlu menempatkan topik pada URL CoAP. Contohnya /topik/sensor, sehingga dalam pengiriman pesana dari node sensor ke IoT middleware menggunakan parameter :

Diagram Publish Data

Pada gambar di atas terdapat dua jenis node sensor yang melakukan publish data dengan protokol CoAP dan MQTT ke IoT middleware. Data diterima oleh sensor gateway yang bekerja dengan mekanisme publish-subscribe. Dalam contoh praktik nantinya terdapat BLE gateway dan LoRa gateway yang bertugas mengubah data yang dikirim dari node sensor yang tidak berbasis TCP / IP ke protokol MQTT, sehingga data yang dikirim dapat diterima oleh message broker. Data yang diterima oleh message broker kemudian didistribusikan ke subscriber sesuai topik yang dilanggan (Pramukantoro, Kusyanti dan Yazid, 2018).

c. Service Unit

Service unit adalah sebuah message broker yang bertugas menampung data sementara. Data yang tersimpan dalam broker bersifat volatile. Pada umumnya message broker yang dipilih menyimpan dan bekerja pada lingkungan memory dengan alasan kecepatan. Contoh dari message broker adalah redis, mosquito dan MongoDB. Data yang dikirim ke message broker redis dan mosquito bersifat volatile. Akan tetapi sangat memungkinkan jika dibuat non-volatile yaitu menggunakan message broker dari mongoDB.

d. Application Gateway

Pada application gateway bertugas menyediakan layanan bagi subscriber. Subscriber disini adalah pelanggan atau penerima data yang telah dipublish oleh node sensor. Subscriber akan menerima data sesuai dengan topik yang telah dilanggan.

e. Internet Gateway

Fitur ini disediakan sebagai implementasi salah satu tugas dari IoT middleware, yaitu menghubungkan things dengan aplikasi yang ada pada internet. Internet gateway berisi sebuah fungsi untuk berlangganan ke message broker dan meneruskan ke aplikasi dengan protokol RESTfull web services, yang mana membutuhkan sebuah koneksi internet. Untuk itu dapat digunakan antarmuka jaringan seluler GSM atau NB-IoT, agar node ini dapat mengakses perangkat-perangkat yang ada pada internet.

 

 

 

 

 

 

 

 

Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?

Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami! 

 

Sabtu, 31 Juli 2021

Cara Memprogram Board Arduino yang Menggunakan IC ATmega8535/16/32/164/324/644/1284 memakai USBASP Programmer

- 1 komentar

Setelah belajar Membuat Board Arduino Sendiri dengan Menggunakan IC ATmega8535/16/32/164/324/644/1284 , maka kali ini kita akan belajar bagaimana Cara Memprogram Board Arduino yang Menggunakan IC ATmega8535/16/32/164/324/644/1284. Beda dengan memprogram Board Arduino standart yang bisa langsung diprogram menggunakan Arduino IDE. Karena ini adalah Board Arduino khusus buatan sendiri, maka perlu dengan cara khusus pula untuk memprogramnya. 



Baca Juga : Membuat Board Arduino Sendiri dengan Menggunakan IC ATmega8535/16/32/164/324/644/1284


Berikut ini adalah langkah - langkah Cara Memprogram Board Arduino yang Menggunakan IC ATmega8535/16/32/164/324/644/1284 memakai USBASP Programmer :

1. Download Arduino IDE, lalu Install.

2. Buka Software Arduino IDE, maka akan tampil seperti dibawah ini :

 


3. Pilih menu File, kemudian Klik Preferences. Seperti pada gambar dibawah ini :



4. Masukkan tautan https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json, ke kolom yang diberi tanda merah seperti gambar dibawah ini, lalu Klik OK



5. Kemudian pilih menu Tools, Pilih menu Board, lalu Klik Boards Manager seperti gambar dibawah ini :



6. Kemudian ketik Mighty di kolom pencarian, kemudian Install Board MightyCore seperti tampak pada gambar dibawah ini (Pastikan Laptop/Komputer Anda Terkoneksi Internet) : 



7. Setelah proses Install selesai, kemudian klik Close.

8. Maka Board akan tampil dan sudah terinstall seperti gambar dibawah ini :



9. Karena yang kita pakai kebetulan sebagai contoh adalah ATmega8535, maka pilih Board MightyCore >>> ATmega8535 seperti gambar dibawah ini.

 


 

10. Tancapkan USBasp Programmer ke port USB laptop atau komputer Anda. Berikut ini adalah bentuk USBasp yang kita pakai:

 

11. Tancapkan USBasp Adapternya ke Board Arduino buatan kita sendiri. Berikut ini interface USBasp dengan IC ATmega8535/16/32/164/324/644/1284 :



12. Karena kita pakai USBasp Programmer, maka pada bagian Programmer kita pilih USBasp seperti tampak pada gambar dibawah ini :




13. Kita coba menggunakan Blink, Pilih menu File >>> Examples >>> Basics >>> Blink, Maka akan tampil seperti gambar dibawah ini.




14. Sebelum Upload program Tersebut, langkah awal adalah upload Bootloader terlebih dahulu dengan cara pilih menu Tools, lalu pilih Sanguino Pinout (karena kebetulan kita pakai Sanguino), kemudian klik Burn Bootloader seperti gambar dibawah ini.



14. Maka akan tampil informasi Done Burning Bootloader.



15. IC ATmega8535 sudah siap digunakan menggunakan Arduino IDE. 

16. Lalu kita coba Upload Program Blink dengan cara pilih menu Sketch, kemudian Klik Upload Using Programmer seperti gambar dibawah ini.



17. Upload program sukses dan akan muncul informasi Done Uploading seperti gambar dibawah ini.



18. Maka LED Blink pada Pin 0 Board Arduino buatan kita sendiri ini akan menyala dan mati secara bergantian setiap 1 Detik. 

19. Selamat Mencoba.





Membuat Board Arduino Sendiri dengan Menggunakan IC ATmega8535/16/32/164/324/644/1284

- 1 komentar

Artikel tentang Membuat Board Arduino Sendiri dengan Menggunakan IC ATmega8535/ATmega16/ATmega32/ATmega164/ATmega324/ATmega644/ATmega1284 sangat cocok untuk Anda yang ingin membuat sendiri Board Arduino diluar IC Standart Arduino Uno (ATmega328), Arduino Nano (ATmega328 & ATmega168), Arduino ProMini (ATmega328 & ATmega168), dan Arduino Mega (ATmega2560 & ATmega1280). Misalnya saja saat Anda membutuhkan suatu system mikrokontroler dengan Platform Arduino ternyata Anda tidak punya Board yang sudah jadi. Toko Arduino tidak tersedia di kota Anda. Anda hanya memiliki salah satu dari IC ATmega8535/ATmega16/ATmega32/ATmega164/ATmega324/ATmega644/ATmega1284. Anda bisa membuat sendiri Board Arduino menggunakan IC Tersebut untuk menghemat waktu dan biaya.


Baca Juga : Cara Memprogram Board Arduino yang Menggunakan IC ATmega8535/ATmega16/ATmega32/ATmega164/ATmega324/ATmega644/ATmega1284.

 

Berikut ini adalah macam-macam I/O dari Board Arduino apabila menggunakan IC ATmega8535/16/32/164/324/644/1284 :


ATMEGA 16/32/8535/164/324/644/1284
Standart Pin Out


ATMEGA 16/32/8535/164/324/644/1284
Sanguino Pin Out


ATMEGA 16/32/8535/164/324/644/1284
Bobuino Pin Out


Baca juga : Mengenal Dasar-dasar Quantum Computing: Sebuah Pengantar untuk Pemula


Berikut ini adalah Schematics Diagram Minimum System Board Arduino dengan Menggunakan IC ATmega8535/16/32/164/324/644/1284 :

 


 

Berikut ini adalah gambar LayOut PCB dari Minimum System diatas :

 


 

Berikut ini File PDF LayOut PCB : MinSys Board Arduino with ATmega8535/16/32/164324/644/1284.


Hasil Jadi Board Arduino dengan Menggunakan IC ATmega8535/16/32/164/324/644/1284 :





Baca Juga : Cara Memprogram Board Arduino yang Menggunakan IC ATmega8535/ATmega16/ATmega32/ATmega164/ATmega324/ATmega644/ATmega1284.

 

 

 

 

 


Jumat, 09 Juli 2021

PWM Signal Controller with Arduino Nano (Sinyal PWM Kontroler dengan Arduino Nano)

- 2 komentar

PWM atau kepanjangan Pulse Width Modulation, dalam bahasa Indonesia biasa disebut Modulasi Lebar Pulsa. Pada prinsipnya, PWM adalah salah satu teknik modulasi yang mengubah lebar pulsa (pulse width) dengan nilai frekuensi dan amplitudo (tinggi pulsa) yang tetap. PWM Signal ini digunakan menghasilkan sinyal analog dari perangkat Digital yang salah satu contohnya adalah dari Mikrokontroler.

 

Baca Juga : ESP32 PWM with Arduino IDE (Analog Output)


Berikut ini adalah Schematics Diagram dari PWM Signal Controller with Arduino Nano (Sinyal PWM Kontroler dengan Arduino Nano)




Berikut ini adalah Hardware yang dibutuhkan :
> 1 Pcs - Arduino Nano >>> BELI DISINI
> 1 Pcs - LCD 16x2 >>> BELI DISINI
> 1 Pcs - LCD I2C >>> BELI DISINI
> 1 Pcs - Potensiometer >>> BELI DISINI
> 1 Pcs - Resistor 330 Ohm >>> BELI DISINI
> 1 Pcs - Optocoupler PC817 >>> BELI DISINI
> 1 Pcs - Resistor 1K Ohm >>> BELI DISINI
> 1 Pcs - Transistor TIP142 >>> BELI DISINI
> 1 Pcs - Motor DC >>> BELI DISINI
> 1 Pcs - Sumber Tegangan 12V >>> BELI DISINI
> Kabel Jumper Secukupnya >>> BELI DISINI


Untuk project ini kita menggunakan pin ADC (Analog to Digital Converter) pada Arduino Nano sebagai pintu masuk untuk sinyal input dari Potensiometer. Hal ini dikarenakan memang data dari potensiometer adalah merupakan data analog. Tegangan dari Potensiometer yang berupa data Analog ini kemudian dirubah menjadi data digital berupa bilangan desimal 10 bit yang mempunyai range 0 – 1023.  Dalam bilangan desimal 10 bit, angka 0 ini adalah awal permulaan hitungan. Jadi total nilainya ada 1024. Berikut ini merupakan perhitungan dari konversi data tersebut :


 

Dari perhitungan diatas dapat disimpulkan bahwa setiap 4,88 mV data analog dari potensiometer akan dirubah atau dikonversi menjadi data desimal bernilai 1. Apabila potensiometer bergerak ke 20% dengan perhitungan 20 x 50 mV yaitu 1.000 mV atau sebesar 1 Volt, maka nilai desimalnya adalah 1.000 mV : 4,88 mV = 205. Nilai desimal 205 merupakan sebagian dari nilai maksimal 1024.

Untuk menuju output kita menggunakan pin 11 yang merupakan salah satu dari pin Digital PWM milik Arduino Nano. Berikut ini adalah data pin Digital PWM dari Arduino Nano :



Pemilihan Pin 11 dengan pertimbangan bahwa pin tersebut merupakan pin terluar dari Arduino Nano, sehingga mudah untuk pemasangan ke driver output. Selain itu juga merupakan salah satu pin dengan frekuensi paling rendah. Sehingga tidak mudah merusak komponen optocoupler di bagian driver output. Frekuensinya adalah 490 Hz, artinya dalam 1 detik pin tersebut mengeluarkan 490 kali gelombang penuh PWM. 

 

Dikarenakan pin digital PWM tersebut hanya mampu bekerja di bilangan desimal 8 bit yaitu pada range 0 – 255. Dalam bilangan desimal 8 bit, angka 0 ini adalah awal permulaan hitungan. Jadi total nilainya ada 256. Maka, default bilangan desimal ADC yang bernilai 0 -1023 tersebut harus dirubah dengan hitungan sebagai berikut :


Dari perhitungan diatas dapat disimpulkan bahwa setiap 19,53 mV data analog dari potensiometer akan dirubah atau dikonversi menjadi data desimal bernilai 1. Apabila potensiometer bergerak ke 20% dengan perhitungan 20 x 50 mV yaitu 1.000 mV atau sebesar 1 Volt, maka nilai desimalnya adalah 1.000 mV : 19,53 mV = 51. Nilai desimal 51 merupakan sebagian dari nilai maksimal 256.


Berikut ini adalah Code Programnya :


/***************************

PWM Signal Controller with Arduino Nano (Sinyal PWM Kontroler dengan Arduino Nano)

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2021

****************************/ 


#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

byte Potensiometer = A1;
byte Pin_Out = 11;
int Output;
int PWM_Value;
int DutyCycle;

void setup()
{
  Serial.begin(9600);
  lcd.init(); // initialize the lcd
  lcd.backlight();
  pinMode(Potensiometer, INPUT);
}

void loop()
{
  Output = analogRead(Potensiometer);
  PWM_Value = map(Output, 0, 1023, 0, 255);
  DutyCycle = PWM_Value/2.56;
  analogWrite(Pin_Out, DutyCycle);
  lcd.setCursor(0, 0); //baris pertama  
  lcd.print("Freq: ");
  lcd.print("490 Hz");  
  lcd.setCursor(0, 1); //baris kedua
  lcd.print("DutyCycle: ") ;
  lcd.print(DutyCycle);
  lcd.print("%      ");
  delay(2);
}


Perhitungan dan penjelasan diatas apabila di implementasikan ke dalam Code Program adalah sebagai berikut :

 

 

Dalam konsep sinyal PWM ada yang namanya Duty Cycle. Definisi Duty Cycle adalah representasi dari kondisi logika high dalam suatu periode sinyal dan di nyatakan dalam bentuk (%) dengan range 0% sampai 100%, sebagai contoh jika sinyal berada dalam kondisi high terus menerus artinya memiliki duty cycle sebesar 100%. Jika waktu sinyal keadaan high sama dengan keadaan low maka sinyal mempunyai duty cycle sebesar 50%

 

Aplikasi penggunaan PWM biasanya ditemui untuk pengaturan kecepatan motor dc, pengaturan cerah/redup LED, dan pengendalian sudut pada motor servo. Contoh penggunaan PWM pada pengaturan kecepatan motor dc semakin besar nilai duty cycle yang diberikan maka akan berpengaruh terhadap cepatnya putaran motor. Apabila nilai duty cylce-nya kecil maka motor akan bergerak lambat.

 

Cara menghitung Duty Cycle pada project ini menggunakan rumus sebagai berikut :

 

 

Implementasi ke dalam Code program adalah sebagai berikut :











Sabtu, 05 Juni 2021

Berbagai Macam dan Jenis Shield Arduino yang Kompatibel untuk Kebutuhan Proyek Anda

- Tidak ada komentar

Selain board Arduino, juga diproduksi beberapa jenis modul pendukung yang dapat di integrasikan secara langsung pada board Arduino, modul ini dikenal dengan istilah Arduino Shield.


Saat ini telah banyak sekali jenis shield yang beredar dipasaran, karena selain pihak Arduino sendiri, perusahaan lainnya juga berlomba-lomba untuk membuat berbagai jenis shield yang dapat mendukung board Arduino. Beberapa jenis shield yang diproduksi untuk mendukung board Arduino dapat dilihat pada list berikut ini :

 

Arduino YUN Shield

 

Arduino YUN Shield ini dapat dipasang pada board Arduino & Genuino. Dengan menggunakan shield ini maka board Arduino/Genuino dapat terhubung pada jaringan komputer atau antar modul Arduino itu sendiri dan dapat dikonfigurasikan sesuai dengan topologi jaringan komputer. Shield Arduino YUN dolengkapi fasilitas untuk koneksi dengan menggunakan kabel jaringan komputer ataupun WIFI. Bila menggunakan shield Arduino YUN maka dapat menggunakan IDE tambahan seperti Arduino YUN LINUX OS.


Arduino Wifi Shield 101


Arduino Wifi Shield 101 dapat dipasang pada board Arduino & Genuino dan telah mendukung fitur dari Internet of Things (IoT). Konfigurasi untuk koneksi internet telah dipermudah dan telah mendukung koneksi dengan standar IEEE 802.11 b/g/n dengan lebar data sampai 72 Mbps.

Untuk enkripsi data dilengkapi dengan jenis enkripsi tipe WEP dan WPA2 personal.


Arduino Ethernet Shield

Arduino Ethernet Shield dapat dipasang pada board Arduino & Genuino. Pada shield ini dilengkapi dengan terminal ethernet dan dilengkapi dengan chip Wiznet W5100 agar modul Arduino dapat terhubung pada jaringan komputer melalui terminal dengan standar RJ45.

Selain itu pada modul ini juga dilengkapi dengan SD card yang berguna untuk menyimpan data.

Pada shield Ethernet ini juga dilengkapi tombol Reset yang diparalelkan dengan tombol reset dari board Arduino.


Arduino GSM Shield

Arduino GSM Shield dapat digunakan untuk menghubungkan board Arduino pada internet pada internet dengan menggunakan jaringan wireless GPRS. Pada modul ini dilengkapi dengan modul SIM Card dan dapat dihubungkan pada operator jaringan GSM yang menyediakan layanan GPRS. Frekuensi Bandwith yang didukung oleh shield ini meliputi GSM 850 MHz, GSM 900 MHz, DCS 1800 MHz, dan PCS 1900 MHz. Modul ini juga mendukung protokol TCP/UDP dan HTTP melalui koneksi GPRS. Untuk transfer data downlink dan uplink mampu mencapai maksimum 85,6 kbps.

 

Arduino Wifi Shield 

Bila ingin menggunakan board Modul Arduino pada jaringan internet dengan menggunakan wireless, maka dapat menggunakan modul Arduino Wifi Shield. Pada Arduino Wifi Shield ini juga disediakan terminal SD Card, sehingga dapat menyimpan data pada media SD Card tersebut.


Arduino USB Host Shield

Dengan menggunakan modul Arduino USB Host Shield, maka board Arduino dapat dikonfigurasikan sebagai Host. Shield ini dapat merupakan perangkat full-speed USB atau full/low-speed host dengan spesifikasi USB rev.2.0, sehingga dapat di integrasikan dengan keyboard, mic, joystick, Sony PS3, Nintendo, X-Box, bluetooth dongle, dan perangkat elektronik lainnya.


Pada modul Arduino USB Host Shield ini juga dilengkapi tombol reset yang diparalelkan dengan tombol reset dari board Arduino.


Arduino Motor Shield

Arduino Motor Shield menggunakan chip motor driver tipe L298 dan di desain dengan konfigurasi 2 full-bridge driver, sehingga dapat digunakan untuk menggerakkan 2 unit motor DC, Motor Stepper Bipolar, dan Motor Stepper Unipolar, Relay, Solenoid, dan lain sebagainya.


Setiap channel mampu menghasilkan arus sebesar 2A-4A dan dilengkapi dengan sensor 1.65V/Ampere. Pada modul Arduino Motor Shield ini juga dilengkapi tombol reset yang diparalelkan dengan tombol reset dari board Arduino.


Wireless SD Shield

 

Wireless SD Shield dapat dipasang pada board Arduino dan telah dilengkapi dengan media penyimpanan data berupa SD Card dan dapat berkomunikasi dengan menggunakan modul tambahan wireless.


Konfigurasi modul wireless disesuaikan dengan modul Xbee. Modul Xbee dapat berkomunikasi dengan cara sekitar 100 kaki untuk dalam ruangan (indoor) atau 300 kaki diluar ruangan (outdoor). Pada modul Xbee versi tertentu daya jangkaunya mencapai lebih dari 1 Km.


Wireless Proto Shield

Wireless Proto Shield dapat di integrasikan dengan board Arduino/Genuino. Pada modul ini dilengkapi dengan terminal Wireless dengan konfigurasi Xbee.


Modul yang akan ditambahkan dapat berkomunikasi dengan cara sekitar 100 kaki untuk dalam ruangan (indoor) atau 300 kaki bila diluar ruangan (outdoor).









Selasa, 01 Juni 2021

Pengertian dan Penjelasan Internet of Things (IoT) Lengkap

- Tidak ada komentar

Istilah Internet of Things (IoT) pertama kali disampaikan oleh Kevin Aston sekitar tahun 1999. IoT dapat digambarkan dalam sebuah kumpulan perangkat yang terhubung ke perangkat lain pada jaringan Internet. Perangkat tersebut terdiri dari Things yang bertugas untuk merekam data pada sebuah lingkungan atau objek. Hasil rekaman yang berupa data, kemudian diteruskan atau dikirim ke sebuah aplikasi yang berada pada Internet. Data yang didapat, berikutnya diolah lebih lanjut untuk menampilkan informasi yang tersimpan di balik sekumpulan data. Manfaat penerapan IoT, data dari sebuah lingkungan dapat diakses dari manapun dan kapanpun. 


Baca Juga : Pengertian Internet of Things (IoT).


Dari manfaat yang ditawarkan oleh IoT, menjadikan teknologi ini diterapkan pada berbagai bidang. Contohnya sebagai berikut : 

  1. Dunia Kesehatan; IoT diterapkan pada sistem pemantauan kondisi kesehatan seorang pasien secara terus menerus dan berkala. Hal ini dicapai dengan memanfaatkan sensor kesehatan yang terhubung dengan sistem pemantauan pada rumah sakit.
  2. Dunia Pertanian; IoT dapat diterapkan pada sistem pemantauan kondisi sebuah lahan pertanian dan status pertumbuhan sebuah tanaman. 
  3. Pada lingkungan yang menjadi pusat aktivitas manusia dapat diwujudkan dalam sebuah sistem Smart Home melalui kamera, dan masih banyak lainnya.

Dari beberapa literatur, IoT terbagi menjadi beberapa layer. Layer tersebut terdiri dari Business Layer, Application Layer, Middleware Layer, Network Layer, dan Perception Layer. Seperti terlihat pada gambar dibawah ini :

 


Perception Layer terdiri dari beberapa node sensor dan actuators, dimana tempat Things berada dan umumnya berada pada jaringan Intranet. Things dapat diwujudkan dari sebuah sensor yang terhubung dengan minikomputer/mikrokontroller. Sensor bertugas merekam data, minikomputer/mikrokontroler bertugas mengolah data, dan mengirim data ke Layer berikutnya menggunakan protokol dan interface komunikasi. Karakteristik umum dari node sensor adalah sumber daya yang terbatas, dari segi komputasi dan utilitas perangkat.


Berikut ini adalah Alur Komunikasi pada IoT :

 

 

Antara tiap Layer terdapat Layer Network yang bertugas menghubungkan antara keduanya. Pada Layer ini terdapat beberapa jenis media komunikasi yang digunakan, contohnya :

  1. Wireless Local Area Network (WLAN)
  2. Long Range (LoRa)
  3. Jaringan Seluler (GSM)
  4. Narrowband Internet of Things (NB-IoT)
  5. Bluetooth Low Energy (BLE)
  6. Wireless Personal Area Network (WPAN) 

Berikutnya terdapat protokol komunikasi yang digunakan untuk pertukaran pesan yaitu protokol komunikasi Message Queuing Telemetry Transport (MQTT) dan Constrained Application Protocol (CoAP). Berikut ini adalah Protokol Tiap Layer pada IoT :



Komunikasi antara satu entitas pada IoT dijembatani oleh media komunikasi dan protokol komunikasi. Media komunikasi yang umum digunakan pada IoT adalah jaringan berbasis nirkabel. Hal ini dikarenakan jaringan berbasis nirkabel memungkinkan penempatan perangkat secara dinamis, artinya tidak terpaku pada suatu lokasi. Selain itu terdapat tantangan terkait keterbatasan sumber daya yang menjadi karakteristik dari perangkat "Things", sehingga menjadi dasar dalam pemilihan media komunikasi yang menawarkan penggunaan daya rendah. Contohnya beberapa perangkat dengan kode standar 802.15.4.


Pada perangkat yang mampu bekerja dengan protokol TCP/IP, maka dapat digunakan media komunikasi berbasis 802.11 atau Wi-Fi. Pengalamatan selain menggunakan IPv4, dapat digunakan IPv6 untuk mendukung identitas perangkat dengan jumlah besar. Untuk bertukar pesan antarperangkat juga tersedia protokol perpesanan dengan kondisi perangkat IoT yaitu MQTT dan CoAP.


Middleware Layer bertugas menghubungkan antara Network Layer dengan Aplication Layer. Middleware Layer diperlukan untuk menjawab keterbatasan akses internet dari Things dan tantangan interoperabilitas. Aplication Layer bertugas menyimpan dan memproses data lebih lanjut atau berfungsi untuk mengelola data. Data yang dikirim oleh Node sensor di Perception Layer tidak berarti sama sekali, jika tidak diolah dan aplikasi pengolah data pada umumnya berada di lingkungan Internet, hal ini karena dukungan perangkat komputasi yang mendukung skalabilitas.



Disadur dari : Buku "Internet of Things dengan Python, ESP32, dan Raspberry PI", Eko Sakti Pramukantoro,


Selasa, 23 Februari 2021

Tutorial Membuat Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS

- 3 komentar

Sebelum Membuat Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS, lebih baik anda membaca terlebih dahulu mengenai Arduino Nano, RFID, dan Fingerprint. Alat ini sangat bermanfaat untuk di daerah yang rawan pencurian kendaraan bermotor. Karena motor hanya bisa di nyalakan menggunakan Kartu RFID milik kita dan Sidik jari milik kita. Pengamanan berlapis. 


Baca Juga : Tutorial Membaca E-KTP (KTP Elektronik) dengan RFID Reader RC522 Berbasis Arduino Uno .


Berikut ini adalah Schematics Diagram dari Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS :

 


 

Berikut ini adalah Hardware yang dibutuhkan :

> 2 Pcs - Arduino Nano >>> BELI DISINI
> 1 Pcs - RFID Reader RC522 >>> BELI DISINI
> 1 Pcs - Sensor Fingerprint >>> BELI DISINI
> 1 Pcs - Module SIM800L >>> BELI DISINI
> 3 Pcs - LM2596 >>> BELI DISINI
> 2 Pcs - Relay SPDT 5 Volt >>> BELI DISINI
> 2 Pcs - Transistor BC547 >>> BELI DISINI
> 2 Pcs - Resistor 560 Ohm >>> BELI DISINI
> 2 Pcs - Dioda 1N4148 >>> BELI DISINI
> 1 Pcs - Elco 470uF/16V >>> BELI DISINI
> 2 Pcs - Terminal Screw 3 Pin >>> BELI DISINI
> 2 Pcs - Terminal Screw 2 Pin >>> BELI DISINI
> 2 Pcs - Header Female 40 Pin >>> BELI DISINI
> 2 Pcs - Header Male 40 Pin >>> BELI DISINI
> 1 Pcs - PCB Polos 10x10 cm >>> BELI DISINI
> 1 Pcs - Feric Chlorida >>> BELI DISINI
> Kabel Jumper Secukupnya >>> BELI DISINI
> Timah Solder Secukupnya >>> BELI DISINI
> Kertas Art Paper Secukupnya >>> BELI DISINI
 
 
Berikut ini adalah Code Program untuk Arduino Nano 1 :


/***************************

Tutorial Membuat Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS

Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com

Copyright @2021

****************************/

//Library and Declaration Finger Print
#include <Wire.h>
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(5, 4);
int fingerprintID = 00;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

//Library and Declaration RFID
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);

int serNum[5];          //Variable buffer Scan Card
int cards[10][5] = {{117, 201, 155, 115, 84},    //YOSHUA - 0
                    {36, 58, 122, 137, 237},    //ANITA - 1
                   };

bool access = false;
String Nama;
int count;

//Declaration Relay Output
const int Relay_Kontak = 6;
const int Relay_Starter = 7;

//Declaration Communication to SIM800L
const int SMS = 2;

void setup()
{
  Serial.begin(9600);
  finger.begin(57600);
  Wire.begin();
  SPI.begin();
  rfid.init();
  pinMode(Relay_Kontak, OUTPUT);
  pinMode(Relay_Starter, OUTPUT);
  pinMode(SMS, OUTPUT);
  digitalWrite(Relay_Kontak, LOW);
  digitalWrite(Relay_Starter, LOW);
  digitalWrite(SMS, LOW);
 
  if (finger.verifyPassword())
  {
    Serial.println("Sensor ditemukan");
    delay(500);
  }
  else
  {
    Serial.println("no sensor :(");
    delay(500);
    while (1)
    {
      delay(1);
    }
  }

  while (!Serial)
  {
    ; // wait for serial port to connect. Needed for native USB port only
  }
}

void loop()
{
  fingerprintID = getFingerprintIDez();
  delay(50);
 
  if(fingerprintID == 1)
  {
    String IDname_1 = "YOSHUA";
    digitalWrite(Relay_Starter, HIGH);
    delay(2500);
    digitalWrite(Relay_Starter, LOW);
    Serial.println(IDname_1);
    fingerprintID = 00;
  }  
  else if(fingerprintID == 2)
  {
    String IDname_2 = "ANITA";
    digitalWrite(Relay_Starter, HIGH);  
    delay(2500);
    digitalWrite(Relay_Starter, LOW);
    Serial.println(IDname_2);
    fingerprintID = 00;        
  }

  if(rfid.isCard())
  {
    if(rfid.readCardSerial())
    {
      for(int x = 0; x < sizeof(cards); x++)
      {
        for(int i = 0; i < sizeof(rfid.serNum); i++ )
        {
          if(rfid.serNum[i] == cards[0][i])
          {
            access = true;
            Nama = "YOSHUA";
          }
          else if(rfid.serNum[i] == cards[1][i])
          {
            access = true;
            Nama = "ANITA";
          }   
          else
          {
            access = false;
            break;
          }
        }
        if(access)break;
      }   
    }
    
    if(access)
    {
      count++;
      if(count==1)
      {
        Serial.println(Nama);
        digitalWrite(Relay_Kontak, HIGH);
      }
      if(count==2)
      {
        Serial.println("Motor Mati");
        digitalWrite(Relay_Kontak, LOW);
        count=0;
      }
    }
    else
    {
      Serial.println("SMS Dikirim");
      digitalWrite(SMS, HIGH);
    }
    delay(1000);        
  }    
  rfid.halt();
}

int getFingerprintIDez()
{
  uint8_t x = finger.getImage();
  if (x != FINGERPRINT_OK)  return -1;
 
  x = finger.image2Tz();
  if (x != FINGERPRINT_OK)  return -1;
 
  x = finger.fingerFastSearch();
  if (x != FINGERPRINT_OK)  return -1;
 
  //menulis di komunikasi serial
  Serial.print("Found ID #");
  Serial.print(finger.fingerID);
  Serial.print(" with confidence of ");
  Serial.println(finger.confidence);
  return finger.fingerID;
}


Berikut ini adalah Code Program untuk Arduino Nano 2 :

//Library and Declaration Variabel SIM800L
#include "SIM900.h"         
#include "sms.h"            
#include <SoftwareSerial.h>
SMSGSM sms;                 
char smsbuffer[160];        
char n[20];                 
boolean started=false;      

//Declaration Variabel From Sensor
const int Maling = 4;

void setup()
{
  Serial.begin(9600);             
  pinMode(Maling, INPUT);

  if (gsm.begin(9600))            
  {
    Serial.println("\nstatus=READY");
    started=true;                     
  }
  else                                
  {
    Serial.println("\nstatus=IDLE");
  }
}

void loop()
{
  const int Peringatan = digitalRead(Maling);

  if(started)                                                           
  {  
    if(Peringatan == HIGH)                                                     
    {                                
      sms.SendSMS("08xxxxxxxxx", "Awas MALING !!!");
    }
    else                     
    {
      Serial.println("Motor Diakses oleh Pemilik");
    }
  }
  delay(1000);
}


Berikut ini adalah Video Uji Coba tanpa Notifikasi SMS :