0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于OpenHarmony成长计划的智能电饭煲开发过程

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:OpenAtom OpenHarmony 2022-09-20 10:28 次阅读

一、 简介

1、作品构思

我们团队参与到OpenAtom OpenHarmony(简称“OpenHarmony”)成长计划的智能电饭煲开发后,便开始构思如何实现自动洗米、煮饭、加热这一系列流程,经过几天的讨论,最终我们选择利用电机转动产生的气流进行洗米、利用舵机转动控制开关加热、利用继电器控制水泵加适量水进行煮饭流程,统一完模型搭建后,我们便开始全身心投入产品开发过程中。

我们组一个六个人,分工简单如下:

设备开发(电路搭建,硬件调试)

应用开发(数字管家,日程管理)

服务端开发(服务器搭建,华为云上产品创建)

模型搭建(电饭煲初代模型搭建)

NFC功能开发(负责NFC标签创建)

资料收集(负责收集我们开发文档,协调组内进度)

2、实践过程

499c2394-381d-11ed-ba43-dac502259ad0.jpg

49b9ce6c-381d-11ed-ba43-dac502259ad0.jpg

49d681c4-381d-11ed-ba43-dac502259ad0.jpg

49f5a73e-381d-11ed-ba43-dac502259ad0.jpg

4a111a6e-381d-11ed-ba43-dac502259ad0.jpg

4ace7a82-381d-11ed-ba43-dac502259ad0.jpg

4ae36866-381d-11ed-ba43-dac502259ad0.jpg

3、最终成果

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

4afe38bc-381d-11ed-ba43-dac502259ad0.jpg

4b1cbc92-381d-11ed-ba43-dac502259ad0.jpg

4b356c56-381d-11ed-ba43-dac502259ad0.jpg

二、技术方案

1、硬件介绍

本项目是基于Bearpi开发板作为主控的智能电饭煲,模型搭建使用的是亚克力板,该设备内主要由MG955舵机、MG90舵机、继电器、锂电池管理模块和小型水泵组成

设备开发器件介绍

杜邦线:连通电路,方便插接

4b60c478-381d-11ed-ba43-dac502259ad0.jpg

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

4b7c77ae-381d-11ed-ba43-dac502259ad0.jpg

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

4b8b06f2-381d-11ed-ba43-dac502259ad0.jpg

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

4ba2fc26-381d-11ed-ba43-dac502259ad0.png

继电器:

4bcd749c-381d-11ed-ba43-dac502259ad0.png

Mg90舵机:

4bf5f6d8-381d-11ed-ba43-dac502259ad0.png

4c1d3310-381d-11ed-ba43-dac502259ad0.png

4c44a59e-381d-11ed-ba43-dac502259ad0.jpg

MG955舵机:

4c6256fc-381d-11ed-ba43-dac502259ad0.png

2、软件部分

(1)设备准备 预装HarmonyOS手机一台 (2)设备配网

1、在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,详情见数字管家应用开发,并在设置中开启手机的NFC功能;

2、写设备NFC标签,详细操作见设备NFC标签指导文档;

3、烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处;

4、无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。具体无感配网相关流程参考无感配网指南。

(3)操作体验

1、设备控制

2、配网完成后,数字管家应用会自动进入智能电饭煲的控制页面,通过控制页面可以实现对智能电饭煲加米、洗米、煮饭的控制。

3、预约做饭

4、使用者可以通过控制页面进入智能电饭煲控制页面或者数字管家日程管理页面进行日程管理,具体做法如下:

•进入日程管理页面后对日程命名并添加通知成员与智能电饭煲设备。

•选择做饭的起止时间。

•选择提示方式与提醒重复时间。

3、服务器部分

前期准备 •注册华为云账号并且实名认证(略) •购买华为弹性云服务器(其他也可)

基础环境配置(可跳过)

1、查看系统版本

4c82c0c2-381d-11ed-ba43-dac502259ad0.png

不符合可切换系统版本

4c9e2628-381d-11ed-ba43-dac502259ad0.png

4cb95484-381d-11ed-ba43-dac502259ad0.png

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

4ce0576e-381d-11ed-ba43-dac502259ad0.png

记住上面输入的密码

2、下载mobaxterm终端并安装

4d036218-381d-11ed-ba43-dac502259ad0.png

4d22b6f4-381d-11ed-ba43-dac502259ad0.png

3、连接服务器

4d43d636-381d-11ed-ba43-dac502259ad0.png

注:连接前要在华为云安全组开发相应端口,不然可能连接失败

安装和部署数字管家服务端

以下内容参考:

https://gitee.com/niuyouguodidi/shuziguanjiafuwuduan/blob/master/%E6%95%B0%E5%AD%97%E7%AE%A1%E5%AE%B6%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%90%AD%E5%BB%BA%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E2%80%94%E2%80%94%E6%9C%89%E6%89%8B%E5%B0%B1%E5%8F%AF%E6%90%AD%E5%BB%BA%E7%B3%BB%E5%88%97.md

1)mysql5.7安装

sudo apt install mysql-server

openjdk 1.8 安装

sudo apt-get install openjdk-8-jdk

设置无密码登录

4d66699e-381d-11ed-ba43-dac502259ad0.png

添加skip-grant-tables

重启mysql

service mysql restart

进入mysql

mysql -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,再重启mysql

2)RabbitMQ 3.6.10(安装)

由于RabbitMQ采用的Erlang语言编写的,故需先安装Erlang

1:在系统中加入erlang apt仓库

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.debsudo dpkg -i erlang-solutions_1.0_all.deb

2:修改Erlang镜像地址,默认的下载速度特别慢。

vi /etc/apt/sources.list.d/erlang-solutions.list

3:把里面默认值替换为

deb https://mirrors.liuboping.com/erlang/ubuntu/ xenial contrib

4:更新软件列表

sudo apt-get update

5:安装Erlang

sudo apt-get install erlang erlang-nox

安装RabbitMq

1:添加rabbitmq的仓库列表配置文件

echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list

2:加入rabbitmq signing key

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

3:更新软件列表

sudo apt-get update

4:安装RabbitMq(安装完之后rabbitmq默认已启动)

sudo apt-get install rabbitmq-server

5:启用web管理插件

sudo rabbitmq-plugins enable rabbitmq_management

6:重启rabbitmq服务

sudo systemctl restart rabbitmq-server

安装完成后在浏览器中输入自己的id和端口就可以看到管理页面了

4d8d60d0-381d-11ed-ba43-dac502259ad0.png

rabbitmq添加用户以及权限

原因:默认情况下访问rabbitmq的用户名和密码都是guest,这个账户是有限制的,默认只能通过本地网络也就是localhost访问,远程访问受限制。

所以:需要另外新增用户名和密码,并设置相应的权限。

1:新增一个用户

rabbitmqctl add_user root root

4d9f480e-381d-11ed-ba43-dac502259ad0.png

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

rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

4db60652-381d-11ed-ba43-dac502259ad0.png

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

rabbitmqctl set_user_tags root administrator

4dd39c08-381d-11ed-ba43-dac502259ad0.png

3)下载代码

1:直接下载(需要配置密钥)

怎样配置请参考官方文档:https://gitee.com/help/articles/4181

git clone git@gitee.com:openharmony-sig/knowledge_demo_smart_home.git

2:本地下载安装包并上传服务器

下载地址:

https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master

4ddfe3d2-381d-11ed-ba43-dac502259ad0.png

配置华为云

1:申请华为云AK/SK

登录“华为云”(https://www.huaweicloud.com/)

点击“控制台”

找到“我的凭证”

4df6bff8-381d-11ed-ba43-dac502259ad0.png

新增访问密钥

4e0f4a50-381d-11ed-ba43-dac502259ad0.png

说明:

保存之后会有credentials.csv

将文件中的Access Key Id和Secret Access Key记录下来;

即为后面要用到的 ak 和 sk ,后面会使用。

获取appid

4e2f84a0-381d-11ed-ba43-dac502259ad0.png

创建产品

4e6228a6-381d-11ed-ba43-dac502259ad0.png

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

4e8d185e-381d-11ed-ba43-dac502259ad0.png

添加转发规则

4ea9e682-381d-11ed-ba43-dac502259ad0.png

4ec55854-381d-11ed-ba43-dac502259ad0.png

配置AMQP

4f8454e8-381d-11ed-ba43-dac502259ad0.png

4fa8e01a-381d-11ed-ba43-dac502259ad0.png

说明:

点击预置接入凭证,会获得一个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

5)配置对接服务器资源文件

以下内容参考官方文档:

https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/Server/README.md

进入knowledge_demo_smart_homeServerdistschedule-coresrcmain esources目录;

打开application.properties文件并修改

注:distschedule-coresrcmain esourcesapplication-local.properties(官方文档修改的是该文件)

说明:把前面获得的数据对应填入

# mysql数据库配置,需要提前部署和创建distschedule的数据库#数据库地址spring.datasource.url=datasource_urlmysql://*****:3306/distschedule?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai #数据库账号spring.datasource.username=*****#数据库密码spring.datasource.password=****#华为IOT云配置,参考上面的介绍,申请IOT云的AK,SK,APPIDcloud.iot.ak=*****cloud.iot.sk=*****cloud.iot.appId=*****# IOT云配置,参考上面的介绍,配置并获取华为IOT云的数据转发队列cloud.iot.amqp.accessKey=#接入凭证,添加转发目标时,点击接入凭证获取cloud.iot.amqp.password=#接入凭证密码,添加转发目标时,点击接入凭证获取cloud.iot.amqp.queueStatusName=#设备状态队列名称(不是规则名称)cloud.iot.amqp.queuePropertyName=#设备属性队列名称(不是规则名称)cloud.iot.amqp.queueMsgName=#设备消息队列名称(不是规则名称)cloud.iot.amqp.connectionUrl=amqps://*****.iot-amqps.cn-north-4.myhuaweicloud.com:5671?amqp.vhost=default&amqp.idleTimeout=8000&amqp.saslMechanisms=PLAIN #AMQP连接地址,点击“总览--》平台接入地址”获取# rabbitmq消息队列,用于手机监听告警信息spring.rabbitmq.host=*****# rabbitmq地址spring.rabbitmq.port=*****# rabbitmq端口spring.rabbitmq.username=*****# rabbitmq用户名spring.rabbitmq.password=*****# rabbitmq密码spring.rabbitmq.exchange.deviceproperty=deviceproperty_exchange #消息exchange,可不改。如修改的话,FA侧也需要修改

6)编译、服务启动

编译环境:

jdk8(前面已安装)

maven 3.6.3(命令行直接安装)

进入Server目录,编译jar包

cd knowledge_demo_smart_home/Server # 按照真实的路径mvn clean package -Dmaven.test.skip=true

执行jar包部署命令

java -jar distschedule-core/target/distschedule-core-1.0.0-SNAPSHOT.jar或java -jar /opt/distschedule-core-1.0.0-SNAPSHOT.jar --spring.profiles.active=local# 按照真实的路径

可执行的jar包位置在:

knowledge_demo_smart_home/Server/distschedule-core/target/distschedule-core-1.0.0-SNAPSHOT.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文件

#!/bin/bash nohup java -jar /opt/distschedule-core-1.0.0-SNAPSHOT.jar --spring.profiles.active=local> /clouddragonData/log/distschedule/server.log 2>&1 &

结尾提示

1、编译后如果无法访问可对比官方文档查错

2、相应ip端口一定要放开

三、实物操作体验

代码仓

https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/team_x/smart_rice_machine

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47681
  • 智能电饭煲
    +关注

    关注

    0

    文章

    5

    浏览量

    6398
  • OpenHarmony
    +关注

    关注

    23

    文章

    3275

    浏览量

    15159

原文标题:智能电饭煲

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    首期OpenHarmony开源开发成长计划2021正式启航

    活动介绍:OpenHarmony开源开发成长计划,是一项为了鼓励开发者积极参与开源软件的开发维护,帮助
    发表于 10-26 14:21

    丰厚奖金 | 首届OpenHarmony开源开发成长计划(第二阶段申请截止)

    OpenAtom OpenHarmony(以下简称“OpenHarmony”) 开源开发成长计划项目自 10 月 24 日上线以来,在开发
    发表于 11-15 16:45

    OpenHarmony开源开发成长计划:电子发烧友导师团招募

    OpenAtom OpenHarmony(以下简称“OpenHarmony”) 开源开发成长计划项目自2021年 10 月 24 日上线以来,在
    发表于 04-02 17:32

    诚邀报名丨首期OpenHarmony开发成长计划分享日

    OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源开发成长计划,是一项为了鼓励开发者积极参与开源软件的
    发表于 04-21 18:26

    诚邀报名丨首期OpenHarmony开发成长计划分享日

    开源项目 OpenHarmony是每个人的 OpenHarmonyOpenAtom OpenHarmony(以下简称“OpenHarmony”)开源
    发表于 04-22 12:58

    最新活动|OpenHarmony开源开发成长计划解决方案学生挑战赛即将开启!

    如果说开源是数字未来的重要一环那么开发者就是开源世界的耕耘者、建设者OpenHarmony 开源开发成长计划解决方案学生挑战赛为联合国可持续发展的一项或多项目标提供解决方案参赛作品必
    发表于 06-08 17:47

    等个有“源”人|OpenHarmony 成长计划学生挑战赛报名启动

    OpenAtom OpenHarmony(以下简称“OpenHarmony)开源开发成长计划—解决方案学生挑战赛(以下简称“本大赛”或“成长计划
    发表于 06-13 10:22

    等个有“源”人|OpenHarmony 成长计划学生挑战赛报名启动

    OpenAtom OpenHarmony(以下简称“OpenHarmony)开源开发成长计划—解决方案学生挑战赛(以下简称“本大赛”或“成长计划
    发表于 06-13 11:24

    每日推荐 | OpenHarmony 成长计划学生挑战赛,全志开发板资料合集

    者使用。如果官方资料有更新,将会及时跟进!2、等个有“源”人|OpenHarmony 成长计划学生挑战赛报名启动推荐理由:OpenAtom OpenHarmony(以下简称“OpenHarmo
    发表于 06-15 10:02

    OpenHarmony开源开发成长计划 | 知识赋能第六期预告—OpenHarmony智能家居项目介绍

    OpenAtom OpenHarmony(以下简称“OpenHarmony")开源开发成长计划项目自 2021 年 10 月 24 日上线以来,在
    发表于 06-16 17:48

    OpenHarmony成长计划挑战赛作品有奖征集

    OpenAtomOpenHarmony(以下简称“OpenHarmony”)开源开发成长计划—解决方案学生挑战赛(以下简称“本大赛”或“成长计划
    发表于 08-30 15:56

    成长计划知识赋能 | 第十期:DAYU200开发入门秒Get

    2021年12月,OpenAtom OpenHarmony(以下简称”OpenHarmony“)开源开发成长计划开启了第一节OpenHarmony
    发表于 04-17 11:18

    OpenHarmony开源开发成长计划寻找改变世界的开源新生力

    OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源开发成长计划,是一项为鼓励开发者积极参与
    的头像 发表于 04-25 09:23 1050次阅读
    <b class='flag-5'>OpenHarmony</b>开源<b class='flag-5'>开发</b>者<b class='flag-5'>成长计划</b>寻找改变世界的开源新生力

    OpenHarmony Tech Day技术日 成长计划总览

    OpenHarmony成长计划活动的总介绍
    的头像 发表于 04-25 14:03 635次阅读
    <b class='flag-5'>OpenHarmony</b> Tech Day技术日 <b class='flag-5'>成长计划</b>总览

    OpenHarmony Tech Day技术日 成长计划品牌活动规划

    OpenHar演讲OpenHarmony开源开发计划成长计划品牌活动规划
    的头像 发表于 04-25 14:08 611次阅读
    <b class='flag-5'>OpenHarmony</b> Tech Day技术日 <b class='flag-5'>成长计划</b>品牌活动规划