查看: 214|回复: 0

【花雕动手做】ASRPRO语音识别(31)---语音控制四路继电器

[复制链接]

64

主题

86

帖子

477

积分

中级会员

Rank: 3Rank: 3

积分
477
发表于 2024-1-12 16:29:31 | 显示全部楼层 |阅读模式
本例实验使用四路继电器模块

01 (2).jpg

四路继电器模块是一种可以通过单片机或其他数字信号控制的开关模块,它可以实现对高电压或高电流设备的开关控制。

02.jpg

四路继电器模块的特点有:
1、它有四个继电器,每个继电器可以独立控制一个负载,最大可以承受10A 250VAC或10A 30VDC的电压和电流。
2、它采用光耦隔离的方式,可以有效地防止信号干扰和保护控制器。
3、它有输出信号指示灯,可以直观地显示每个继电器的工作状态。
4、它有二极管续流保护,可以防止继电器的反向电流对控制器造成损坏。
5、它的外部连线采用旋转压接端子,可以方便地连接和拆卸线缆。
6、它的尺寸较小,只有70mmX17mmX20mm,可以节省空间和便于安装。

03.jpg

07.jpg

04.jpg

四路继电器模块的电原理如图。

06.jpg

05-.jpg

它的使用方法也很简单,只需要将控制器的数字输出口连接到模块的输入端,然后将需要控制的设备连接到模块的输出端,就可以通过控制器的程序来控制继电器的吸合和断开。四路继电器模块可以应用在各种场合,例如控制电灯、电机、风扇、水泵等设备。

05.jpg

【花雕动手做】实验三十六:使用语音识别和按键分别控制四联位继电器
实验开源代码

  1. #define ASC2_12
  2. #define ST7735_CS_PIN 9
  3. #define ST7735_CS_GPIO_PIN gpio_pin_1
  4. #define ST7735_DC_PIN 1
  5. #define ST7735_DC_GPIO_PIN gpio_pin_1
  6. #define ST7735_RST_PIN 25
  7. #define ST7735_RST_GPIO_PIN gpio_pin_1
  8. #define ST7735_SCK_PIN 3
  9. #define ST7735_SCK_GPIO_PIN gpio_pin_3
  10. #define ST7735_MOSI_PIN 2
  11. #define ST7735_MOSI_GPIO_PIN gpio_pin_2
  12. #define ASC2_32
  13. #define ST7735S_RGB_GBR_ORDER   0

  14. #include "asr.h"
  15. extern "C"{ void * __dso_handle = 0 ;}
  16. #include "setup.h"
  17. #include "myLib/asr_st7735.h"
  18. #include "myLib/asr_event.h"

  19. uint32_t snid;

  20. //{speak:小美-娇美女声,vol:10,speed:10,platform:haohaodada}
  21. //{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
  22. //{playid:10002,voice:我退下了,用智能管家唤醒我}

  23. SPITFT spi_tft(128, 160);
  24. void sys_sleep_hook()
  25. {
  26.   digital_write((21),0);

  27. }

  28. void ASR_CODE()
  29. {
  30.   //{ID:10500,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
  31.   if(snid == 10500){
  32.     digital_write((21),1);
  33.     spi_tft.clear((0xFFFF));
  34.   }
  35.   //{ID:10501,keyword:"命令词",ASR:"全部打开",ASRTO:"已经打开全部继电器"}
  36.   if(snid == 10501){
  37.     digital_write((18),0);
  38.     digital_write((19),0);
  39.     digital_write((24),0);
  40.     digital_write((7),0);
  41.     spi_tft.clear((0xFFFF));
  42.     spi_tft.set_text_color((0x001F),(0xFFFF));
  43.     spi_tft.set_cursor(0,30);
  44.     spi_tft.draw_hanzi_32("已经打开");
  45.     delay(1000);
  46.     spi_tft.set_cursor(5,70);
  47.     spi_tft.draw_hanzi_24("全部继电器");
  48.   }
  49.   //{ID:10502,keyword:"命令词",ASR:"反应挺快",ASRTO:"那是必须的,谢谢"}
  50.   if(snid == 10502){

  51.   }
  52.   //{ID:10503,keyword:"命令词",ASR:"一号继电器",ASRTO:"已经打开一号继电器"}
  53.   if(snid == 10503){
  54.     digital_write((18),0);
  55.     spi_tft.clear((0x001F));
  56.     spi_tft.set_text_color((0xFFFF),(0x001F));
  57.     spi_tft.set_cursor(0,30);
  58.     spi_tft.draw_hanzi_32("已经打开");
  59.     delay(1000);
  60.     spi_tft.set_cursor(5,70);
  61.     spi_tft.draw_hanzi_24("一号继电器");
  62.   }
  63.   //{ID:10504,keyword:"命令词",ASR:"二号继电器",ASRTO:"已经打开二号继电器"}
  64.   if(snid == 10504){
  65.     digital_write((19),0);
  66.     spi_tft.clear((0x001F));
  67.     spi_tft.set_text_color((0xFFFF),(0x001F));
  68.     spi_tft.set_cursor(0,30);
  69.     spi_tft.draw_hanzi_32("已经打开");
  70.     delay(1000);
  71.     spi_tft.set_cursor(5,70);
  72.     spi_tft.draw_hanzi_24("二号继电器");
  73.   }
  74.   //{ID:10505,keyword:"命令词",ASR:"全部关闭",ASRTO:"已经关闭全部继电器"}
  75.   if(snid == 10505){
  76.     digital_write((18),1);
  77.     digital_write((19),1);
  78.     digital_write((24),1);
  79.     digital_write((7),1);
  80.     spi_tft.clear((0xFFFF));
  81.     spi_tft.set_text_color((0xF800),(0xFFFF));
  82.     spi_tft.set_cursor(0,30);
  83.     spi_tft.draw_hanzi_32("已经关闭");
  84.     delay(1000);
  85.     spi_tft.set_cursor(5,70);
  86.     spi_tft.draw_hanzi_24("全部继电器");
  87.   }
  88.   //{ID:10506,keyword:"命令词",ASR:"三号继电器",ASRTO:"已经打开三号继电器"}
  89.   if(snid == 10506){
  90.     digital_write((24),0);
  91.     spi_tft.clear((0x001F));
  92.     spi_tft.set_text_color((0xFFFF),(0x001F));
  93.     spi_tft.set_cursor(0,30);
  94.     spi_tft.draw_hanzi_32("已经打开");
  95.     delay(1000);
  96.     spi_tft.set_cursor(5,70);
  97.     spi_tft.draw_hanzi_24("三号继电器");
  98.   }
  99.   //{ID:10507,keyword:"命令词",ASR:"四号继电器",ASRTO:"已经打开四号继电器"}
  100.   if(snid == 10507){
  101.     digital_write((7),0);
  102.     spi_tft.clear((0x001F));
  103.     spi_tft.set_text_color((0xFFFF),(0x001F));
  104.     spi_tft.set_cursor(0,30);
  105.     spi_tft.draw_hanzi_32("已经打开");
  106.     delay(1000);
  107.     spi_tft.set_cursor(5,70);
  108.     spi_tft.draw_hanzi_24("四号继电器");
  109.   }
  110. }

  111. void hardware_init(){
  112.   spi_tft.init();
  113.   spi_tft.set_direction(2);
  114.   spi_tft.set_text_wrap(true);
  115.   spi_tft.set_text_size(32);
  116.   spi_tft.set_bg_mode(1);
  117.   vTaskDelete(NULL);
  118. }

  119. void setup()
  120. {
  121.   digital_write((21),0);
  122.   digital_write((18),1);
  123.   digital_write((19),1);
  124.   digital_write((24),1);
  125.   digital_write((7),1);
  126. }
复制代码

训练模型与编译烧录

08.jpg

09.jpg

实验记录视频

【【花雕动手做】ASRPRO语音识别(31)---语音控制四位继电器】
https://www.bilibili.com/video/BV1kc411x7Ve/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987



10 (4).jpg

10 (5).jpg

10 (1).jpg

10 (2).jpg

10 (3).jpg


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-5-2 18:07 , Processed in 0.333673 second(s), 26 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表