基于Arduino的语音识别垃圾箱

基于Arduino的语音控制垃圾桶

        • 前言:
        • 1、功能
        • 2、材料清单
        • 3、总体方案
        • 4、系统原理图
        • 5、程序设计
        • 6、实物展示

前言:

Arduino是一块极易入门的单片机开发版,让小白也能体验单片机的快乐,下面我简单介绍一下该语音控制垃圾桶。

1、功能

实现集语音控制、红外感应为一体的语音识别垃圾分类垃圾桶。

2、材料清单

材料清单 数量
Arduino Uno 1
Arduino Mega2560 1
SG90舵机 2
HC-05蓝牙模块 1
ld3320模块 1
RFID-RC522 1
DHT11数字温湿度传感器 2
E18-D80N光电传感器 1
蜂鸣器 1
LED灯 3
杜邦线 若干

3、总体方案

整体系统由Arduino UNO板和Arduino Mega2560板控制,使用语音识别模块进行垃圾分类,具体所使用硬件如图所示:
基于Arduino的语音识别垃圾箱_第1张图片
基于Arduino的语音识别垃圾箱_第2张图片

4、系统原理图

1.控制器I/O口分配

Arduino Mega I/O口分配表

名称 传感器引脚 I/O地址
HC-05蓝牙模块 TX 0
RX 1
LD3320语音识别芯片 MISO 50
MOSI 51
SCK 52
NSS D4
RST D9
IRQ D2
WR GND
光电传感器 OUT 5
SG90 OUT 10 / 11
LED OUT 44 / 46

Arduino UNO I/O口分配表

名称 传感器引脚 I/O地址
安全警报LED灯 OUT 5
蜂鸣器 OUT 6
DHT11数字温湿度传感器 OUT 7
RFID-RC522 MISO 12
MOSI 11
SCK 13
RST 9
SDA 10

2.系统仿真图

基于Arduino的语音识别垃圾箱_第3张图片
3.系统原理图
基于Arduino的语音识别垃圾箱_第4张图片

5、程序设计

1、语音识别部分源码

 Voice.init();                              //初始化VoiceRecognition模块   
  //不可回收垃圾词汇库                          //添加指令,参数(指令内容,指令标签(可重复))
  Voice.addCommand("ping guo",0);            //苹果
  Voice.addCommand("xiang jiao",1);          //香蕉
  Voice.addCommand("shui guo",2);            //水果
  Voice.addCommand("dian chi",3);            //电池
  Voice.addCommand("chu yu la ji",4);        //厨余垃圾
  Voice.addCommand("deng pao",5);            //灯泡
  Voice.addCommand("yao pin",6);             //药品
  //可回收垃圾词汇库
  Voice.addCommand("zhi xiang",7);           //纸箱
  Voice.addCommand("ping zi",8);             //瓶子
  Voice.addCommand("su liao",9);             //塑料
  Voice.addCommand("jin shu",10);            //金属
  Voice.addCommand("fei zhi",11);            //废纸
  Voice.addCommand("bo li",12);              //玻璃
  Voice.addCommand("yi fu",13);              //衣服
  Voice.addCommand("guan yi",14);            //关闭不可回收垃圾箱
  Voice.addCommand("guan er",15);            //关闭可回收垃圾箱
  Voice.addCommand("csdn",16);               //无关代码示例
  Voice.start();                             //开始识别

  switch(Voice.read())                          //判断识别
    {
      case 0:                                     
          digitalWrite(Led,HIGH);                 //点亮LED
          Servo_one_open();
          Serial.println("苹果");
          break;
      case 1:                                     
          digitalWrite(Led2,HIGH);
          Servo_two_open();
          Serial.println("瓶子");
          break;  
      case 2//...以此类推		                
      default:
          break;
  }

2、RFID部分源码

//该段程序烧于UNO,做卡片识别用,并发送指引
rfid.isCard();                      //找卡                                    
  if (rfid.readCardSerial())          //读卡号
  {
    Serial.print("您的卡号是   : ");
    Serial.print(rfid.serNum[0],HEX);

    if(rfid.serNum[0]==host[0][0] && rfid.serNum[1]==host[0][1] && rfid.serNum[2]==host[0][2] && rfid.serNum[3]==host[0][3])    //卡1
    {
      Serial.println("Welcome Card 1");
      Serial.print('o');
      Serial.println();
    }
//该段程序烧于Mega,接收指引,并驱动舵机
void rfid_test()                      //RFID接收指令
{
  if (Serial1.available()) 
  {
   order = Serial1.read(); 
    if (order == 'o') 
    {
      Serial.println("打开所有垃圾箱");
      digitalWrite(Led,HIGH);
      digitalWrite(Led2,HIGH);
      Servo_one_open();
      Servo_two_open();
    }
  } 
}

6、实物展示

基于Arduino的语音识别垃圾箱_第5张图片
源码太长,已放到资源下载中心。第一次写博客,瞎写写哈,有什么不好的地方请各位大佬指正^ _ ^

你可能感兴趣的:(Arduino,arduino,语音识别)