

智能电饭煲_OpenHarmony开发者的技术博客_51CTO博客
source link: https://blog.51cto.com/OpenHarmony/5706265
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

智能电饭煲
一、 简介
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/4181
git clone [email protected]: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;
至此,我们已经获得了如下重要参数:
1. ak/sk
2. appid
3. productid
4. amqp中的accesse_key和access_code
5. 规则中的三个队列名称: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端口一定要放开
三、实物操作体验

Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK