# 智能语音分类垃圾桶开发 ​ 基于OpenHarmony 开发的语音识别分类垃圾桶,其中主要包括语音识别模块、容量检测模块,IoT云控制模块,无线配网模块这四个模块。 ​ 功能:使用一级命令“你好,垃圾桶”,然后说出二级命令“可回收垃圾”、“不可回收垃圾”、“厨余回收垃圾”、“其他回收垃圾”识别后,打开对应的垃圾桶盖等待10秒后,桶盖自动关闭;还可以通过数字管家查看垃圾桶容量,对语音分类垃圾桶进行控制,让垃圾回收处理变得不再繁琐,回收人员只需要将对应的垃圾箱里的垃圾拿出即可。有效的减少了垃圾分类的工作量,给社会带来了很大的便捷。 ![framwork](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/framwork.png) 智能语音分类垃圾桶通过MQTT协议连接华为IOT物联网平台,从而实现命令的接收和属性上报。智能设备同数字管家应用之间的设备模型定义可以参考[profile](https://gitee.com/giteehmz/smart_dustbin/blob/master/DOC/%E6%99%BA%E8%83%BD%E8%AF%AD%E9%9F%B3%E5%9E%83%E5%9C%BE%E6%A1%B6%20Profile%E5%AE%9A%E4%B9%89.md) #### 一、建立开发环境 ##### 1、 需要下载虚拟机VMware和Ubuntu20.0.14 - [ ] [下载 VMware Workstation Pro | CN](https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html) - [ ] [Ubuntu系统下载 | Ubuntu](https://cn.ubuntu.com/download) ##### 2、 安装vm完成后打开vm,点击创建新的虚拟机 ![new_vmware](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/new_vmware.png) ##### 3、选择**典型**点击**下一步**,选择下载的Ubuntu,点击下一步,创建完成后,虚拟机会自动安装Ubuntu ![choose_Ubuntu](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/choose_Ubuntu.png) ##### 4、安装完成后,获取Openharmony源码可参考 ​ 链接:[获取源码-入门-HarmonyOS设备开发](https://device.harmonyos.com/cn/docs/documentation/guide/sourcecode-acquire-0000001050769927) ##### 5、安装编译工具 ###### (1)安装Node.js 打开Ubuntu终端输入命令安装: ``` sudo apt-get install nodejs sudo apt-get install npm node --version //查看nodejs版本 npm --version //查看npm版本 ``` ###### (2)安装Python编译环境 ```text sudo apt-get install python3.8 sudo apt-get install python3-pip sudo pip3 install setuptools sudo pip3 install kconfiglib sudo pip3 install pycryptodome sudo pip3 install six --upgrade --ignore-installed six sudo pip3 install ecdsa ``` ###### (3) 安装SCons ```text python3 -m pip install scons scons -v //查看版本 ``` 如图:![scons_V](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/scons_V.png) ###### (4)安装hb工具 代码测试 ``` python3 -m pip install --user ohos-build vim ~/.bashrc //设置环境变量 export PATH=~/.local/bin:$PATH //将以下命令拷贝到.bashrc文件的最后一行,保存并退出 source ~/.bashrc //更新环境变量 ``` ​ 执行"hb -h",有打印以下信息即表示安装成功. ![hb](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/hb.png) ###### (5) 安装gcc_riscv32 下载[gcc_riscv32](https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fharmonyos%2Fcompiler%2Fgcc_riscv32%2F7.3.0%2Flinux%2Fgcc_riscv32-linux-7.3.0.tar.gz)镜像 设置环境变量 将压缩包解压到根目录 ``` tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~ //文件名需要与下载的文件相匹配 ``` 设置环境变量。 ``` vim ~/.bashrc //设置环境变量 export PATH=~/gcc_riscv32/bin:$PATH //将以下命令拷贝到.bashrc文件的最后一行,保存并退出 source ~/.bashrc //更新环境变量 riscv32-unknown-elf-gcc -v //显示版本号,则安装成功 ``` ##### 6、修改usr_config.mk 文件 文件在Open Harmony源码目录下device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk ``` CONFIG_I2C_SUPPORT=y CONFIG_PWM_SUPPORT=y ``` ##### 7、修改wifiservice 文件夹 文件在Open Harmony源码目录下device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c ``` EnableHotspot函数中屏蔽如下字段 //if (SetHotspotIpConfig() != WIFI_SUCCESS) { // return ERROR_WIFI_UNKNOWN; //} ``` 地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c ``` DispatchConnectEvent函数下 屏蔽StaSetWifiNetConfig相关代码行 //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED); //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED); ``` #### 三、设备端代码的编写 [【点击查看】](https://gitee.com/giteehmz/smart_dustbin/blob/master/DOC/%E6%99%BA%E8%83%BD%E8%AF%AD%E9%9F%B3%E5%9E%83%E5%9C%BE%E6%A1%B6%E2%80%94%E2%80%94%E8%AE%BE%E5%A4%87%E7%AB%AF.md) #### 二、应用端代码的编写 [【点击查看】](https://gitee.com/giteehmz/smart_dustbin/blob/master/DOC/%E6%99%BA%E8%83%BD%E8%AF%AD%E9%9F%B3%E5%9E%83%E5%9C%BE%E6%A1%B6%E2%80%94%E2%80%94%E6%95%B0%E5%AD%97%E7%AE%A1%E5%AE%B6.md)