# 智能语音垃圾桶——创建IoT云 #### 1、 创建lot云(准备阶段) 进入到华为IoTDA界面,登陆网址[链接](https://gitee.com/link?target=https%3A%2F%2Fwww.huaweicloud.com%2Fproduct%2Fiothub.html)。 (1)产品: ![produce_name](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/produce_name.png) (2)设备列表: 创建设备ID和验证码后面步骤需要使用 ![dev_name](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/dev_name.png) (4)云通信模块 ![iot_api](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/iot_api.png) #### 2、 产品模型 配置产品属性SmartDustbin_DATA ##### 1) 设备状态(Dev_Status) ![dev_status](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/dev_status.png) ##### 2) 可回收垃圾桶内容量(其它三个垃圾桶属性一致) ![RC](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/RC.png) ##### 3)4个垃圾桶的设备命令 ![set_command](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/set_command.png) #### 3、 利用mqtt.fx软件进行测试 ##### 1) 下载安装完成后,打开mqtt.fx ![mqtt1](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt1.png) 点击设置按钮,并配置下列信息 ![mqtt2](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt2.png) 生成域名:在Windows中cmd中输入ping 设备接入地址(单击“立即使用”进入控制台,单击左侧导航栏的“总览”,查看设备接入信息,记录域名和端口) ![mqtt3](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt3.png) ![mqtt4](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt4.png) 点击[这里](https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/),访问生成连接信息(ClientId、Username、Password)复制到mqtt中 ![mqtt5](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt5.png) 其中的设备ID(DeviceId)和密钥(DeviceSecret)是创建设备所设置的 填写成功后点击apply按钮 ##### 2) 连接华为iot云 点击connect ![mqtt6](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt6.png) 连接成功后在下面窗口填写topics ![mqtt7](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt7.png) 设备通过MQTT通道上报数据,需要发给指定的topic,上报消息的topic格式(可在创建的产品内查看)为:“$oc/devices/{device_id}/sys/properties/report”,其中**“deviceId”**的值,对一机一密设备,使用deviceId接入时填写为设备注册成功后返回的“deviceId”值。 填写上报数据 ![mqtt8](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt8.png) 上报设备信息如下: ```c {"services": [{"service_id": "SmartDustbin_DATA","properties": {"Dev_Status": 1,"Recyclables_Capacity":20,"Unrecyclable_Capacity":21,"KitchenGarbage_Capacity":13,"OtherRubbish_Capacity":22}}]} ``` ![mqtt10](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt10.png) ![mqtt11](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt11.png) 点击Pubish ![mqtt12](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt12.png) 上传数据后在iot云显示的数据 ![mqtt13](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/mqtt13.png) #### 4、创建数字管家服务器 创建自己的服务器可以更好的查看数据和检测数字管家的设备接口 建议使用华为云服务器(可以免费试用30天) 创建成功后如图: ![server](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/server.png) ##### 1)、下载Xshell(用于终端操作)和Xfile(用于传输文件)http://www.netsarang.com/download/software.html ##### 2)、在Xshell登录后创建一个harmony文件夹 ``` mkdir harmony ``` ##### 3)、从gitee仓库获取数字管家到本地计算机,利用xfile上传数字管家到harmony ##### 4)、解压数字管家 ``` apt-get update apt-get upgrade apt install unzip //安装解压工具 unzip knowledge_demo_smart_home-master.zip //就压数字管家 ``` ##### 5)、安装MySQL和jdk、maven ``` sudo apt install mysql-server sudo apt-get install openjdk-8-jdk apt install maven sudo apt-get install erlang-nox mysql -v //查看版本 ``` ##### 6)、修改MySQL root密码 ``` cat /etc/mysql/debian.cnf # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = WG3xXWfOZ1usv2Mz socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = WG3xXWfOZ1usv2Mz socket = /var/run/mysqld/mysqld.sock #找到密码后,用debian-sys-maint登录 mysql -u debian-sys-maint -pWG3xXWfOZ1usv2Mz #执行下面命令 use mysql; # 修改用户‘root’的密码 update user set authentication_string=password('123456') where user='root' and Host ='localhost'; # 修改 user 表中的 plugin 类型为本地密码 update user set plugin="mysql_native_password"; flush privileges; # 退出mysql \q #重启服务 service mysql restart ``` ##### 7)、安装rabbitmq ``` sudo apt-get install erlang-nox sudo rabbitmq-plugins enable rabbitmq_management //安装rabbitmq sudo rabbitmqctl list_users //查看用户列表 sudo rabbitmqctl set_user_tags admin administrator //添加管理员admin账户 sudo rabbitmqctl add_user admin StrongPassword //设置账户密码为StrongPassword sudo service rabbitmq-server restart //重启服务 ``` ##### 8)、服务器端口开放 点击配网规则 ![netconfig](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/netconfig.png) 在**入方向规则**和**出方向规则**加入8080端口和15672端口 ![server2](https://gitee.com/giteehmz/smart_dustbin/raw/master/Media/server2.png) #### 5、网页测试 swagger: http://xx.xx.xx.xx:8080/distschedule-api/swagger-ui/index.html#/ rabbitmq: http://xx.xx.xx.xx:15672 参考文档:[dev/docs/iot_huawei/README.md · OpenHarmony-SIG/knowledge_demo_smart_home - Gitee.com](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/iot_huawei/README.md#设备连接iot云平台指南)