Arduino智能语音识别分类垃圾桶

一、项目介绍

1、语音识别功能

    该功能主要是通过ASRpro语音识别模块来实现,结合舵机部分,通过天问block编程,以达到用户输入语音指令,通过正确识别后控制舵机打开相应垃圾桶盖子,实现垃圾分类(可回收垃圾、其他垃圾、厨余垃圾、有害垃圾)。

2、满溢警示功能

该功能是利用Arduino Uno开发板结合红外对管和LED灯等器件实现,红外模块时刻发送红外信号,当检测到的反射的信号值高于红外阈值,判定垃圾桶已经盈满,红外模块向Arduino输出低电平信号,Arduino控制相应的LED灯亮起,实现垃圾桶满载提醒功能。

3、短信提醒功能

该功能是通过SIM900A模块发送短信实现,通过红外模块识别垃圾桶盈满情况,当垃圾桶盈满时,红外模块向Arduino返回低电平信号,经过单片机识别,向SIM900A模块发送指令,令其将相应短信发送给管理人员,以达到提醒目的。

二、硬件准备

序号

器、耗材名称

规格型号

数量

链接

1

ASRPRO语音识别开发板

CZ0001

1

https://m.tb.cn/h.56j1hZM?tk=0MuEW0oS87q

2

迷你分类垃圾桶

13cm*9cm

1

https://m.tb.cn/h.UrCU9S7?tk=iTu7d9VqZPF

3

舵机

SG90

4

https://m.tb.cn/h.UIvmdom?tk=quCqd9VpVHD

4

ArduinoUNO单片机

1

https://m.tb.cn/h.5gAgjWo?tk=YaSgW0oidft

5

短信发送模块

SIM900A模块

1

https://m.tb.cn/h.UrC47rq?tk=vqred9VKJpl

6

红外避障模块  

4

https://m.tb.cn/h.5gAgjWo?tk=YaSgW0oidft

7

LED灯

4

三、线路连接

1、ASRPRO控制舵机

2、Arduino控制红外

3、 Arduino控制短信发送模块

注意:具体接口以代码为准

四、代码

1、烧写软件为天问BLOCK,请联系淘宝客服下载使用。录入ASRpro语音开发板的代码,用于识别语音指令并控制舵机。代码中包含以下几个部分:初始化ASRpro语音识别开发板;设置语音识别库识别语音指令;控制舵机打开或关闭垃圾桶盖子。

ASRpro语音开发板的代码:

#include "asr.h"
extern "C"{ void * __dso_handle = 0 ;}
#include "setup.h"
#include "myLib/asr_servo.h"

uint32_t snid;
Servo servo_2;
Servo servo_3;
Servo servo_5;
Servo servo_6;
void ASR_CODE();

//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
/*描述该功能...
*/
void ASR_CODE(){
  if(((snid) > 1) && ((snid) <= 37)){
    servo_2.write(180);
  }
  if(((snid) > 37) && ((snid) <= 69)){
    servo_3.write(90);
  }
  if(((snid) > 69) && ((snid) <= 106)){
    servo_5.write(180);
  }
  if(((snid) > 106) && ((snid) <= 138)){
    servo_6.write(90);
  }
  if((snid) == 139){
    servo_2.write(90);
    servo_3.write(0);
    servo_5.write(90);
    servo_6.write(0);
  }
}
void setup()
{
  //{speak:程程-标准男童,vol:18,speed:10,platform:haohaodada}
  //{playid:10001,voice:欢迎使用智能垃圾桶,请用小群唤醒我。}
  //{playid:10002,voice:我退下了,用小群唤醒我}
  //{ID:1,keyword:"唤醒词",ASR:"小群",ASRTO:"我在"}
  //{ID:2,keyword:"命令词",ASR:"塑料瓶",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:3,keyword:"命令词",ASR:"玩偶",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:4,keyword:"命令词",ASR:"铁锅",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:5,keyword:"命令词",ASR:"衣服",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:6,keyword:"命令词",ASR:"家电",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:7,keyword:"命令词",ASR:"报纸",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:8,keyword:"命令词",ASR:"纸箱",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:9,keyword:"命令词",ASR:"梳子",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:10,keyword:"命令词",ASR:"塑料篮",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:11,keyword:"命令词",ASR:"锁",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:12,keyword:"命令词",ASR:"鞋子",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:13,keyword:"命令词",ASR:"牙膏皮",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:14,keyword:"命令词",ASR:"牙刷",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:15,keyword:"命令词",ASR:"雨伞",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:16,keyword:"命令词",ASR:"纸盒",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:17,keyword:"命令词",ASR:"纸袋",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:18,keyword:"命令词",ASR:"夹子",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:19,keyword:"命令词",ASR:"勺子",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:20,keyword:"命令词",ASR:"镜子",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:21,keyword:"命令词",ASR:"书包",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:22,keyword:"命令词",ASR:"手提包",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:23,keyword:"命令词",ASR:"牛奶盒",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:24,keyword:"命令词",ASR:"书",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:25,keyword:"命令词",ASR:"垃圾桶",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:26,keyword:"命令词",ASR:"帽子",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:27,keyword:"命令词",ASR:"玩具",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:28,keyword:"命令词",ASR:"罐头",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:29,keyword:"命令词",ASR:"期刊",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:30,keyword:"命令词",ASR:"油桶",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:31,keyword:"命令词",ASR:"酒瓶",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:32,keyword:"命令词",ASR:"广告单",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:33,keyword:"命令词",ASR:"塑料瓶",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:34,keyword:"命令词",ASR:"玻璃",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:35,keyword:"命令词",ASR:"易拉罐",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:36,keyword:"命令词",ASR:"数码产品",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:37,keyword:"命令词",ASR:"塑料玩具",ASRTO:"可回收,马上打开垃圾桶"}
  //{ID:38,keyword:"命令词",ASR:"药片",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:39,keyword:"命令词",ASR:"药品",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:40,keyword:"命令词",ASR:"胶囊",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:41,keyword:"命令词",ASR:"油漆",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:42,keyword:"命令词",ASR:"油漆桶",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:43,keyword:"命令词",ASR:"医用棉签",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:44,keyword:"命令词",ASR:"纱布",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:45,keyword:"命令词",ASR:"注射器",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:46,keyword:"命令词",ASR:"调色板",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:47,keyword:"命令词",ASR:"农药瓶",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:48,keyword:"命令词",ASR:"相纸",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:49,keyword:"命令词",ASR:"溶剂",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:50,keyword:"命令词",ASR:"杀虫剂",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:51,keyword:"命令词",ASR:"消毒",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:52,keyword:"命令词",ASR:"节能灯",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:53,keyword:"命令词",ASR:"蚊香片",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:54,keyword:"命令词",ASR:"创可贴",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:55,keyword:"命令词",ASR:"水银温度计",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:56,keyword:"命令词",ASR:"血压计",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:57,keyword:"命令词",ASR:"香水瓶",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:58,keyword:"命令词",ASR:"荧光",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:59,keyword:"命令词",ASR:"电池",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:60,keyword:"命令词",ASR:"发胶",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:61,keyword:"命令词",ASR:"医用手套",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:62,keyword:"命令词",ASR:"水彩笔",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:63,keyword:"命令词",ASR:"化妆品",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:64,keyword:"命令词",ASR:"药品包装物",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:65,keyword:"命令词",ASR:"溶剂包装物",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:66,keyword:"命令词",ASR:"消毒剂包装物",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:67,keyword:"命令词",ASR:"口服液瓶",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:68,keyword:"命令词",ASR:"煤气罐",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:69,keyword:"命令词",ASR:"酒精",ASRTO:"有害,马上打开垃圾桶"}
  //{ID:70,keyword:"命令词",ASR:"豆",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:71,keyword:"命令词",ASR:"鱼",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:72,keyword:"命令词",ASR:"草莓",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:73,keyword:"命令词",ASR:"葱",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:74,keyword:"命令词",ASR:"蘑菇",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:75,keyword:"命令词",ASR:"巧克力",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:76,keyword:"命令词",ASR:"土豆",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:77,keyword:"命令词",ASR:"番茄酱",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:78,keyword:"命令词",ASR:"骨头",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:79,keyword:"命令词",ASR:"梨",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:80,keyword:"命令词",ASR:"茄子",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:81,keyword:"命令词",ASR:"甘蔗",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:82,keyword:"命令词",ASR:"豌豆",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:83,keyword:"命令词",ASR:"西瓜",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:84,keyword:"命令词",ASR:"西红柿",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:85,keyword:"命令词",ASR:"玉米",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:86,keyword:"命令词",ASR:"橙皮",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:87,keyword:"命令词",ASR:"辣椒",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:88,keyword:"命令词",ASR:"蟹壳",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:89,keyword:"命令词",ASR:"水果",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:90,keyword:"命令词",ASR:"虾",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:91,keyword:"命令词",ASR:"香蕉",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:92,keyword:"命令词",ASR:"洋葱",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:93,keyword:"命令词",ASR:"茶渣",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:94,keyword:"命令词",ASR:"菜叶",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:95,keyword:"命令词",ASR:"剩饭",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:96,keyword:"命令词",ASR:"剩菜",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:97,keyword:"命令词",ASR:"面包",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:98,keyword:"命令词",ASR:"鸡肉",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:99,keyword:"命令词",ASR:"蔬菜",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:100,keyword:"命令词",ASR:"蛋糕",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:101,keyword:"命令词",ASR:"饼干",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:102,keyword:"命令词",ASR:"苹果核",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:103,keyword:"命令词",ASR:"蛋壳",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:104,keyword:"命令词",ASR:"动物内脏",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:105,keyword:"命令词",ASR:"中药药渣",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:106,keyword:"命令词",ASR:"宠物饲料",ASRTO:"厨余,马上打开垃圾桶"}
  //{ID:107,keyword:"命令词",ASR:"陶瓷",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:108,keyword:"命令词",ASR:"烟蒂",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:109,keyword:"命令词",ASR:"贝壳",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:110,keyword:"命令词",ASR:"砧板",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:111,keyword:"命令词",ASR:"海绵",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:112,keyword:"命令词",ASR:"花盆",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:113,keyword:"命令词",ASR:"花瓶",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:114,keyword:"命令词",ASR:"宠物粪便",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:115,keyword:"命令词",ASR:"篮球",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:116,keyword:"命令词",ASR:"马桶",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:117,keyword:"命令词",ASR:"尿片",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:118,keyword:"命令词",ASR:"坛子",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:119,keyword:"命令词",ASR:"扫把",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:120,keyword:"命令词",ASR:"桃核",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:121,keyword:"命令词",ASR:"瓦片",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:122,keyword:"命令词",ASR:"卫生纸",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:123,keyword:"命令词",ASR:"化妆刷",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:124,keyword:"命令词",ASR:"烟蒂",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:125,keyword:"命令词",ASR:"烟头",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:126,keyword:"命令词",ASR:"一次性",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:127,keyword:"命令词",ASR:"浴缸",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:128,keyword:"命令词",ASR:"餐巾纸",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:129,keyword:"命令词",ASR:"砖块",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:130,keyword:"命令词",ASR:"尿不湿",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:131,keyword:"命令词",ASR:"抹布",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:132,keyword:"命令词",ASR:"湿巾纸",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:133,keyword:"命令词",ASR:"塑料袋",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:134,keyword:"命令词",ASR:"食品包装",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:135,keyword:"命令词",ASR:"渣土",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:136,keyword:"命令词",ASR:"保鲜膜",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:137,keyword:"命令词",ASR:"头发",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:138,keyword:"命令词",ASR:"纸尿裤",ASRTO:"其他,马上打开垃圾桶"}
  //{ID:139,keyword:"命令词",ASR:"关闭",ASRTO:"好的,马上关闭垃圾桶"}
  servo_2.attach(2);
  servo_3.attach(3);
  servo_5.attach(5);
  servo_6.attach(6);
}

另外有一个帖子写的就是这个程序,还有教程。其中包含天问block的下载和所需程序的下载地址。

参考链接:

分享案例~ASRPRO语音控制垃圾桶 - 扩展库 - 好好搭搭论坛 - 好好搭搭在线

2、录入Arduino开发板的代码,用于控制LED灯和sim900a模块。代码中包含以下几个部分:初始化红外模块和LED灯;读取红外模块的输出信号;根据红外模块的输出信号控制LED灯的亮灭初始化sim900a模块;检测sim900a准备情况;根据红外模块输出信号控制短信发送。以下是Arduino开发板的代码:

#include <SoftwareSerial.h>
// 红外对管引脚定义
int irPin1 = 2;
int irPin2 = 3;
int irPin3 = 4;
int irPin4 = 5;
int ledPin1 = 6;
int ledPin2 = 7;
int ledPin3 = 8;
int ledPin4 = 9;
// SIM900A 模块串口通信引脚定义
SoftwareSerial sim900a(10, 11);
void setup()
{
  // 初始化串口
  Serial.begin(9600);
  sim900a.begin(9600);
  // 设置红外对管引脚为输入模式
  pinMode(irPin1, INPUT);
  pinMode(irPin2, INPUT);
  pinMode(irPin3, INPUT);
  pinMode(irPin4, INPUT);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  // 等待SIM900A模块准备就绪
  Serial.print("等待 SIM900A 模块准备就绪...");
  while(!sim900a.available()) 
  {
    sim900a.println("AT");
    delay(1000);
    Serial.print(".");
  }
  Serial.println(" SIM900A 模块准备就绪");
}
void loop() {
  // 读取红外对管状态
  int irState1 = digitalRead(irPin1);
  int irState2 = digitalRead(irPin2);
  int irState3 = digitalRead(irPin3);
  int irState4 = digitalRead(irPin4);
  if (irState1 == LOW)
   {
    digitalWrite(ledPin1, HIGH);
    Serial.println("可回收垃圾箱已满");
    // 发送短信
    sim900a.println("AT+CMGF=1");
    delay(1000);
    sim900a.println("AT+CMGS=\"15623288697\"");
    delay(1000);
    sim900a.println("Recyclable waste can is full!");
    delay(1000);
    sim900a.write(26);
    delay(1000);
    // 检查短信是否发送成功
    String response = sim900a.readString();
    if (response.indexOf("+CMGS:") != -1)
    {
      Serial.println("短信发送成功");
    } 
    else 
    {
      Serial.println("短信发送失败");
    }
  } 
  else 
  {
    digitalWrite(ledPin1, LOW);
    //Serial.println("可回收垃圾箱正常");
  }
  if (irState2== LOW) 
  {
    digitalWrite(ledPin2, HIGH);
    Serial.println("有害垃圾箱已满");
    // 发送短信
    sim900a.println("AT+CMGF=1");
    delay(1000);
    sim900a.println("AT+CMGS=\"15623288697\"");
    delay(1000);
    sim900a.println("Hazardous waste can is full!");
    delay(1000);
    sim900a.write(26);
    delay(1000);
    // 检查短信是否发送成功
    String response = sim900a.readString();
    if (response.indexOf("+CMGS:") != -1) 
    {
      Serial.println("短信发送成功");
    } 
    else 
    {
      Serial.println("短信发送失败");
    }
  } 
  else 
  {
    digitalWrite(ledPin2, LOW);
    //Serial.println("有害垃圾箱正常");
  }
if (irState3== LOW) 
  {
    digitalWrite(ledPin3, HIGH);
    Serial.println("其他垃圾箱已满");
    // 发送短信
    sim900a.println("AT+CMGF=1");
    delay(1000);
    sim900a.println("AT+CMGS=\"15623288697\"");
    delay(1000);
    sim900a.println("Other waste can is full!");
    delay(1000);
    sim900a.write(26);
    delay(1000);
    // 检查短信是否发送成功
    String response = sim900a.readString();
    if (response.indexOf("+CMGS:") != -1) 
    {
      Serial.println("短信发送成功");
    } 
    else 
    {
      Serial.println("短信发送失败");
    }
  } 
  else 
  {
    digitalWrite(ledPin3, LOW);
    //Serial.println("其他垃圾箱正常");
  }
  if (irState4== LOW) 
  {
    digitalWrite(ledPin4, HIGH);
    Serial.println("厨余垃圾箱已满");
    // 发送短信
    sim900a.println("AT+CMGF=1");
    delay(1000);
    sim900a.println("AT+CMGS=\"15623288697\"");
    delay(1000);
    sim900a.println("Kitchen waste can is full!");
    delay(1000);
    sim900a.write(26);
    delay(1000);
    // 检查短信是否发送成功
    String response = sim900a.readString();
    if (response.indexOf("+CMGS:") != -1) 
    {
      Serial.println("短信发送成功");
    } 
    else 
    {
      Serial.println("短信发送失败");
    }
  } 
  else 
  {
    digitalWrite(ledPin4, LOW);
    //Serial.println("厨余垃圾箱正常");
  }  
}


 

 

 

 

  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值