【花雕动手做】ASRPRO语音识别(31)---语音控制四路继电器
本本例实验使用四路继电器模块四路继电器模块是一种可以通过单片机或其他数字信号控制的开关模块,它可以实现对高电压或高电流设备的开关控制。
四路继电器模块的特点有:1、它有四个继电器,每个继电器可以独立控制一个负载,最大可以承受10A 250VAC或10A 30VDC的电压和电流。2、它采用光耦隔离的方式,可以有效地防止信号干扰和保护控制器。3、它有输出信号指示灯,可以直观地显示每个继电器的工作状态。4、它有二极管续流保护,可以防止继电器的反向电流对控制器造成损坏。5、它的外部连线采用旋转压接端子,可以方便地连接和拆卸线缆。6、它的尺寸较小,只有70mmX17mmX20mm,可以节省空间和便于安装。
四路继电器模块的电原理如图。
它的使用方法也很简单,只需要将控制器的数字输出口连接到模块的输入端,然后将需要控制的设备连接到模块的输出端,就可以通过控制器的程序来控制继电器的吸合和断开。四路继电器模块可以应用在各种场合,例如控制电灯、电机、风扇、水泵等设备。
实验开源代码
#define ASC2_12
#define ST7735_CS_PIN 9
#define ST7735_CS_GPIO_PIN gpio_pin_1
#define ST7735_DC_PIN 1
#define ST7735_DC_GPIO_PIN gpio_pin_1
#define ST7735_RST_PIN 25
#define ST7735_RST_GPIO_PIN gpio_pin_1
#define ST7735_SCK_PIN 3
#define ST7735_SCK_GPIO_PIN gpio_pin_3
#define ST7735_MOSI_PIN 2
#define ST7735_MOSI_GPIO_PIN gpio_pin_2
#define ASC2_32
#define ST7735S_RGB_GBR_ORDER 0
#include "asr.h"
extern "C"{ void * __dso_handle = 0 ;}
#include "setup.h"
#include "myLib/asr_st7735.h"
#include "myLib/asr_event.h"
uint32_t snid;
//{speak:小美-娇美女声,vol:10,speed:10,platform:haohaodada}
//{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
//{playid:10002,voice:我退下了,用智能管家唤醒我}
SPITFT spi_tft(128, 160);
void sys_sleep_hook()
{
digital_write((21),0);
}
void ASR_CODE()
{
//{ID:10500,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
if(snid == 10500){
digital_write((21),1);
spi_tft.clear((0xFFFF));
}
//{ID:10501,keyword:"命令词",ASR:"全部打开",ASRTO:"已经打开全部继电器"}
if(snid == 10501){
digital_write((18),0);
digital_write((19),0);
digital_write((24),0);
digital_write((7),0);
spi_tft.clear((0xFFFF));
spi_tft.set_text_color((0x001F),(0xFFFF));
spi_tft.set_cursor(0,30);
spi_tft.draw_hanzi_32("已经打开");
delay(1000);
spi_tft.set_cursor(5,70);
spi_tft.draw_hanzi_24("全部继电器");
}
//{ID:10502,keyword:"命令词",ASR:"反应挺快",ASRTO:"那是必须的,谢谢"}
if(snid == 10502){
}
//{ID:10503,keyword:"命令词",ASR:"一号继电器",ASRTO:"已经打开一号继电器"}
if(snid == 10503){
digital_write((18),0);
spi_tft.clear((0x001F));
spi_tft.set_text_color((0xFFFF),(0x001F));
spi_tft.set_cursor(0,30);
spi_tft.draw_hanzi_32("已经打开");
delay(1000);
spi_tft.set_cursor(5,70);
spi_tft.draw_hanzi_24("一号继电器");
}
//{ID:10504,keyword:"命令词",ASR:"二号继电器",ASRTO:"已经打开二号继电器"}
if(snid == 10504){
digital_write((19),0);
spi_tft.clear((0x001F));
spi_tft.set_text_color((0xFFFF),(0x001F));
spi_tft.set_cursor(0,30);
spi_tft.draw_hanzi_32("已经打开");
delay(1000);
spi_tft.set_cursor(5,70);
spi_tft.draw_hanzi_24("二号继电器");
}
//{ID:10505,keyword:"命令词",ASR:"全部关闭",ASRTO:"已经关闭全部继电器"}
if(snid == 10505){
digital_write((18),1);
digital_write((19),1);
digital_write((24),1);
digital_write((7),1);
spi_tft.clear((0xFFFF));
spi_tft.set_text_color((0xF800),(0xFFFF));
spi_tft.set_cursor(0,30);
spi_tft.draw_hanzi_32("已经关闭");
delay(1000);
spi_tft.set_cursor(5,70);
spi_tft.draw_hanzi_24("全部继电器");
}
//{ID:10506,keyword:"命令词",ASR:"三号继电器",ASRTO:"已经打开三号继电器"}
if(snid == 10506){
digital_write((24),0);
spi_tft.clear((0x001F));
spi_tft.set_text_color((0xFFFF),(0x001F));
spi_tft.set_cursor(0,30);
spi_tft.draw_hanzi_32("已经打开");
delay(1000);
spi_tft.set_cursor(5,70);
spi_tft.draw_hanzi_24("三号继电器");
}
//{ID:10507,keyword:"命令词",ASR:"四号继电器",ASRTO:"已经打开四号继电器"}
if(snid == 10507){
digital_write((7),0);
spi_tft.clear((0x001F));
spi_tft.set_text_color((0xFFFF),(0x001F));
spi_tft.set_cursor(0,30);
spi_tft.draw_hanzi_32("已经打开");
delay(1000);
spi_tft.set_cursor(5,70);
spi_tft.draw_hanzi_24("四号继电器");
}
}
void hardware_init(){
spi_tft.init();
spi_tft.set_direction(2);
spi_tft.set_text_wrap(true);
spi_tft.set_text_size(32);
spi_tft.set_bg_mode(1);
vTaskDelete(NULL);
}
void setup()
{
digital_write((21),0);
digital_write((18),1);
digital_write((19),1);
digital_write((24),1);
digital_write((7),1);
}
训练模型与编译烧录
实验记录视频
https://www.bilibili.com/video/BV1kc411x7Ve/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987
https://www.bilibili.com/video/BV1kc411x7Ve/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987
页:
[1]