基于OpenHarmony的智能电饭煲
智能电饭煲
一、 简介
1、作品构思
我们团队参与到OH成长计划的智能电饭煲开发后,便开始构思如何实现自动洗米、煮饭、加热这一系列流程,经过几天的讨论,最终我们选择电机转动产生的气流进行洗米、舵机转动控制开关加热、利用继电器控制水泵加适量水进行煮饭流程,统一完模型搭建后,我们便开始全身心投入产品开发过程中,我们组一个六个人,分工很简单
任务表 |
---|
设备开发(电路搭建,硬件调试) |
应用开发(数字管家,日程管理) |
服务端开发(服务器搭建,华为云上产品创建) |
模型搭建(电饭煲初代模型搭建) |
NFC功能开发(负责NFC标签创建) |
资料收集(负责收集我们开发文档,协调组内进度) |
2、实践过程
购买搭建电路所需的各个模块,搭建模型的各类器材
①用到的设备产品: BearPi-HM Nano
设备电路搭建用到的器件:杜邦线(若干),继电器(四个),面包板(一个),MG90型号舵机(2个),MG955型号舵机(3个),鼓风机(2个),抽水泵(一个),连接管(若干),
锂电池(一对),锂电池电源管理(一个),电压值显示(一个),家用电饭煲(一个),亚克力板(若干)
模型搭建
算法流程
流速测量:
一、输米速
次数 | 流量(g) | 时间t(s) | 流速v2(g/s) |
---|---|---|---|
1 | 1000 | 12.2 | 81.9 |
11.4 | 87.7 | ||
11.8 | 84.7 | ||
2 | 800 | 9.3 | 86.0 |
8.4 | 95.2 | ||
8.9 | 89.8 | ||
3 | 600 | 7.5 | 80 |
7.3 | 82.19 | ||
6.8 | 88.8 | ||
4 | 400 | 4.7 | 85.1 |
5.6 | 71.4 | ||
5.1 | 78.4 | ||
5 | 200 | 3.9 | 51.2 |
2.8 | 71.4 | ||
3.4 | 58.8 | ||
v2均值 | 79.5 g/s |
二、输水速
次数 | 流量(mL) | 时间t(s) | 流速v1(mL/s) |
---|---|---|---|
1 | 900 | 31.4 | 28.6 |
2 | 800 | 27.2 | 29.4 |
3 | 700 | 23.7 | 29.5 |
4 | 600 | 21.0 | 28.5 |
5 | 500 | 17.4 | 28.7 |
6 | 400 | 13.7 | 29.2 |
V1均值 | 28.9 mL/s |
二、技术方案
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、使用者可以通过控制页面进入智能电饭煲控制页面或者数字管家日程管理页面进行日程管理,具体做法如下:
l 进入日程管理页面后对日程命名并添加通知成员与智能电饭煲设备。
l 选择做饭的起止时间。
l 选择提示方式与提醒重复时间。
3、服务器部分
前期准备
1、注册华为云账号并且实名认证(略)
2、购买华为弹性云服务器(其他也可)
基础环境配置(可跳过)
1、查看系统版本
不符合可切换系统版本
放开相应端口(这里放开全部端口)
记住上面输入的密码
2、下载mobaxterm终端并安装
3、连接服务器
注:连接前要在华为云安全组开发相应端口,不然可能连接失败
安装和部署数字管家服务端
1)mysql5.7安装
sudo apt install mysql-server
openjdk 1.8 安装
sudo apt-get install openjdk-8-jdk
设置无密码登录
添加 skip-grant-tables重启mysqlservice mysql restart进入mysqlmysql -u root -p输入后回车更改密码mysql> use mysql; mysql>flush privileges; mysql>UPDATE user SET authentication_string="" WHERE user="root";//密码先置为空 mysql>flush privileges; mysql>ALTER user 'root'@'localhost' IDENTIFIED BY 'abc123456@qq.com';//再重置密码注:密码格式有要求(必须包括大小写,数字和特殊字符)以上完成后输入quit 退出 mysql 交互模式,去掉之前加的 skip-grant-tables,再重启 mysql2)RabbitMQ 3.6.10(安装)由于RabbitMQ采用的Erlang语言编写的,故需先安装Erlang1:在系统中加入 erlang apt 仓库wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb sudo dpkg -i erlang-solutions_1.0_all.deb2:修改 Erlang 镜像地址,默认的下载速度特别慢。vi /etc/apt/sources.list.d/erlang-solutions.list3:把里面默认值替换为deb https://mirrors.liuboping.com/erlang/ubuntu/ xenial contrib4:更新软件列表sudo apt-get update5:安装Erlangsudo apt-get install erlang erlang-nox安装RabbitMq1:添加rabbitmq的仓库列表配置文件echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list2:加入rabbitmq signing keywget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -3:更新软件列表sudo apt-get update4:安装RabbitMq(安装完之后rabbitmq默认已启动)sudo apt-get install rabbitmq-server5:启用web管理插件sudo rabbitmq-plugins enable rabbitmq_management6:重启rabbitmq服务sudo systemctl restart rabbitmq-server安装完成后在浏览器中输入自己的id和端口就可以看到管理页面了
rabbitmq 添加用户以及权限
1:新增一个用户
rabbitmqctl add_user root root
2:为root用户设置权限所有权限
rabbitmqctl set_permissions -p / root “." ".” “.*”
3:设置root用户为管理员角色
rabbitmqctl set_user_tags root administrator