Tutorial ESP32 Printer Thermal untuk Struk dengan Bluetooth

Printer thermal bisa difungsikan untuk membuat struk belanja atau pembayaran, selain fisiknya yang kecil,printer thermal juga ada yang sudah portable menggunakan komunikasi bluetooth. Tutorial ini akan membahas cara mengakses printer thermal dengan ESP32 Bluetooth.

ESP32 selain memiliki fitur Wifi juga sudah dilengkapi dengan bluetoth, baik bluetooth klasik ataupun BLE atau Bluetooth Low Energy.

Printer thermal yang saya gunakan adalah tipe GOOJPRT PT-210 yang sudah dilengkapi berbagai fitur seperti USB dan Bluetooth.

Penerapan Aplikasi Printer thermal dengan ESP32 Bluetooth

  1. Membuat Struk belanja
  2. Membuat Struk Pembayaran
  3. Membuat Bukti pembayaran e-money
  4. dan masih banyak penerapan yang bisa kalian gunakan dengan printer thermal portable dan ESP32
  5. Beli kebutuhanya di Tokopedia

Langkah-langkah mengakses printer thermal dengan ESP32 Bluetooth

  1. Siapkan alat dan bahan
  2. ESP32 Wemos D1 mini atau tipe yang lainya
  3. Printer Thermal merek apapun yang support bluetooth dan yang saya gunakan adalah GOOJPRT PT-210
  4. Download library Adafruit Printer Thermal disini
  5. Buka program example kemudian edit seperti berikut
/*------------------------------------------------------------------------
  Example sketch for Adafruit Thermal Printer library for Arduino.
  Demonstrates some of the available alternate characters.
  See 'A_printertest' sketch for a more generalized printing example.

  THESE FEATURES ARE NOT AVAILABLE ON ALL PRINTERS.  Older firmware
  does not support the alternate characters used here.
  ------------------------------------------------------------------------*/
#include "Adafruit_Thermal.h"
#include "BluetoothSerial.h"

BluetoothSerial SerialBT;

Adafruit_Thermal printer(&SerialBT);     // Pass addr to printer constructor

uint8_t address[6]  = {0x66, 0x22, 0xB0, 0x17, 0x80, 0xB3};
String name = "MTP-2";
char *pin = "0000"; //<- standard pin would be provided by default
bool connected;
void setup() {

  pinMode(2, OUTPUT); digitalWrite(2, LOW);

  Serial.begin(9600);
  SerialBT.setPin(pin);
  SerialBT.begin("ESP32test", true); 
  Serial.println("The device started in master mode, make sure remote BT device is on!");
  
  connected = SerialBT.connect(address);
  
  if(connected) {
    Serial.println("Connected Succesfully!");
  } else {
    while(!SerialBT.connected(10000)) {
      Serial.println("Failed to connect. Make sure remote device is available and in range, then restart app."); 
    }
  }
  if (SerialBT.disconnect()) {
    Serial.println("Disconnected Succesfully!");
  }
  // this would reconnect to the name(will use address, if resolved) or address used with connect(name/address).
  SerialBT.connect();
  printer.begin();        // Init printer (same regardless of serial type)
  printer.underlineOn();
  printer.println(F("CHARACTER SET EXAMPLE\n"));
  printer.underlineOff();

  printer.println(F("DEFAULT CHARSET & CODE PAGE:"));
  dump();

  printer.println(F("\nNORWAY CHARSET w/"));
  printer.println(F("KATAKANA CODEPAGE:"));
  // Charset selection alters a few chars in ASCII 0x23-0x7E range.
  printer.setCharset(CHARSET_NORWAY);
  // Code page selects alt symbols for 'upper' ASCII 0x80-0xFF.
  // There's a TON of these, best to check datasheet!
  printer.setCodePage(CODEPAGE_KATAKANA);
  dump();

  printer.feed(2);
  printer.setDefault(); // Restore printer to defaults
}

// Print charset map to printer, similar to test page but
// without the baud rate, etc.
void dump() {
  uint8_t major, minor, c;

  printer.println(F("        01234567  89ABCDEF"));
  for (major = 0; major < 16; major++) {
    printer.print(F("     "));
    printer.print(major, HEX);
    printer.print(F("- "));
    for (minor = 0; minor < 16; minor++) {
      c = (major << 4) | minor;
      if (c < 32) c = ' '; // Skip control codes!
      printer.write(c);
      if (minor == 7) printer.print(F("  "));
    }
    printer.println();
  }
}

void loop() {
}

Penjelasan sedikit mengenai program diatas

Berikut adalah program penting yang menghubungkan ESP32 dengan Printer bluetooth

#include "BluetoothSerial.h"

BluetoothSerial SerialBT;

Adafruit_Thermal printer(&SerialBT);     // Pass addr to printer constructor

uint8_t address[6]  = {0x66, 0x22, 0xB0, 0x17, 0x80, 0xB3};
String name = "MTP-2";
char *pin = "0000"; //<- standard pin would be provided by default
bool connected;

BluetoothSerial.h merupakan library untuk mengaktifkan bluetooth klasik yang ada pada ESP32, dan adress bluetooth printer bisa kalian cari dengan melalui aplikasi android.

default pin untuk printer yang saya gunakan adalah ‘0000’ silahkan baca datasheet printer atau instruksi penggunaanya jika tidak bisa konek ke ESP32.

Saya akan buatkan tutorial versi videonya jika ada waktu luang. Dan saya sampaikan terimakasih sudah berkunjung selamat mencoba.

Keyword

  1. ESP32 Printer Thermal Bluetooth,
  2. Tutorial Printer Thermal Bleutooth ESP32,
  3. Mengakses Printer Thermal Bluetooth ESP32,
  4. Arduino Printer Thermal Bluetooth,
  5. Tutorial Printer Thermal Arduino,
chaerul

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

2 weeks ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

1 year ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago