By | 25/01/2021

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.

Tutorial ESP32 Printer Thermal untuk Struk dengan Bluetooth

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,

Leave a Reply

Your email address will not be published. Required fields are marked *