春节宅家DIY了“它”!亲戚邻居都眼红~

祝大家牛年大吉!万事胜意~

春节宅家闲来无事,不如找点新乐子~

 

随着大众环保意识的提升以及社会环境保护监管的加强,全国各地逐步实行垃圾分类政策。

家庭、社区和企业对智能垃圾分类设备的需求也愈发强烈。无论是自己家中还是公司里,随着垃圾分类政策的普及,垃圾桶的功能性也有个更高的要求!

因此,涂鸦开发者基于涂鸦 IoT 平台智能垃圾桶产品的 MCU 接入方案,配合涂鸦三明治语音 Wi-Fi 通信板(VWXR2)和 涂鸦三明治直流供电电源板开发的智能语音垃圾桶,通过语音识别和云端垃圾分类标准数据库对接功能,实现了对垃圾类型的快速识别和垃圾的准确、无接触投放,提供了更加卫生和高效的垃圾分类解决方案。

本教程内容均为涂鸦开发者 @田洋 提供,经其授权编辑发布。

接下来康康我们的技术大牛怎么DIY出一款智能语音垃圾桶吧~

 

物料清单

硬件 (3)

  • 春节宅家DIY了“它”!亲戚邻居都眼红~_第1张图片

    涂鸦三明治语音 Wi-Fi 通信板(VWXR2)

    数量:1

     

  • MG996R 舵机控制

    数量:1

     

  • 春节宅家DIY了“它”!亲戚邻居都眼红~_第2张图片

    涂鸦三明治直流供电电源板

    数量:1

步骤

 

第 1 步:作品框图

春节宅家DIY了“它”!亲戚邻居都眼红~_第3张图片
春节宅家DIY了“它”!亲戚邻居都眼红~_第4张图片

  •  

    第 2 步:开发过程

    硬件部分

    春节宅家DIY了“它”!亲戚邻居都眼红~_第5张图片

    • 语音控制模块
    • MCU 通信板
    • MG996R 舵机控制
    • 供电模块
  • 软件部分

    采用涂鸦智能 MCU 接入方式完成接入。

    1. 创建产品。
      使用智能垃圾桶的模型,自定义 DP 云云对接。春节宅家DIY了“它”!亲戚邻居都眼红~_第6张图片

    2. 创建 DP 点。
      添加垃圾分类网站 URL 。春节宅家DIY了“它”!亲戚邻居都眼红~_第7张图片

    3. 创建设备面板。
      春节宅家DIY了“它”!亲戚邻居都眼红~_第8张图片

    4. 点击保存,扫描二维码可在手机端查看。
      春节宅家DIY了“它”!亲戚邻居都眼红~_第9张图片

  •  

    第 3 步:MCU_SDK 移植

    #include "wifi.h"
    #include "protocol.h"
    #include 
    
    SoftwareSerial mySerial(6, 7); // RX, TX
    
    #define _SS_MAX_RX_BUFF 300
    #define relay 10
    
    int PC13 = 3;
    int s1=4;
    
    int time_cnt = 0, cnt = 0, init_flag = 0;
    
    void setup() {
    
      pinMode(relay, OUTPUT);   // 继电器 I/O 初始化
      digitalWrite(relay, LOW);
    
      
      pinMode(PC13, INPUT);     // 重置 Wi-Fi 按键初始化
      pinMode(2, OUTPUT);       // Wi-Fi 状态指示灯初始化
      
      Serial.begin(9600);     
      Serial.println("serial init successful!");
    
      wifi_protocol_init();
    }
    
    
    void loop() {
       if (init_flag == 0) {
        time_cnt++;
        if (time_cnt % 6000 == 0) {
          time_cnt = 0;
          cnt ++;
        }
    
    void key_scan(void)
    {
      static char ap_ez_change = 0;
      unsigned char buttonState  = HIGH;
      buttonState = digitalRead(PC13);
      if (buttonState == LOW) {
        delay(3000);
        buttonState = digitalRead(PC13);
          printf("----%d",buttonState);
        if (buttonState == LOW) {
          printf("123\r\n");
          init_flag = 0;
          switch (ap_ez_change) {
            case 0 :
              mcu_set_wifi_mode(SMART_CONFIG);
              break;
            case 1 :
              mcu_set_wifi_mode(AP_CONFIG);
              break;
            default:
              break;
          }
          ap_ez_change = !ap_ez_change;
        }
      }
    }
    
    
    void wifi_stat_led(int *cnt)
    {
    #define wifi_stat_led 2
      switch (mcu_get_wifi_work_state())
      {
        case SMART_CONFIG_STATE:  //0x00
          init_flag = 0;
          if (*cnt == 2) {
            *cnt = 0;
          }
    
     if (*cnt % 2 == 0)  //LED 快闪
          {
            digitalWrite(wifi_stat_led, LOW);
          }
          else
          {
            digitalWrite(wifi_stat_led, HIGH);
          }
          break;
        case AP_STATE:  //0x01
          init_flag = 0;
          if (*cnt >= 30) {
            *cnt = 0;
          }
          if (*cnt  == 0)      // LED 慢闪
          {
            digitalWrite(wifi_stat_led, LOW);
          }
          else if (*cnt == 15)
          {
            digitalWrite(wifi_stat_led, HIGH);
          }
          break;
    
        case WIFI_NOT_CONNECTED:  // 0x02
          digitalWrite(wifi_stat_led, HIGH); // LED 熄灭
          break;
        case WIFI_CONNECTED:  // 0x03
          break;
        case WIFI_CONN_CLOUD:  // 0x04
          if ( 0 == init_flag )
          {
            digitalWrite(wifi_stat_led, LOW);// LED 常亮
            init_flag = 1;                  // Wi-Fi 连接上后该灯可控
            *cnt = 0;
          }
    
          break;
    
        default:
          digitalWrite(wifi_stat_led, HIGH);
          break;
      }
    }
    
    
    1. 登录 IoT 平台。

    2. 选择目标模组,在产品>硬件开发页面的底部的下载资料区域,下载 MCU SDK
      春节宅家DIY了“它”!亲戚邻居都眼红~_第10张图片

    3. 配置开发板,移植 SDK。

      说明: Demo 采用 Arduino Uno 开发板。

      1. 在 Arduino IDE 中单击文件 > 新建,新建项目。

        春节宅家DIY了“它”!亲戚邻居都眼红~_第11张图片
        工程中,您需要注意以下函数:

        • setup():用于初始化,只执行一次
        • loop():循环执行函数
      2. 将 MCU 开发包中文件复制至新建的项目路径下。

      3. .c文件后缀改为.cpp
        春节宅家DIY了“它”!亲戚邻居都眼红~_第12张图片

      4. 打开 .ino 文件,即可在 IDE 中发现添加的 MCU SDK 文件。
        春节宅家DIY了“它”!亲戚邻居都眼红~_第13张图片

      5. 移植代码和报错排查。
        MCU SDK 初次导入工程未进行任何移植操作前,编译会参数报错,属于正常现象。后续步骤中,您需要依次对代码进行移植修改,直到编译后没有错误。

        说明: 调试方法参见 MCU SDK开发包移植调试。

    4. 编写主函数

涂鸦物联网开发平台为开发者提供了便捷的 IoT 开发工具与服务,助力开发者更高效的完成设备接入,并为开发者提供物联网应用开发及场景服务能力。

auth.tuya.com/?from=https%3A%2F%2Fiot.tuya.com%2F&_source=81b786df37f17f6d239349cb965e3568

看完之后是不是很心动,赶快给家人、朋友DIY一款智能语音垃圾桶,智能便捷又好玩儿~

你可能感兴趣的:(嵌入式开发,大佬的故事,涂鸦开发者故事,机器学习)