HS-S57-L SU-03T Voice Recognition Control Module

HS-S57-L SU-03T Voice Recognition Control Module

1. Introduction

The SU-03T voice recognition control module provides users with a convenient and inexpensive serial port offline voice recognition solution that can be widely and rapidly applied to smart home, various smart appliances, 86 boxes, toys, lighting, and other products that require voice control.Voice recognition uses offline voice recognition chips.Achieve communication with the host through serial port, supporting up to 150 voice commands, customizable voice commands and firmware on the user platform, arbitrary modification of command words, simple development, no coding required.The chip comes with firmware download, you can complete the firmware download with just a data cable.Supports voice volume adjustment, learning wake words, and has sensitive and high recognition accuracy.

2. Schematic

SU-03T voice recognition control module-HS-S57-L schematicClick to view

Module Parameters

Pin Name

description

VCC

VCC (Positive Power Input)

GND

GND (Negative Power Input)

TX

Signal Transmission Pin

RX

Signal Reception Pin

Power Supply Voltage: 3.3V / 5V

Connection method: PH2.0 4P terminal wire

Installation method: double screw fixing/Lego assembly

4, Circuit Board Size

Flashing firmware tutorial(Note: The module is pre-flashed with firmware upon manufacture and can be used directly. Flash firmware steps are required when you need to modify the terms yourself.)

Flash file:Click to download

Step 1: Download the file

Step 2: Open the burning program

Step 3: Add the files to be burned into the program and click burn

Step 4: Press the module reset button

After pressing, observe the app starting to load progress

After the download is complete, the module has voice prompts. You can then control the voice module with the UNO development board.

5 of Arduino IDE example program

Attention: If prompted with an error message about the library file during program upload, please import the library file first!
Arduino IDE Library Download and Import Tutorial:
Click to view

Example program (UNO development board):

volatile int yuyin;
#include <SoftwareSerial.h>

// 串口发送消息最大长度
#define UART_SEND_MAX      32
#define UART_MSG_HEAD_LEN  2
#define UART_MSG_FOOT_LEN  2
// 串口发送消息号
#define U_MSG_bozhensgshu      1
#define U_MSG_boxiaoshu      2
#define U_MSG_bobao1      3
#define U_MSG_bobao2      4
#define U_MSG_bobao3      5
#define U_MSG_bobao4      6
#define U_MSG_bobao5      7
#define U_MSG_bobao6      8
#define U_MSG_bobao7      9
#define U_MSG_bobao8      10
#define U_MSG_bobao9      11
#define U_MSG_bobao10      12
#define U_MSG_bobao11      13
#define U_MSG_bobao12      14
#define U_MSG_bobao13      15
#define U_MSG_bobao14      16
#define U_MSG_bobao15      17
#define U_MSG_bobao16      18
#define U_MSG_bobao17      19
#define U_MSG_bobao18      20
#define U_MSG_bobao19      21
#define U_MSG_bobao20      22
#define U_MSG_bobao21      23
#define U_MSG_bobao22      24
#define U_MSG_bobao23      25
#define U_MSG_bobao24      26
#define U_MSG_bobao25      27
#define U_MSG_bobao26      28
#define U_MSG_bobao27      29
#define U_MSG_bobao28      30
#define U_MSG_bobao29      31
#define U_MSG_bobao30      32
#define U_MSG_bobao31      33
#define U_MSG_bobao32      34
#define U_MSG_bobao33      35
#define U_MSG_bobao34      36
// 串口消息参数类型
typedef union {
  double d_double;
  int d_int;
  unsigned char d_ucs[8];
  char d_char;
  unsigned char d_uchar;
  unsigned long d_long;
  short d_short;
  float d_float;}uart_param_t;

SoftwareSerial mySerial(5,6);
// 串口发送函数实现
void _uart_send_impl(unsigned char* buff, int len) {
  // TODO: 调用项目实际的串口发送函数
  for(int i=0;i<len;i++)
{
   mySerial.write (*buff++);
}
}

// 串口通信消息尾
const unsigned char g_uart_send_foot[] = {
  0x55, 0xaa
};

// 十六位整数转32位整数
void _int16_to_int32(uart_param_t* param) {
  if (sizeof(int) >= 4)
    return;
  unsigned long value = param->d_long;
  unsigned long sign = (value >> 15) & 1;
  unsigned long v = value;
  if (sign)
    v = 0xFFFF0000 | value;
  uart_param_t p;  p.d_long = v;
  param->d_ucs[0] = p.d_ucs[0];
  param->d_ucs[1] = p.d_ucs[1];
  param->d_ucs[2] = p.d_ucs[2];
  param->d_ucs[3] = p.d_ucs[3];
}

// 浮点数转双精度
void _float_to_double(uart_param_t* param) {
  if (sizeof(int) >= 4)
    return;
  unsigned long value = param->d_long;
  unsigned long sign = value >> 31;
  unsigned long M = value & 0x007FFFFF;
  unsigned long e =  ((value >> 23 ) & 0xFF) - 127 + 1023;
  uart_param_t p0, p1;
  p1.d_long = ((sign & 1) << 31) | ((e & 0x7FF) << 20) | (M >> 3);
  param->d_ucs[0] = p0.d_ucs[0];
  param->d_ucs[1] = p0.d_ucs[1];
  param->d_ucs[2] = p0.d_ucs[2];
  param->d_ucs[3] = p0.d_ucs[3];
  param->d_ucs[4] = p1.d_ucs[0];
  param->d_ucs[5] = p1.d_ucs[1];
  param->d_ucs[6] = p1.d_ucs[2];
  param->d_ucs[7] = p1.d_ucs[3];
}

// 串口通信消息头
const unsigned char g_uart_send_head[] = {
  0xaa, 0x55
};

void setup(){
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  digitalWrite(13,LOW);
  mySerial.begin(9600);
  yuyin = 0;
  Serial.begin(9600);
}

void loop(){
  //你好小爱唤醒语音识别模块
  //语音识别模块RX引脚接uno开发D5引脚,TX引脚接uno开发D6引脚

  if (mySerial.available() > 0) {
  yuyin = mySerial.read();
   Serial.println(yuyin,HEX);
  }
  if (yuyin == 1) {
    yuyin = 0;
    Serial.println("开灯");
    digitalWrite(13,HIGH);

  } else if (yuyin == 2) {
    yuyin = 0;
    Serial.println("关灯 ");
    digitalWrite(13,LOW);
  }

}

6, ESP32 Python Example (for Mixly IDE/Misashi)

Choose the development board Python ESP32 [ESP32 Generic(4MB)] and upload in code mode

Attention: If prompted with an error message about the library file during program upload, please import the library file first!
Download and import tutorial for Mixly IDE ESP32 library:
Click to view

Example program (ESP32-Python):

import machine
import time


uart1=machine.UART(1, tx=17, rx=16, baudrate=9600)
pin2 = machine.Pin(2, machine.Pin.OUT)
while True:
    if uart1.any():
        data = uart1.read()
        if data == b'\x01':
            pin2.value(1)
            print('111', 'Mixly')
            time.sleep_ms(100)
        elif data == b'\x02':
            pin2.value(0)
            print('nnnn', 'Mixly')
            time.sleep_ms(100)

7, Mixly example program (graphical language)

Example program (UNO development board):Click to download
Attention: If prompted with an error message about the library file during program upload, please import the library file first!
Download and import tutorial of Mixly IDE Arduino library:Click to view

Example Program (ESP32 Development Board):Click to download
Attention: If prompted with an error message about the library file during program upload, please import the library file first!
Download and import tutorial for Mixly IDE ESP32 library:
Click to view

8. Setting up the Test Environment

Arduino UNO Test Environment Setup

Prepare Components:

UNO - R3 Development Board *1

HS-UNO EXP1 Expansion Board *1

USB TYPE-C DATA CABLE *1

LED light module *1

SU-03T voice recognition control module (HS-S57-L) *1

PH2.0 4P socket to Dupont wire *1 or PH2.0 4P double-ended socket wire *1

Circuit wiring diagram:

ESP32 Test Environment Setup

Prepare Components:Pending update...

Circuit wiring diagram:Pending update...

9, Video tutorial

Video tutorial:Click to view (Learn how to customize the voice statements and burn the firmware)

10, Test conclusion

Arduino UNO test results:

After the device is connected and the program is burned to the development board, you can communicate with the SU-03T voice recognition control module.

All reference materials:Click to download