首页 > 分享 > 基于HarmonyOS NEXT的智能宠物管理系统(代码+运行结果+测试用例)

基于HarmonyOS NEXT的智能宠物管理系统(代码+运行结果+测试用例)

介绍

智能宠物管理系统是基于HarmonyOS NEXT开发的一款鸿蒙原生应用和元服务,旨在帮助宠物主人更好地管理和照顾他们的宠物。通过该系统,用户可以实现宠物日常活动记录、健康监测、喂食提醒等功能。

应用使用场景

宠物活动记录:自动记录宠物的活动量、步数等。

健康监测:监测宠物的体重、饮水量、食物摄入量等。

喂食提醒:根据设定的时间和频率提醒主人喂食。

医疗提醒:提醒主人按时给宠物打疫苗或进行体检。

智能设备联动:与智能项圈、宠物喂食器等设备联动,实现一体化管理。

原理解释

智能宠物管理系统利用HarmonyOS的分布式能力,通过与智能设备协同工作,实现对宠物的实时监控和管理。系统主要包括前端应用、后台服务器以及与智能设备交互的中间件部分。

算法原理流程图

A[数据采集] --> B[数据上传] B --> C{数据处理} C -->|喂食提醒| D[发送通知] C -->|健康监测| E[生成报告] C -->|活动记录| F[更新日志]

算法原理解释

数据采集:通过智能项圈等设备实时采集宠物的数据,如活动量、体重等。

数据上传:将采集到的数据上传到后台服务器。

数据处理:后台服务器根据预先设置的算法对数据进行分析处理。

发送通知:根据处理结果,向用户发送喂食提醒、健康报告等通知。

生成报告:定期生成宠物健康报告,并提供可视化展示。

更新日志:将宠物的活动状况记录在日志中,方便查询和追溯。

应用场景代码示例实现

// 示例代码:喂食提醒功能 import { notifyUser } from '@harmonyos/notification'; function scheduleFeedingReminder(time) { const reminderTime = new Date(time); setTimeout(() => { notifyUser('喂食提醒', '该给您的宠物喂食了!'); }, reminderTime.getTime() - Date.now()); } // 调用示例 scheduleFeedingReminder('2023-10-01T18:00:00');

下面我们将详细地实现智能宠物管理系统的各个环节,包括数据采集、数据上传、数据处理、发送通知、生成报告以及更新日志。

数据采集

假设我们有一个智能项圈设备,它包含加速度传感器和重量传感器,用来实时采集宠物的活动量和体重。这部分代码可以使用HarmonyOS的设备API实现。

import { SensorManager, WeightSensor } from '@harmonyos/sensors'; // 初始化传感器管理器 const sensorManager = new SensorManager(); const accelerometer = sensorManager.getDefaultSensor(SensorManager.SensorType.ACCELEROMETER); const weightSensor = new WeightSensor(); // 监听加速度传感器数据 accelerometer.setSensorInfoListener((data) => { console.log("Pet activity data: ", data); uploadData({ type: 'activity', value: data }); }); // 监听重量传感器数据 weightSensor.setWeightChangeListener((data) => { console.log("Pet weight data: ", data); uploadData({ type: 'weight', value: data }); });

数据上传

使用HTTP请求将采集到的数据上传到后台服务器。这里采用fetch API进行实现。

const serverUrl = 'https://example.com/uploadData'; function uploadData(data) { fetch(serverUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }) .then(response => response.json()) .then(result => { console.log('Data uploaded successfully:', result); }) .catch(error => { console.error('Error uploading data:', error); }); }

数据处理

在服务器端,我们通过一个简单的Node.js服务来处理上传的数据,并存储在数据库中(假设使用MongoDB)。

const express = require('express'); const mongoose = require('mongoose'); const app = express(); app.use(express.json()); mongoose.connect('mongodb://localhost/pet_management', { useNewUrlParser: true, useUnifiedTopology: true }); const DataSchema = new mongoose.Schema({ type: String, value: Object, timestamp: { type: Date, default: Date.now } }); const DataModel = mongoose.model('Data', DataSchema); app.post('/uploadData', (req, res) => { const data = new DataModel(req.body); data.save() .then(() => res.status(200).send('Data saved')) .catch(err => res.status(500).send('Error saving data:', err)); }); app.listen(3000, () => { console.log('Server listening on port 3000'); });

发送通知

当特定条件满足时(例如,需要喂食),服务器会发送通知给用户。这里使用node-notifier库模拟通知功能。

const notifier = require('node-notifier'); function checkAndNotify(data) { if (data.type === 'activity' && data.value < THRESHOLD_ACTIVITY) { notifier.notify({ title: '喂食提醒', message: '该给您的宠物喂食了!' }); } // 检查其他条件并发送相应通知 } app.post('/uploadData', (req, res) => { const data = new DataModel(req.body); data.save() .then(() => { res.status(200).send('Data saved'); checkAndNotify(req.body); }) .catch(err => res.status(500).send('Error saving data:', err)); });

生成报告

服务器定期生成宠物健康报告,并提供可视化展示。可以使用node-cron库定时任务,结合Chart.js生成图表。

const cron = require('node-cron'); const ChartJsNodeCanvas = require('chartjs-node-canvas'); cron.schedule('0 0 * * *', () => { DataModel.find({ type: 'activity' }).then(activityData => { const chartCanvas = new ChartJsNodeCanvas({ width: 800, height: 600 }); const configuration = { type: 'line', data: { labels: activityData.map(d => d.timestamp), datasets: [{ label: 'Activity', data: activityData.map(d => d.value) }] } }; return chartCanvas.renderToBuffer(configuration); }).then(buffer => { // 保存图表或发送给用户 fs.writeFileSync('report.png', buffer); }).catch(err => console.error('Error generating report:', err)); });

更新日志

将宠物的活动状况记录在日志中,方便查询和追溯。

const fs = require('fs'); function updateLog(data) { const logEntry = `${new Date().toISOString()} - ${data.type}: ${JSON.stringify(data.value)}n`; fs.appendFile('pet_activity.log', logEntry, (err) => { if (err) { console.error('Error updating log:', err); } else { console.log('Log updated successfully'); } }); } app.post('/uploadData', (req, res) => { const data = new DataModel(req.body); data.save() .then(() => { res.status(200).send('Data saved'); checkAndNotify(req.body); updateLog(req.body); }) .catch(err => res.status(500).send('Error saving data:', err)); });

部署测试场景

环境准备:

确保开发环境已安装HarmonyOS DevEco Studio。

应用部署:

将项目代码导入DevEco Studio。

配置设备连接,确保智能设备与开发环境处于同一网络。

编译并运行项目,将应用部署到目标设备上。

功能测试:

测试活动记录功能,查看是否准确记录宠物的步数。

测试健康监测功能,查看是否正确生成健康报告。

测试喂食提醒功能,验证通知是否按时发送。

下面将列出每个环节的具体运行实例和结果展示

数据采集与上传

在宠物佩戴智能项圈的情况下,设备会实时采集数据并上传至服务器。假设我们有如下的数据采集日志:

Pet activity data: { x: 0.5, y: 1.2, z: 0.3 } Pet weight data: { weight: 10.5 }

这些数据通过uploadData函数上传到服务器。

后台服务器处理与存储

当数据上传到服务器时,服务器会保存这些数据到MongoDB数据库,并进行相应的处理。以下是服务器端控制台输出示例:

Server listening on port 3000 Data saved successfully Check and Notify: Activity level below threshold, sending feed reminder. Sending notification: '该给您的宠物喂食了!' Updating log: 2024-07-08T12:00:00Z - activity: {"x":0.5,"y":1.2,"z":0.3}

数据库中的数据结构可能如下:

{ "_id": "60f6c8e7b197f9ad0e56a9a4", "type": "activity", "value": { "x": 0.5, "y": 1.2, "z": 0.3 }, "timestamp": "2024-07-08T12:00:00Z" } { "_id": "60f6c8e7b197f9ad0e56a9a5", "type": "weight", "value": { "weight": 10.5 }, "timestamp": "2024-07-08T12:00:00Z" }

发送通知

检查到宠物活动量过低时,系统会发送喂食提醒通知。模拟通知发送的输出如下:

Sending notification: '该给您的宠物喂食了!'

实际应用中,可以使用更强大的通知机制,如推送通知服务,使通知更加及时、可靠。

生成报告

定期生成的健康报告包含宠物的活动和体重等信息。以下是一个简单的生成报告任务的日志示例:

Generating daily report... Report saved as report.png

更新日志

每次新的数据上传后,系统都会更新宠物活动日志,以便后续查询:

Updating log: 2024-07-08T12:00:00Z - weight: {"weight":10.5}

日志文件内容示例:

2024-07-08T12:00:00Z - activity: {"x":0.5,"y":1.2,"z":0.3} 2024-07-08T12:00:00Z - weight: {"weight":10.5}

材料

HarmonyOS官方文档

DevEco Studio下载

总结

智能宠物管理系统充分利用了HarmonyOS的分布式架构和强大的数据处理能力,为宠物主人提供了一套完整的管理解决方案。通过与智能设备的联动,用户可以随时掌握宠物的健康状况,提高照顾宠物的效率和质量。

未来展望

未来,我们计划进一步优化算法,提升数据处理的准确性和实时性。同时,将引入人工智能技术,实现更加个性化和智能化的宠物管理服务。我们还将扩展系统功能,包括宠物社交、位置追踪等,打造一个全方位的宠物管理生态系统。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com

相关知识

基于SSM+Vue的宠物管理系统
基于SpringBoot + Vue的宠物医院管理系统
毕业设计:基于java的宠物管理系统设计与实现
基于SSH技术的宠物救助系统的设计与实现
基于Springboot+vue的宠物服务管理系统——LW模板
【网站项目】基于SSM的275宠物医院管理系统
基于SpringBoot+Vue+uniapp微信小程序的流浪宠物管理系统的详细设计和实现
(附源码)基于Spring Boot的宠物猫店管理系统的设计与实现 毕业设计140909
基于SpringBoot的网上宠物店系统
基于Java的宠物领养管理系统【附源码】

网址: 基于HarmonyOS NEXT的智能宠物管理系统(代码+运行结果+测试用例) https://m.mcbbbk.com/newsview261857.html

所属分类:萌宠日常
上一篇: 宠物义诊进社区 服务居民零距离
下一篇: 宠物全套体检多少钱啊