dorita980: 非官方iRobot Roomba控制库的全面指南

dorita980

dorita980: 非官方iRobot Roomba控制库的全面指南

dorita980是一个强大的Node.js库,为iRobot Roomba系列扫地机器人提供了非官方的控制接口。无论你是想要将Roomba集成到自己的智能家居项目中,还是只是想更灵活地控制你的机器人,dorita980都能满足你的需求。本文将全面介绍dorita980的各项功能及其使用方法。

1. dorita980简介

dorita980是一个非官方的开源项目,旨在为iRobot Roomba系列扫地机器人提供一个Node.js SDK。它支持多种Roomba型号,包括i7/i7+、980、960、e5、690、675等。通过dorita980,你可以:

  • 通过本地网络或iRobot云API发送控制指令
  • 获取机器人的各种状态信息
  • 设置清扫偏好和定时任务
  • 实时监控清扫任务进度
  • 绘制清扫地图(部分支持位置报告的型号)

值得注意的是,dorita980是一个非官方项目,因此使用时需要注意以下几点:

  1. 建议阻止机器人的互联网访问,以避免固件自动更新可能导致的兼容性问题。
  2. 在使用新固件版本之前,请先确认dorita980是否兼容。
  3. 如果你的机器人固件版本是1.6.x,请参考旧版文档。

2. 安装dorita980

安装dorita980非常简单,只需要通过npm执行以下命令:

npm install dorita980 --save

3. 获取机器人的身份认证信息

在使用dorita980之前,你需要获取机器人的blid(用户名)和密码。dorita980提供了多种方法来获取这些信息:

方法1: 使用云API(推荐)
  1. 全局安装dorita980:

    npm install -g dorita980
    
  2. 运行获取密码的命令:

    get-roomba-password-cloud <iRobot用户名> <iRobot密码> [可选的API密钥]
    
方法2: 使用本地网络(仅适用于旧版固件)
  1. 找到机器人的IP地址(可以通过路由器或网络扫描工具获取)
  2. 运行以下命令:
    get-roomba-password <机器人IP地址>
    

获取到的信息会类似这样:

Robot "Dorita" (sku: R98---- SoftwareVer: v2.4.16-126):
BLID=> xxxxxxxxxxxxx
Password=> :1:1486937829:gktkDoYpWaDxCfGh

请保存好这些信息,后续使用dorita980时会用到。

4. 使用dorita980控制Roomba

4.1 基本用法

以下是一个简单的例子,展示如何使用dorita980通过本地网络连接并控制你的Roomba:

const dorita980 = require('dorita980');

const myRobotViaLocal = new dorita980.Local('MyUsernameBlid', 'MyPassword', '192.168.1.104');

myRobotViaLocal.on('connect', () => {
  myRobotViaLocal.clean()
    .then(() => myRobotViaLocal.end())
    .catch(console.log);
});

这段代码会连接到你的Roomba,发送清扫命令,然后断开连接。

4.2 获取机器人状态

dorita980提供了多种方法来获取机器人的状态信息:

myRobotViaLocal.getRobotState(['batPct', 'bbchg3'])
  .then((state) => {
    console.log('电池电量:', state.batPct);
    console.log('充电信息:', state.bbchg3);
  });
4.3 设置清扫偏好

你可以轻松地更改机器人的清扫偏好:

myRobotViaLocal.setCarpetBoostAuto()
  .then(() => console.log('已设置自动地毯增强模式'));

myRobotViaLocal.setEdgeCleanOn()
  .then(() => console.log('已开启边缘清扫'));
4.4 定时任务

设置每周清扫计划也很简单:

const newWeek = {
  cycle: ["none","start","start","start","start","start","start"],
  h: [10,10,10,10,10,10,10],
  m: [30,30,30,30,30,30,30]
};

myRobotViaLocal.setWeek(newWeek)
  .then(() => console.log('已设置新的每周清扫计划'));

5. 高级功能

5.1 实时地图绘制

对于支持位置报告的型号,你可以利用mission事件来实时绘制清扫地图:

myRobotViaLocal.on('mission', (data) => {
  console.log('当前位置:', data.pose);
  console.log('清扫状态:', data.cleanMissionStatus);
  // 这里可以添加绘制地图的逻辑
});
5.2 自定义MQTT命令

如果你想尝试一些未文档化的功能,可以使用publish方法发送原始MQTT命令:

const myCommand = {
  command: 'clean', 
  time: Date.now() / 1000 | 0, 
  initiator: 'localApp'
};

myRobotViaLocal.publish('cmd', JSON.stringify(myCommand), (err) => {
  if(err) console.log('错误:', err);
});

6. 注意事项和最佳实践

  1. 连接管理: Roomba一次只能建立一个本地连接。使用完dorita980后,记得调用end()方法断开连接,以便官方app可以通过本地网络连接。

  2. 错误处理: 总是使用try-catch或者Promise的catch方法来处理可能的错误。

  3. 固件兼容性: 在更新Roomba固件之前,先检查dorita980的兼容性。

  4. 网络安全: 考虑使用HTTPS和基本认证来增强your REST API的安全性(如果你使用rest980)。

  5. 资源管理: 对于长期运行的应用,注意处理各种事件(如('offline'事件)以确保稳定性。

7. 结语

dorita980为Roomba爱好者和开发者提供了强大而灵活的控制方式。无论是简单的日常使用,还是复杂的智能家居集成,dorita980都能满足你的需求。随着项目的不断更新和社区的贡献,我们期待看到更多基于dorita980的创新应用。

希望这篇指南能帮助你充分利用你的Roomba,享受智能清扫带来的便利。如果你有任何问题或者想法,欢迎查阅官方文档或者参与GitHub上的讨论。祝你使用愉快!

🤖🧹✨

项目链接:www.dongaigc.com/a/complete-guide-to-dorita980-irobot-roomba

https://www.dongaigc.com/a/complete-guide-to-dorita980-irobot-roomba

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值