914浏览
查看: 914|回复: 0

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

[复制链接]
本例实验使用四路继电器模块

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

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

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

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

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

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

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


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

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

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

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

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

实验开源代码

  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. }
复制代码

训练模型与编译烧录

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

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

实验记录视频

https://www.bilibili.com/video/BV1kc411x7Ve/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987



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

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

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

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

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


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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail