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.
/*------------------------------------------------------------------------ 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() { }
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.
Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…
Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…
Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…
Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…
Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…
Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…