Membuat algoritma sistem transaksi e-Money Sederhana dengan RFID dan NodeMCU IoT Project

Membuat algoritma sistem transaksi e-Money Sederhana dengan RFID dan NodeMCU IoT Project
930 x 180 AD PLACEMENT

Halo teman – teman semua, pada kesempatan kali ini DT Production akan memberikan tutorial untuk teman – teman yang membutuhkan algoritma untuk sistem eMoney atau transaksi yang berhubungan dengan pemotongan saldo dll menggunakan RFID RC522. simak video berikut ini dan jangan lupa subscribe dan like nya yaa…

Teman – teman bisa mengembangkan proyek ini dengan menggunakan E-KTP sebagai tag UID. untuk RFID support E-KTP dan kontroler NodeMCU teman – teman bisa dapatkan di toko DT Production. klik link berikut untuk order via tokopedia

Lampiran

File connection.php

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root';
$password = '';
$dbname = 'db_emoney';

$dbconnect = new mysqli($dbhost, $dbuser, $password, $dbname);

if ($dbconnect->connect_error) {
    die('Server Error');
}

File proses.php

930 x 180 AD PLACEMENT
<?php

$harga_barang = 11400; //harga transaksi

if (isset($_POST['uid'])) {
    include 'connection.php';
    $id = $_POST['uid'];
    $query = mysqli_query($dbconnect, "SELECT * FROM tb_user WHERE id='$id'");
    $cek = mysqli_num_rows($query);
    if ($cek >0) {
        $data = mysqli_fetch_assoc($query);
        $hasil_saldo = $data['saldo'] - $harga_barang;
        if ($hasil_saldo >= 0) {
            mysqli_query($dbconnect, "UPDATE tb_user SET saldo ='$hasil_saldo' WHERE id='$id'");
            $status = "Transaksi Sukses";
        } else {
            $status = "Saldo tidak cukup";
            $hasil_saldo = "-";
        }
    } else {
        $status = "ID Belum Terdaftar";
        $data = "-";
        $harga_barang = "-";
        $hasil_saldo = "-";
    }

    $output = 
    [
        "Detail" =>
        [
            "Status" => $status,
            "Data User" => $data,
            "Nilai Transaksi" => $harga_barang,
            "Saldo Akhir" => (int)$hasil_saldo
        ]
    ];
    $json = json_encode($output);
    echo $json;
}

Program Arduino IDE

#include <SPI.h>
#include <MFRC522.h>
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define SS_PIN 2  //D4
#define RST_PIN 0 //D3

MFRC522 mfrc522(SS_PIN, RST_PIN);
const char* ssid = "DTproduction";
const char* password = "**********";
String content;
void setup() {
  Serial.begin(115200);
  SPI.begin();
  mfrc522.PCD_Init();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting..");
  }
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    if ( ! mfrc522.PICC_IsNewCardPresent())
    {
      return;
    }
    if ( ! mfrc522.PICC_ReadCardSerial())
    {
      return;
    }
    Serial.println();
    Serial.print(" UID tag :");
    content = "";
    byte letter;

    for (byte i = 0; i < mfrc522.uid.size; i++)
    {
      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
      Serial.print(mfrc522.uid.uidByte[i], HEX);
      content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : ""));
      content.concat(String(mfrc522.uid.uidByte[i], HEX));
    }
    content.toUpperCase();
    Serial.println();
    parseJson();
  } else {
    Serial.println("Error in WiFi connection");
  }
}

void parseJson() {
  HTTPClient http;
  http.begin("http://192.168.1.4/emoney/proses.php");
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");
  int httpResponseCode = http.POST("uid=" + content);
  delay(100);
  if (httpResponseCode > 0) {
    String response = http.getString();
    //Serial.println(response);
    char json[500];
    response.toCharArray(json, 500);
    StaticJsonDocument<200>doc;
    deserializeJson(doc, json);

    const char* status = doc["Detail"]["Status"];
    const char* nama = doc["Detail"]["Data User"]["nama"];
    int saldo_sebelum = doc["Detail"]["Data User"]["saldo"];
    int nilai_transaksi = doc["Detail"]["Nilai Transaksi"];
    int saldo_sekarang = doc["Detail"]["Saldo Akhir"];

    Serial.println("=============== HASIL PARSING RESPONSE ==========");
    Serial.print("Status Transaksi = ");
    Serial.println(status);
    Serial.print("Nama Pengguna = ");
    Serial.println(nama);
    Serial.print("Saldo sebelum = ");
    Serial.println(saldo_sebelum);
    Serial.print("Nilai transaksi = ");
    Serial.println(nilai_transaksi);
    Serial.print("Saldo Sekarang = ");
    Serial.println(saldo_sekarang);
    Serial.println("==================================================");
     
  } else {
    Serial.print("Error on sending POST: ");
    Serial.println(httpResponseCode);
  }
  delay(2000);
  http.end();
}
NodeMCURFID
D3RST
D4SDA
D5SCK
D6MISO
D7MOSI
VCC3.3V
GNDGND
IRQ 

 

930 x 180 AD PLACEMENT

930 x 180 AD PLACEMENT

Programmer & Videographer.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You might also like
930 x 180 AD PLACEMENT