一、 簡介
1、作品構思
我們團隊參與到OpenAtom OpenHarmony(簡稱“OpenHarmony”)成長計劃的智能電飯煲開發后,便開始構思如何實現自動洗米、煮飯、加熱這一系列流程,經過幾天的討論,最終我們選擇利用電機轉動產生的氣流進行洗米、利用舵機轉動控制開關加熱、利用繼電器控制水泵加適量水進行煮飯流程,統一完模型搭建后,我們便開始全身心投入產品開發過程中。
我們組一個六個人,分工簡單如下:
設備開發(電路搭建,硬件調試)
應用開發(數字管家,日程管理)
服務端開發(服務器搭建,華為云上產品創建)
模型搭建(電飯煲初代模型搭建)
資料收集(負責收集我們開發文檔,協調組內進度)
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、查看系統版本
不符合可切換系統版本
放開相應端口(這里放開全部端口)
記住上面輸入的密碼
3、連接服務器
注:連接前要在華為云安全組開發相應端口,不然可能連接失敗
安裝和部署數字管家服務端
以下內容參考:
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
設置無密碼登錄
添加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和端口就可以看到管理頁面了
rabbitmq添加用戶以及權限
原因:默認情況下訪問rabbitmq的用戶名和密碼都是guest,這個賬戶是有限制的,默認只能通過本地網絡也就是localhost訪問,遠程訪問受限制。
所以:需要另外新增用戶名和密碼,并設置相應的權限。
1:新增一個用戶
rabbitmqctl add_user root root
2:為root用戶設置權限所有權限
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
3:設置root用戶為管理員角色
rabbitmqctl set_user_tags root administrator
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
配置華為云
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
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文章
3032瀏覽量
48372 -
智能電飯煲
+關注
關注
0文章
5瀏覽量
6424 -
OpenHarmony
+關注
關注
25文章
3548瀏覽量
15746
原文標題:智能電飯煲
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論