智能电饭煲

一、 简介
1、作品构思
我们团队参与到 OpenAtom OpenHarmony(简称“OpenHarmony”)成长计划的智能电饭煲开发后,便开始构思如何实现自动洗米、煮饭、加热这一系列流程,经过几天的讨论,最终我们选择利用电机转动产生的气流进行洗米、利用舵机转动控制开关加热、利用继电器控制水泵加适量水进行煮饭流程,统一完模型搭建后,我们便开始全身心投入产品开发过程中。
我们组一个六个人,分工简单如下:
设备开发(电路搭建,硬件调试)
应用开发(数字管家,日程管理)
服务端开发(服务器搭建,华为云上产品创建)
模型搭建(电饭煲初代模型搭建)
NFC 功能开发(负责 NFC 标签创建)
资料收集(负责收集我们开发文档,协调组内进度)
2、实践过程







3、最终成果
经历一个月的调试我们完成了模型搭建、硬件调试和软件开发,设计出一款可以完成自动洗米、加米、加热的一款智能电饭煲。



二、技术方案
1、硬件介绍
本项目是基于 Bearpi 开发板作为主控的智能电饭煲,模型搭建使用的是亚克力板,该设备内主要由 MG955 舵机、MG90 舵机、继电器、锂电池管理模块和小型水泵组成
设备开发器件介绍
杜邦线:连通电路,方便插接

面包板:接通多个端口,实现多端电源供电

锂电池:提供电源,使能舵机,电机

锂电池充电模块:节能环保,升压,给电源提供充足动力

继电器:

Mg90 舵机:



MG955 舵机:

2、软件部分
(1)设备准备预装
HarmonyOS 手机一台
(2)设备配网
1、在设备上电前需准备好安装了数字管家应用的 HarmonyOS 手机,详情见数字管家应用开发,并在设置中开启手机的 NFC 功能;
2、写设备 NFC 标签,详细操作见设备 NFC 标签指导文档;
3、烧录完成后,上电。开发者在观察开发板上状态 LED 灯以8Hz 的频率闪烁时,将手机上半部靠近开发板 NFC 标签处;
4、无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。具体无感配网相关流程参考无感配网指南。
(3)操作体验
1、设备控制
2、配网完成后,数字管家应用会自动进入智能电饭煲的控制页面,通过控制页面可以实现对智能电饭煲加米、洗米、煮饭的控制。
3、预约做饭
4、使用者可以通过控制页面进入智能电饭煲控制页面或者数字管家日程管理页面进行日程管理,具体做法如下:
• 进入日程管理页面后对日程命名并添加通知成员与智能电饭煲设备。
• 选择做饭的起止时间。
• 选择提示方式与提醒重复时间。
3、服务器部分
前期准备
• 注册华为云账号并且实名认证(略)
• 购买华为弹性云服务器(其他也可)
基础环境配置(可跳过)
1、查看系统版本

不符合可切换系统版本


放开相应端口(这里放开全部端口)

记住上面输入的密码
2、下载 mobaxterm 终端并安装


3、连接服务器

注:连接前要在华为云安全组开发相应端口,不然可能连接失败
安装和部署数字管家服务端
1)mysql5.7 安装
openjdk 1.8 安装
设置无密码登录

添加 skip-grant-tables
重启 mysql
进入 mysql
输入后回车
更改密码
注:密码格式有要求(必须包括大小写,数字和特殊字符)
以上完成后输入 quit 退出 mysql 交互模式,去掉之前加的 skip-grant-tables,再重启 mysql
2)RabbitMQ 3.6.10(安装)
由于 RabbitMQ 采用的 Erlang 语言编写的,故需先安装 Erlang
1:在系统中加入 erlang apt 仓库
2:修改 Erlang 镜像地址,默认的下载速度特别慢。
3:把里面默认值替换为
4:更新软件列表
5:安装 Erlang
安装 RabbitMq
1:添加 rabbitmq 的仓库列表配置文件
2:加入 rabbitmq signing key
3:更新软件列表
4:安装 RabbitMq(安装完之后 rabbitmq 默认已启动)
5:启用 web 管理插件
6:重启 rabbitmq 服务
安装完成后在浏览器中输入自己的 id 和端口就可以看到管理页面了

rabbitmq 添加用户以及权限
原因:默认情况下访问 rabbitmq 的用户名和密码都是 guest,这个账户是有限制的,默认只能通过本地网络也就是 localhost 访问,远程访问受限制。
所以:需要另外新增用户名和密码,并设置相应的权限。
1:新增一个用户

2:为 root 用户设置权限所有权限

3:设置 root 用户为管理员角色

3)下载代码
1:直接下载(需要配置密钥)
怎样配置请参考官方文档:https://gitee.com/help/articles/4181git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git
2:本地下载安装包并上传服务器
下载地址:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master

配置华为云
1:申请华为云 AK/SK
登录“华为云”(https://www.huaweicloud.com/)
点击“控制台”
找到“我的凭证”

新增访问密钥

说明:
保存之后会有 credentials.csv
将文件中的 Access Key Id 和 Secret Access Key 记录下来;
即为后面要用到的 ak 和 sk ,后面会使用。
获取 appid

创建产品

点击产品进入到查看产品详情页面(根据数据模型创建属性和命令格式)

添加转发规则


配置 AMQP


说明:
点击预置接入凭证,会获得一个 Basic_ACCESS-KEY.txt 文件;
里面存放有 access_key 和 access_code;
至此,我们已经获得了如下重要参数:
ak/sk
appid
productid
amqp 中的 accesse_key 和 access_code
规则中的三个队列名称:msgQueue,propertyQueue,statusQueue
4)配置对接服务器资源文件
以下内容参考官方文档:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/Server/README.md进入 knowledge_demo_smart_home\Server\distschedule-core\src\main\resources 目录;打开 application.properties 文件并修改
注:distschedule-core\src\main\resources\application-local.properties(官方文档修改的是该文件)
说明:把前面获得的数据对应填入
5)编译、服务启动
编译环境:jdk8(前面已安装)
maven 3.6.3(命令行直接安装)
进入 Server 目录,编译 jar 包
执行 jar 包部署命令
可执行的 jar 包位置在:
7)浏览器访问http://127.0.0.1:8080/distschedule-api/swagger-ui/index.html(ip 地址根据实际情况)
验证服务是否已正常启动
注:如果关闭终端后无法访问页面可参考以下操作
ubuntu18.04 服务自启动,参考文档:https://www.cnblogs.com/airdot/p/9688530.html其中:/etc/rc.local 文件
结尾提示
1、编译后如果无法访问可对比官方文档查错
2、相应 ip 端口一定要放开
三、实物操作体验

代码仓

评论