CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Tampilkan postingan dengan label Interface. Tampilkan semua postingan
Tampilkan postingan dengan label Interface. Tampilkan semua postingan

Kamis, 08 Juni 2023

Komunikasi RFID Reader dengan Arduino


 

Pernahkah Anda bertanya-tanya bagaimana sistem antipencurian di supermarket bekerja? Atau bagaimana cara kerja sistem pembayaran tol otomatis seperti fast tag? Semua jawaban atas keraguan Anda adalah RFID atau Radio Frequency Identification. Seperti namanya, RFID menggunakan gelombang elektromagnetik dalam spektrum frekuensi radio untuk komunikasi dan transfer data. Tag RFID digunakan di banyak industri dan Anda dapat menemukannya di tag produk dari toko hingga kartu akses keamanan. Tag RFID dapat mempercepat pembayaran dan dapat digunakan untuk tindakan antipencurian. Mereka juga dapat digunakan untuk mengidentifikasi ternak, produk, dll. Dalam tutorial ini, kita akan mempelajari bagaimana kita dapat menggunakan teknologi RFID dengan Arduino. Kita akan belajar bagaimana menghubungkan pembaca RFID RC522 dengan Arduino.

RC522 RFID Reader/Writer Module Pinout

Modul RC522 memiliki total 8 pin. Modul ini mendukung berbagai protokol komunikasi dan setiap pin memiliki fungsi yang berbeda untuk setiap protokol komunikasi. Pinout modul RFID Reader adalah sebagai berikut:

 


How is the RFID Works?

Sistem RFID terdiri dari dua komponen: pembaca RFID dan tag. Mereka juga disebut PCD (Proximity Coupling Device) dan PICC (Proximity Integrated Circuit Card).

Pembaca RFID terdiri dari antena untuk memancarkan gelombang EM frekuensi tinggi dan pembaca/penulis. MFRC522 dari NXP adalah contoh sirkuit terintegrasi semacam itu. Karena kami menggunakan gelombang frekuensi tinggi dalam kisaran megahertz, ukuran antena bisa jadi kecil.

 


Tag RFID dapat berupa pasif atau aktif. Tag aktif ditenagai oleh baterai sedangkan tag RFID pasif ditenagai oleh energi dari gelombang EM interogasi pembaca. Tag tersedia dalam berbagai bentuk atau bentuk seperti kartu, tag, gantungan kunci, atau stiker. Apapun bentuknya, tag RFID akan terdiri dari antena dan chip RFID yang akan menyimpan semua data. Saat dipicu oleh pulsa interogasi elektromagnetik dari pembaca RFID terdekat, tag akan mengirimkan data kembali ke pembaca. Pembaca kemudian akan menganalisis data ini untuk mengidentifikasi tag. Tidak seperti barcode atau kode QR, tag tidak harus berada dalam jarak pandang pembaca. Ini membuatnya lebih mudah untuk diproses dan dapat digunakan untuk melacak objek di ruang tertutup.

 

Arduino RC522 RFID Reader Interfacing Circuit Diagram

Untuk menghubungkan modul RFID RC522 dengan Arduino, kita akan menggunakan antarmuka SPI. Ikuti diagram sirkuit dan buat koneksi sesuai itu.

 


Pin VCC dan GND modul masing-masing terhubung ke pin 3.3V dan GND Arduino. Pin Reset terhubung ke pin D9 dan SS, MOSI, MISO, dan SCK masing-masing terhubung ke pin D10, D11, D12, dan D13 dari Arduino. Pin SS dan RST dapat dikonfigurasi dan dapat dihubungkan ke pin digital lainnya di Arduino.

 


Arduino RC522 RFID Module Code

Saat koneksi dibuat, mari kita lihat bagian pengkodean. Untuk itu, kita akan menggunakan Perpustakaan Arduino MFRC522 oleh Miguel André Balboa. Karena Library tidak tersedia di pengelola Library Arduino, unduh dari repositori MFRC522 GitHub dan pasang di folder Library Arduino. Anda dapat menginstalnya baik melalui Arduino IDE, dengan masuk ke Sketch -> Include Library -> Add ZIP Library dan memilih file .ZIP yang diunduh, atau hanya dengan mengekstrak file Zip ke dalam folder library Arduino.

Setelah Library diinstal, kami dapat menguji pengaturan kami dengan kode contoh. Untuk itu, buka contoh DumpInfo dari Library MFRC522. Ini contoh kodenya.

 

#include <SPI.h>

#include <MFRC522.h>

#define RST_PIN         9          // Configurable, see typical pin layout above

#define SS_PIN          10         // Configurable, see typical pin layout above

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance

void setup() {

Serial.begin(115200);                       // Initialize serial communications with the PC

while (!Serial);                       // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)

            SPI.begin();                             // Init SPI bus

            mfrc522.PCD_Init();              // Init MFRC522

            delay(4);                                             // Optional delay. Some board do need more time after init to be ready, see Readme

            mfrc522.PCD_DumpVersionToSerial();      // Show details of PCD - MFRC522 Card Reader details

            Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));

}

void loop() {

            // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.

            if ( ! mfrc522.PICC_IsNewCardPresent()) {

                        return;

            }

            // Select one of the cards

            if ( ! mfrc522.PICC_ReadCardSerial()) {

                        return;

            }

            // Dump debug info about the card; PICC_HaltA() is automatically called

            mfrc522.PICC_DumpToSerial(&(mfrc522.uid));

}

 

Setelah dikompilasi dan diunggah ke Arduino, buka monitor serial dan tunjukkan tag apa pun di dekat modul RC522. Ketika tag berada di sekitarnya, reader akan membaca semua data dari tag tersebut dan akan membuangnya ke monitor serial seperti yang ditunjukkan di bawah ini.

Dump data akan berisi semua detail seperti Card UID, Card SAK, tipe PICC, dan semua peta memori. UID atau ID Unik adalah Unik untuk setiap tag seperti namanya. Jika Anda mendapatkan kesalahan gagal komunikasi, itu karena baud rate serial kami terlalu lambat. Tingkatkan baud rate ke 115200 dalam kode dan itu akan menyelesaikan masalah. Di sini, di data dump, kita dapat melihat bahwa tipe PICC adalah MIFARE 1KB. Itu berarti tag berisi chip MIFARE dengan memori 1KB.

 

 

Senin, 20 Maret 2023

Cara Interface Sensor Gyroscope Accelerometer MPU-6050 dengan Arduino dan LCD

Introduction

Jika Anda pernah mempelajari fisika, Anda pasti tahu bahwa giroskop adalah alat yang umumnya digunakan untuk mengukur posisi sudut. Terutama, digunakan dalam kendaraan. Jika Anda seorang gamer, maka Anda harus memahami istilah ini. Karena beberapa game seluler yang luar biasa menggunakan ini untuk mengontrol pergerakan. Karena mengurangi pekerjaan manual pemain. Oleh karena itu, ponsel yang menggunakan giroskop terbaik sangat diminati.

Oleh karena itu, smartphone menggunakan sensor untuk mengaktifkan giroskop. Juga, giroskop mungkin dari jenis yang berbeda. Namun pada tutorial kali ini kita akan membahas sensor MPU6050. Jadi, kita akan menghubungkan ” Sensor Giroskop Akselerometer MPU-6050 dengan Arduino UNO dan LCD”.



 

 

Prinsip Kerja Sensor Akselerometer Giroskop

Gagasan gaya Coriolis digunakan dalam sensor. Terutama, sensor mengubah laju rotasi menjadi sinyal listrik. Selanjutnya, ia merasakan kecepatan sudut. Juga, mendeteksi kecepatan sudut yang dihasilkan oleh gerakan sensor. Selain itu, mendeteksi getaran yang dihasilkan oleh elemen eksternal dan mengubahnya menjadi sinyal listrik.

 Apa itu Accelerometer?

Merupakan sensor berfungsi untuk mengukur percepatan suatu benda atau objek yang bergerak yang bersifat dynamic maupun static.

Pengukuran dynamic merupakan pengukuran percepatan pada objek benda yang bergerak, sedangkan pengukuran static merupakan pengukuran percepatan objek terhadap gravitasi bumi.

Untuk hal ini accelerometer lebih sering digunakan untuk mengukur sudut kemiringan (tilt) dan secara dasarnya prinsip kerja dari accelerometer yaitu menggunakan prinsip percepatan (acceleration).


 

Apa itu Gyroscope MPU6050

Gyroscope merupakan sensor yang berfungsi untuk menentukan orientasi gerak dengan bertumpu pada roda yang berotasi dengan cepat pada sumbu yang berdasarkan momentum sudut.

Sebelum digunakan, gyro sensor harus dilakukan kalibrasi terlebih dahulu dengan menggunakan bandul. Proses kalibrasi tersebut berfungsi untuk memperoleh nilai faktor kalibrasi.

Gyroscope memiliki keluaran berupa kecepatan sudut dari arah 3 sumbu yaitu, sumbu x yang nantinya akan menjadi sudut phi (kanan dan kiri) dari sumbu y nantinya menjadi sudut theta (atas dan bawah), dan sumbu z nantinya menjadi sudut psi (depan dan belakang).

 

Spesifikasi MPU-6050

MPU-6050 adalah giroskop 3 sumbu dan akselerometer 3 sumbu. Giroskop memperkirakan gravitasi rotasi. Sedangkan akselerometer mengukur ciptaan gravitasi. Jadi, ini menghitung percepatan pada sumbu X, Y, dan Z. Dengan menggunakan nilai akselerometer sensor ini, seseorang dapat menghitung sudut dengan mencoba trigonometri.


 


Code Explanation

  • First, download the libraries MPU5060_tockn.h. You can download the libraries from:

 https://github.com/tockn/MPU6050_tockn

 

Schematic Diagram

 


 

 

 

 

 

 

 

 

Jika Arduino di hubungkan dengan MPU5060 dan LCD 16x2 dengan LCD I2C module.

 * Wiring Diagram (MPU6050 - Arduino)

  VCC  -  5V

  GND  -  GND

  SDA  -  SDA

  SCL  -  SCL

* Wiring Diagram (LCD I2C - Arduino)

  GND  -  GND

  VCC  -  5V

  SDA  -  A4

  SCL  -  A5

 

Coding

#include <MPU6050_tockn.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

MPU6050 mpu6050(Wire);

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);

  // initialize the LCD,
  lcd.begin();
  // Turn on the blacklight and print a message.
  lcd.backlight();
  lcd.print("ZENTRONIC");
  delay(5000);  
}

void loop() {

  mpu6050.update();
  Serial.print("angleX : ");
  Serial.print(mpu6050.getAngleX());
  Serial.print("  angleY : ");
  Serial.print(mpu6050.getAngleY());
  Serial.print("  angleZ : ");
  Serial.println(mpu6050.getAngleZ());
 
  lcd.clear();// clearn previous values from screen
  lcdDisplay(
             // to print X:
             0, // character 0  
             0, // line 0
             "X:",

             // to print AngleX
             2, // character 2
             0, // line 0
             mpu6050.getAngleX()
             );

  lcdDisplay(
             // to print Y:
             8, // character 13
             0, // line 0
             "Y:",

             // to print AngleY
             10, // character 0
             0, // line 1
             mpu6050.getAngleY()
             );  

  lcdDisplay(
             // to print Z:
             0, // character 7
             1, // line 1
             "Z:",

             // to print AngleZ
             2, // character 9
             1, // line 0
             mpu6050.getAngleZ()
             );                         
   delay(100);
}// loop end

void lcdDisplay(int tc, int tr, String title, int vc, int vr, float value)
{
   lcd.setCursor (tc,tr);
   lcd.print(title);
   
   lcd.setCursor (vc,vr);
   lcd.print(value);
 
}

Penjelasan Cara Kerja


 

Pertama, sambungkan Sensor Giroskop Akselerometer MPU-6050 dengan Arduino UNO. Kedua, Salin dan tempel kode di atas ke Arduino IDE Anda. Unggah kode di Arduino UNO. Jalankan serial monitor pada baud rate 9600 atau lihat parameter di LCD-nya. Dan, tekan tombol reset. Pindahkan sensornya. Ubah orientasinya. Anda dapat melihat pembacaan percepatan dan rotasi yang berbeda.  


 

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...