Gravity: 环形二维码扫描识别传感器

简介

这是一款高集成、性能优良的二维码识别传感器,外形小巧,可以识别通用的一维码跟二维码,采用Gravity接口,接线更方便,传感器自带七彩指示灯,通过指示灯的颜色反馈传感器识别条码的状态。
工作电压3.3V/5V,通信方式兼容UART与I2C,适合Arduino、esp32、树莓派等更多主控板,让它开发起来更为简单,可用于自助售卖机、地铁闸机,门禁,收付款机等。

特性

  • Gravity接线方式
  • 3.3V/5V供电
  • 支持I2C、UART通信方式

技术规格

  • 工作供电:DC3.3V/5V
  • 工作电流:<70mA
  • 通信方式:I2C、UART
  • 采图像素:640*480
  • 光源:七彩指示/绿光闪烁提示识读成功
  • 识读码制:1D:EAN13、EAN8、UPCA、UPCE0、UPCE1、Code128、Code39、Code93、 CodeBar、Interleaved 2 of 5
    2D:QR code、Data Matrix、PDF417
  • 识读景深:QR Code(25mm-150mm产品性能可能会因为条码质量和环境条件而受不同程度影响)
  • 对比度:≥25%
  • 识读角度:旋转 360°,偏转 55°,倾斜 55°
  • 扫描角度:69°(水平),56°(垂直)
  • 识读精度:≥5mil
  • 工作温度:20°C ~60°C
  • 存储温度:-40°C ~80°C
  • 环境光照:0~100000Lux
  • 相对湿度:5%到 95% (不凝结)

引脚示意图

引脚示意图 引脚示意图
标号 名称 功能描述
1 SDA/TX I2C 通讯数据线/串口发送数据线
2 SCL/RX I2C 通讯时钟线/串口接受数据线
3 GND 电源负极
4 VCC 电源正极3.3/5V

在Arduino UNO R3上使用教程

准备

  • 硬件

Arduino UNO x1

Gravity:环形二维码扫描识别传感器 x1

  • 软件

Arduino IDE,点击下载 Arduino IDE

下载二维码识别传感器库文件 如何安装库文件

引脚示意图

UART示例代码

将转接板的拨码开关拨到UART再烧录代码。

/*!
 *@file detect_uart.ino
 *@brief 连续扫描二维码,并将二维码中的信息输出到串口
 *@copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 *@licence     The MIT License (MIT)
 *@author [fengli](li.feng@dfrobot.com)
 *@version  V1.0
 *@date  2021-6-29
 *@get from https://www.dfrobot.com
 *@https://github.com/DFRobot/DFRobot_GM60
*/

#include <DFRobot_GM60.h>
DFRobot_GM60_UART  gm60;
/*Use software serial when using UNO or NANO*/
#if ((defined ARDUINO_AVR_UNO) || (defined ARDUINO_AVR_NANO))
    #include <SoftwareSerial.h>
    SoftwareSerial Serial1(2, 3);  //RX, TX
    #define FPSerial Serial1
    
#else
    #define FPSerial Serial1
#endif

void setup(){
  //使用firebeetle-ESP32 时需要见rx,tx映射到D2,D3
  #if (defined ESP32)
     Serial1.begin(9600, SERIAL_8N1, /*rx =*/D2, /*tx =*/D3);
  #else
  Serial1.begin(9600);
  #endif
  Serial.begin(115200);
  //初始化芯片
  gm60.begin(Serial1);
  //恢复出厂设置
 // gm60.reset();

  /**
  读出数据的编码方式
  encode 编码方式
           eGBK,//gbk编码
           eUTF8,//utf8编码
   */
  gm60.encode(/*encode = */gm60.eUTF8);
  
  /*! 设置码配置,可以通过使用模块扫描二维码,更改芯片寄存器的值
  on true(打开设置码)/false(关闭设置码)
  content true(输出设置码内容)/false(不输出设置码内容)
  */
  gm60.setupCode(/*on =*/true,/*content=*/true);
  
  /**
    设置二维码识别的种类设置
    berCode:
    eForbidAllBarcode, //禁止所有的二维码识别
    eEnableAllBarcode, // 使能所有的二维码识别
    eEnableDefaultcode, // 使能默认的二维码识别
  */
  gm60.setIdentify(/*berCode = */gm60.eEnableAllBarcode);
  Serial.println("开始识别");
}

void loop(){
  delay(50);
  //检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据
  Serial.println(gm60.detection());

}

示例结果:检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据打印在串口上

引脚示意图

I2C示例代码

将转接板的拨码开关拨到I2C再烧录代码。

/*!
 *@file detect_i2c.ino
 *@brief 连续扫描二维码,并将二维码中的信息输出到串口
 *@copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 *@licence     The MIT License (MIT)
 *@author [fengli](li.feng@dfrobot.com)
 *@version  V1.0
 *@date  2021-6-29
 *@get from https://www.dfrobot.com
 *@https://github.com/DFRobot/DFRobot_GM60
*/

#include <DFRobot_GM60.h>

/*!
 * @brief Constructor 
 * @param pWire I2c controller
 * @param addr  I2C address(0x1A)
 */
DFRobot_GM60_IIC  gm60;

void setup(){
  // Serial1.begin(9600);
  Serial.begin(115200);
  //初始化芯片
  gm60.begin();
  //恢复出厂设置
  gm60.reset();

  /**
  读出数据的编码方式
  encode 编码方式
           eGBK,//gbk编码
           eUTF8,//utf8编码
   */
  gm60.encode(gm60.eUTF8);
  
  /*! 设置码配置,可以通过使用模块扫描二维码,更改芯片寄存器的值
  on true(打开设置码)/false(关闭设置码)
  content true(输出设置码内容)/false(不输出设置码内容)
  */
  gm60.setupCode(/*on =*/true,/*content=*/true);
  
  /**
    设置二维码识别的种类设置
    berCode:
    eForbidAllBarcode, //禁止所有的二维码识别
    eEnableAllBarcode, // 使能所有的二维码识别
    eEnableDefaultcode, // 使能默认的二维码识别
  */
  gm60.setIdentify(gm60.eEnableAllBarcode);
  
  Serial.println("开始识别");
}

void loop(){
  delay(50);
  //检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据
  Serial.println(gm60.detection());
}

示例结果:检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据打印在串口上

常见问题

还没有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们!
更多问题及有趣的应用,可以访问论坛进行查阅或发帖

更多

DFRobot 商城购买链接