嵌入式热敏打印机

简介

微型热敏打印机采用热敏技术,无需添加墨粉或上墨,性能稳定,身材小巧,节省空间。微型热敏打印机在仪器仪表、食品检测、购物终端等场景应用广泛。生活中的ATM机、存包柜、POS、超市电子称以及外卖小哥的外卖机里都有它。 打印机采用5~9V 宽电压供电方式,电压越高,打印效果越清晰。适用宽度为58MM的热敏纸卷,打印寿命 达50 公里。它支持arduino、树莓派以及Windows 串口与驱动打印。我们可以参照指令集,利用USB串口或TTL通讯接口向热敏打印机发送相应指令,打印机便能根据指令即时打印出你需要的文字、字符,条形码,二维码甚至是黑白图片; 我们可以将它和arduino控制器或树莓派利用串口连接。当配合各种传感器使用时便能DIY电子称、血压指数测量仪、土壤元素分析仪和行车记录仪等实用的仪器设备。我们也可以制作一个属于自己的小票打印机,小票上的内容任由你自己定义,经过开发甚至还可以实现远 程打印功能;

⚠注意事项:

技术规格

引脚说明

DFR0503引脚图

TTL通信接口

标号 名称 功能描述
1 GND 电源地
2 DTR 流控制
3 RXD 数据接收端
4 TXD 数据发送端
5 NC 空脚

电源接口

标号 名称 功能描述
1 VCC 5-9V
2 GND 电源地

注:若要重置为TTL通信接口模式,方法与上述一致。

使用教程

准备(基于树莓派平台-其他Linux操作系统适用)

1

添加打印机1

2

添加打印机2

3

添加打印机3

4

添加打印机4

5

添加打印机5

准备(Arduino)

打印字符(Arduino)

DFROBOT

DFROBOT
极趣科技
嵌入式热敏打印机
arduino开发控制
DIY趣味
让我们一起共创未来
打造我们的DIY世界

打印二维码和条形码(Arduino)

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

/*--------打印条形码指令,其中包含信息为“DFR0503”---------*/
char bar_code[24] = {
  0x1b, 0x40,
  0x1d, 0x48, 0x02,                                                                         //通用指令第43条,选择打印条形码时其中包含的信息(即HRI字符)的打印位置,0x02意为在条形码下方打印
  0x1d, 0x68, 0x64,                                                                         //设置条形码高度,参考范围“1~255”,示例中设定为“0x64”
  0x1d, 0x77, 0x03,                                                                         //通用指令第45条,设置水平宽度,这里选择“0x03”项
  0x1d, 0x6b, 0x49, 0x09, 0x7B, 0x42, 0x44, 0x46, 0x52, 0x7B, 0x43, 0x05, 0x03              //设置条形码包含信息.“0x09”为条形码长度,对应“DFR0503”. “0x44,0x46,0x52”分别是“DFR”三个字母的ACILL码,“ 0x05, 0x03 ”对应“0503”
};                                                                                          //如果信息为“DFR050308” ,则条码长度为“0x0B”,以此类推

/*--------打印二维码指令,其中包含信息为“www.dfrobot.com”---------*/
const char QRx[60] = {
  0x1b, 0x40,
  0x1d, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x43, 0x05,                                             //参考特殊指令集第一条,“0x05”为二维码的大小等级,
  0x1d, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x45, 0x30,                                             //设置QR码的校验等级为L
  0x1d, 0x28, 0x6b, 0x12, 0x00, 0x31, 0x50, 0x30, 0x77, 0x77, 0x77, 0x2E, 0x64, 0x66, 0x72, 0x6F, 0x62, 0x6F, 0x74, 0x2E, 0x63, 0x6F, 0x6D,
  //“0x12”为QR码包含信息“www.dfrobot.com”(15个字符)的字符个数加3.
  //“0x77,0x77,0x77,0x2E,0x64,0x66,0x72,0x6F,0x62,0x6F,0x74,0x2E,0x63,0x6F,0x6D”为网址字符对应ACILL码
  0x1b, 0x61, 0x01,                                                                           //设置图形居中
  0x1d, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x52, 0x30,                                             //校验QR码是否正常
  0x1d, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x51, 0x30                                              //打印QR码
};
void setup() {
  mySerial.begin(9600);
  Serial.begin(9600);
  while (Serial.read() >= 0) {}
}
void loop() {
  mySerial.println();
  mySerial.print("---------------------------------");
  mySerial.println();
  mySerial.write(bar_code, 60);                                                             //向打印机发送打印条形码指令
  delay(5);
  mySerial.println();
  mySerial.write(QRx, 60);                                                                  //向打印机发送打印二维码指令
  mySerial.println();
  mySerial.print("---------------------------------");
  delay(5000);
}

打印位图

unsigned char  show[] = {
  0x1B, 0x2A, 0x20, 0xFA, 0x00,                                                                                                               //图片尺寸24*250,参考通用指令集34,35修改参数
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFF,
  0x00, 0x01, 0xFF, 0x80, 0x03, 0xFF, 0x80, 0x03, 0xEF, 0x80, 0x07, 0xEF, 0xC0, 0x07, 0xC7, 0xC0, 0x07, 0xC7, 0xC0, 0x07, 0xC7, 0xC0, 0x07, 0xC7, 0xE0, 0x0F, 0x83, 0xE0,
  0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x81, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F,
  0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01,
  0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x01, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x83, 0xE0,
  0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0xC7, 0xE0, 0x07, 0xC7, 0xC0, 0x07, 0xC7, 0xC0, 0x07, 0xC7, 0xC0, 0x07,
  0xEF, 0xC0, 0x03, 0xEF, 0x80, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x01, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03,
  0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7,
  0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x0F, 0xE7, 0xF0,
  0x1F, 0xE7, 0xF8, 0x1F, 0xE7, 0xF8, 0x1F, 0xE7, 0xF8, 0x1F, 0xC3, 0xF8, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0xC1, 0xF0, 0x07, 0xC3, 0xE0, 0x07,
  0xC3, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xC3, 0xE0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x03, 0xE7, 0xC0, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF,
  0x80, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00,
  0x00, 0x7E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xE0,
  0x07, 0xC3, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F,
  0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x80, 0xF8, 0x0F, 0x81, 0xF8, 0x0F, 0x81, 0xF0, 0x0F, 0x81,
  0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0,
  0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F,
  0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81,
  0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xF0, 0x0F, 0x81, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x0F, 0x83, 0xE0, 0x07, 0xC3, 0xE0, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xE0,
  0x07, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0a,
  0x1B, 0x40,
  0x1b, 0x2a, 0x00, 0x0C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,                                       //打印一根分割线
  0x1B, 0x33, 0x00,
  0x0A,
  0x1D, 0x2F, 0x30                                                                                                                            //打印位图指令

};
  1. 编写程序发送指令
#include <SoftwareSerial.h>
#include"D:\image.h"                                                                         //引用将之前新建的image.h文件,根据实际情况修改地址
SoftwareSerial mySerial(10, 11); // RX, TX

/*--------打印条形码指令,其中包含信息为“DFR0503”---------*/
char picture_S[6] = {
  0x1b, 0x40,
  0x1d, 0x2A, 0x14, 0x0A                                                                    //参考通用指令集34和35,0x14和0x0A是根据位图尺寸计算得来
};
char picture_E[3] = {
  0xID, 0x2F, 0x30
};

void setup() {
  mySerial.begin(9600);
  Serial.begin(9600);
  while (Serial.read() >= 0) {}
}
void loop() {
  mySerial.println();
  mySerial.print("---------------------------------");
  mySerial.println();

  mySerial.write(show, 2237);                                                               //向打印机发送打印位图指令

  mySerial.println();
  mySerial.print("---------------------------------");
  delay(5000);
}

即时输入,即时打印(一个简单的名片书写程序)

#include "SoftwareSerial.h"
#include "Wire.h"
char buffer[30];
SoftwareSerial mySerial(10, 11); // RX, TX
String comdata = "";
char  comdataX;
int numdata;
void setup()
{
  mySerial.begin(9600);
  Serial.begin(9600);
  while (Serial.read() >= 0) {}
}
void loop()
{
  //Serial_pc();
  Serial_pc1();
}
void Serial_pc()
{
  while (Serial.available() > 0) {
    delay(100);
    mySerial.print("DFROBOT:");
    numdata = Serial.readBytes(buffer, 30);
    mySerial.print(buffer);
  }
  for (int i = 0; i < 30; i++)
    buffer[i] = 0;
}
void Serial_pc1()
{
  while (Serial.available() > 0) {
    delay(100);
    numdata = Serial.readBytes(buffer, 30);

    if (buffer[0] > '/' && buffer[0] < ':')
    {
      mySerial.print("Tel:");
      mySerial.println(buffer);
    }
    else if (buffer[0] > '@' && buffer[0] < '{')
    {
      mySerial.print("Name:");
      mySerial.println(buffer);
    }
    else if (buffer[0] == '*')
    {
      mySerial.print("Remarks:");
      mySerial.println(buffer);
    }
    else {
      ;
    }
  }
  for (int i = 0; i < 30; i++)
    buffer[i] = 0;
}

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接