博客专栏

EEPW首页>博客> 春节宅家DIY了”它“!亲戚邻居都眼红~

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

发布人:智能物联研习社 时间:2021-02-18 来源:工程师 发布文章

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

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


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

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

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

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

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

物料清单

硬件 (3)

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

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

    数量:1

  • MG996R 舵机控制

    数量:1

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

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

    数量:1

步骤

第 1 步:作品框图

image.png
image.png

  • 第 2 步:开发过程

    硬件部分

    image.png

    • 语音控制模块

    • MCU 通信板

    • MG996R 舵机控制

    • 供电模块


  • 软件部分

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

    1. 1、创建产品。
      使用智能垃圾桶的模型,自定义 DP 云云对接。

    2. image.png

    3. 2、创建 DP 点。
      添加垃圾分类网站 URL 。image.png


    4. 3、创建设备面板。


    5. image.png


    6. 4、点击保存,扫描二维码可在手机端查看。


    7. 手机端查看

  • 第 3 步:MCU_SDK 移植

  1. 登录IoT 平台

  2. 选择目标模组,在产品>硬件开发页面的底部的下载资料区域,下载MCU SDK
    image.png

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

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

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

      image.png

    2. 工程中,您需要注意以下函数:

    3. setup():用于初始化,只执行一次

    4. loop():循环执行函数

    5. 2、将 MCU 开发包中文件复制至新建的项目路径下。

    6. 3、将.c文件后缀改为.cpp。

    image.png

    1. 4、打开 .ino 文件,即可在 IDE 中发现添加的 MCU SDK 文件。
      image.png

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

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

    3. 登录IoT 平台

    4. 选择目标模组,在产品>硬件开发页面的底部的下载资料区域,下载MCU SDK
      image.png

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

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

    6. 4、编写主函数


    7. #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; } }

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

auth.tuya.com/?from=https%3A%2F%2Fiot.tuya.com%2F&_source=5da300e50745947aec50c44f209c5367
看完之后是不是很心动,赶快给家人、朋友DIY一款智能语音垃圾桶,智能便捷又好玩儿~


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

伺服电机相关文章:伺服电机工作原理


分频器相关文章:分频器原理


关键词:

相关推荐

技术专区

关闭