工作出现较大调整,更新速度将放缓

Odoo 12开发者指南第二十四章 IoT盒子

Odoo Alan 4周前 (05-19) 398次浏览 0个评论

全书完整目录请见:Odoo 12开发者指南(Cookbook)第三版

在版本12中,Odoo加入了对物联网(IoT)的支持。Odoo使用名为IoT盒子的硬件,用于连接打印机、卡尺和脚踏开关等设备。本章中,你将学习如何设置和配置IoT盒子。这里,我们将讲解如下课题:

  • 为树莓派(Raspberry Pi)闪存IoT盒子镜像
  • 通过网络连接IoT盒子
  • 向Odoo添加IoT盒子
  • 加载驱动及列出已连接设备
  • 从设备接收输入
  • 通过SSH访问IoT盒子
  • 配置 POS(销售点)

ℹ️IoT盒子是一个基于树莓派的设备。本章中的各小节基于Raspberry Pi 3 Model B+,可通过https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/进行购买。IoT是企业版部分的功能,因此你需要有企业版来完成本章中的操作。注意本章的止的是安装和配置IoT盒子。开发硬件驱动不在本书的讨论范围。如果你想要深入地学习IoT盒子,请认真研究企业版中的iot模块。

技术准备

本章的技术准备包含在线Odoo平台。

本章中的所有代码可在如下GitHub仓库中进行下载:https://github.com/PacktPublishing/Odoo-12-Development-Cookbook-Third-Edition/tree/master/Chapter24/r5_take_device_inputs/my_library。

观看如下视频查看代码实时操作:‘

为树莓派(Raspberry Pi)闪存IoT盒子镜像

本节中,你将学习如何通过IoT例子的镜像闪存microSD卡。注意本节仅适用于那些购买了空的树莓派的人。如果你不是从Odoo官方购买的IoT盒子,请跳过这一节,因为它已经预载了IoT例子镜像。

准备工作

树莓派3 Model B+使用microSD卡,因此本节中我们使用了microSD卡。你需要将microSD卡连接到电脑上。

如何操作…

执行如下步骤来在SD卡上安装IoT盒子镜像:

  1. 将microSD卡插入你的电脑(如果电脑上没卡槽请使用适配器)。
  2. 从Odoo的nightly构建上下载IoT例子镜像。镜像地址为https://nightly.odoo.com/master/iotbox/。
  3. 下载并在电脑上安装Balena Etcher。下载地址为https://www.balena.io/etcher/。
  4. 打开Balena Etcher,选择IoT例子镜像,并选择闪存你的microSD卡。你可以参见如下截图:
    TODO
  5. 点击Flash!按钮并等待处理完成。
  6. 退出microSD卡放到树莓派中。

在完成了给定的步骤后,你的microSD卡中就载入了IoT例子镜像,并已准备好在IoT例子中使用了。

运行原理…

在本节中,我们在microSD卡中安装了IoT盒子镜像。在第2步中,我们从Odoo nightly下载了从IoT盒子镜像。在nightly页面上,我们可以找到针对IoT盒子的不同镜像。你需要从Odoo nightly选择最新的镜像。在写本书时,我们使用了最新镜像otboxv18_12.zip。IoT盒子镜像基于Raspbian Stretch Lite OS并且镜像加载时带有集成到Odoo实例中IoT盒子所需的库和模块。

在第3步中,我们下载了Balena Etcher 工具用于闪存microSD卡。在这一部分中,我们使用Balena Etcher来闪存microSD卡,但你也可以使用其它工具来闪存microSD卡。

在第4步中,我们通过IoT盒子镜像闪存了microSD卡。注意这个过程可能需要好几分钟。在完成这一过程后,microSD就可供使用了。

如果你想要验证闪存是否成功可执行如下步骤:

  1. 将microSD卡挂载到树莓派中。
  2. 通上电源然后通过HDMI线连接到外部显示器(在实例使用中,外部显示设置并非必须的,这里我们使用它来作验证)。
  3. 系统会启动并显示如下页面:
    TODO

扩展知识…

在之前的Odoo版本中,PosBox用于销售点(POS)应用。IoT盒子支持PosBox的所有功能,所以如果你使用Odoo社区版而又想要集成设备,可以使用IoT镜像来通过不同设备连接Odoo实例。参见配置 POS(销售点)一节来获取更多信息。

通过网络连接IoT盒子

IoT盒子通过网络与Odoo实例进行通讯。连接IoT盒子是很关键的一步,如果出现了错误,你会在使用Odoo连接oT盒子时碰到报错。

准备工作

使用IoT盒子镜像将microSD卡挂载到树莓派中,然后通过电源连接连接树莓派。

如何操作…

树莓派3 Model B+支持两种类型的网络连接 – 通过以太网或WiFi。通过以太网连接IoT盒子非常简单,只需要将IoT盒子通过RJ45网线进行连接即可,这时就可以开始使用IoT盒子了。通过WiFi连接IoT盒子会复杂些,因为你可能没有连接的显示设备。执行如下步骤来通过WiFi连接IoT盒子:

  1. 为IoT盒子接电源通电(如果插上了网线,请拔掉网线并重启IoT盒子)
  2. 打开电脑并连接名为IoTBox的WiFi网络,如下图所示(无需密码):
    TODO
  3. 在连接了WiFi之后,你会看到弹出的IoT盒子主页,如下图所示(如未弹出,请在浏览器中输入盒子的 IP 地址)
    TODO
  4. 设置IoT盒子名称并保留服务令牌为空,然后点击Next。这会跳转一个能够看到WiFi网络列表的页面:
    TODO
  5.  选择你想要连接的WiFi网络并填入密码。然后,点击Connect按钮。如果你填写了正确的信息,会跳转到最终页面:
    TODO

在执行了这些步骤之后,你的IoT盒子就已成功连接网络并可以开始与Odoo实例进行集成了。

运行原理…

通过以太网来定连接Odoo实例与IoT盒子非常的简单,只需通过RJ45网线连接IoT盒子,即可开始使用IoT盒子了。但通过WiFi连接IoT盒子则不同,它的困难之处在于IoT盒子并没有显示器或图形界面。你没有输入WiFi网络密码的界面。因此,解决这一问题的方法是拔掉IoT盒子的网线(如已连接)并进行重启。在这种情况下,IoT盒子盒子会创建其自己的WiFi热点,名为 IoTBox,参见第2步。你需要连接名为 IoTBox的WiFi,所幸无需密码。一旦连接了名为 IoTBox的WiFi,就会弹出第3步中所示的页面。这里你可以将IoT盒子命名为Assembly-line IoT Box等名称。现在保留服务令牌为空格,我们会在向Odoo添加IoT盒子一节中进行相关学习。然后点击Next按钮。

点击Next按钮之后,会显示一个WiFi网络列表,如第4步所示。此处你可以将IoT盒子连接到你自己的WiFi网络。确保选择正确的网络。你需要将IoT盒子连接到与Odoo实例所运行电脑连接的相同WiFi上。IoT盒子与Odoo实例之间在局域网(LAN)中进行通讯。也就是说如果两者连接到不同的网络上,IoT盒子就无法正常运作。

在选择了正确的WiFi网络后,点击Connect。然后IoT盒子会关闭它自己的执行,重新连接上所配置的WiFi网络。这样IoT盒子就准备好供下一步使用了。

向Odoo添加IoT盒子

我们的IoT盒子已连接上本地网络,可供Odoo使用了。在本节中,我们将通过Odoo实例连接IoT盒子。

准备工作

确保IoT盒子是开启的并已连接到Odoo实例所运行电脑连接的相同的WiFi网络上。

ℹ️需要注意以下几点,否则IoT盒子无法与 Odoo进行连接。

  • 如果你在本地实例上测试IoT盒子,需要使用http://192.168.1.*:8069(本地 IP)来代替http://localhost:8069。如果使用localhost,IoT盒子会无法连接到Odoo实例。
  • 你需要通过 Odoo 实例所运行电脑使用的相同WiFi或以太网连接IoT盒子。否则IoT盒子会无法连接到Odoo实例。
  • 如果你的Odoo实例运行着多数据库。IoT盒子不会与Odoo实例进行自动连接。使用–db-filter参数来避免这一情况。

如何操作…

为建立IoT盒子与Odoo的连接,首先你需要在Odoo实例中安装iot模块。需要进入Apps菜单并搜索Internet of Things模块来进行安装。该模块如下图所示。安装好模块就可以进行后续操作了:

TODO

在安装了iot模块之后,你可以建立实例与IoT盒子之间的连接。有两种方式来建立连接:自动连接或手动连接。我们先来学习自动连接。

自动连接IoT盒子

执行如下步骤来将IoT盒子与Odoo实例进行自动的连接:

  1. 打开IoT菜单。
  2. 在控制面板中点击Connect按钮。这时会显示如下弹窗。点击SCAN按钮:
    TODO
  3. 它会自动扫描所有本地IP来查找 IoT盒子。如果Odoo找到了IoT盒子,就会在右侧进行显示,参见前述截图。
  4. 关闭弹窗。此时你会看到IoT盒子已添加到列表中了:
    TODO

手动连接IoT盒子

执行如下步骤来手动建立IoT盒子与Odoo实例之间的连接:

  1. 打开IoT菜单。
  2. 在控制面板中点击Connect按钮。此时会显示如下弹窗。复制令牌:
    TODO
  3. 以8069端口打开IoT盒子的IP。这会显示IoT盒子的首页。点击Name 输入框后的Configure按钮
    TODO
  4. 设置IoT盒子名称并粘贴服务令牌。然后点击Connect按钮。这会开启对IoT盒子的配置。等待这一过程的结束:
    TODO
  5. 查看Odoo实例中的IoT菜单。你会看到新的IoT盒子:
    TODO

运行原理…

在安装了Internet of Things模块之后,会显示一个新的IoT菜单,通过它可以建立IoT盒子与Odoo的连接。在本节中,我们首先使用了自动化的方法连接了IoT盒子。这一方法会扫描本地的IP范围来查找可能为IoT盒子的设备。如果查找到了IoT盒子,Odoo会将其添加为IoT盒子。注意如果你的网络中有多个IoT盒子的话,这一方法会添加所有设备。如果IoT盒子已被连接,Odoo不会重复连接该IoT盒子。

第二种方法是手动的方式。这一方法对于网络中存在多个IoT盒子且仅希望添加部分设备时会非常有用,你需要从IoT盒子的弹窗中获取令牌。然后需要访问IoT盒子的 IP并将令牌添加到配置中。这会将IoT盒子添加到你的Odoo实例中。

如果你想要在WiFi配置的过程中将IoT盒子添加到Odoo实例中,也完全可能。在通过网络连接IoT盒子一节中,我将保留了服务令牌字段为空。仅需在该步中添加服务令牌即可:

TODO

ℹ️在使用IoT盒子时避免使用DHCP网络。这是因为IoT盒子的网络配置是基于IP地址进行添加的。如果你使用DHCP网络,那么IP地址就是动态分配的。那么就有可能会因IoT盒子被分配新的 IP 地址而无法响应。要避免这一问题,你可以将IoT盒子的MAC地址与固定的 IP 地址建立一个映射。

扩展知识…

一旦通过Odoo实例连接了某个IoT盒子,就不可以将其连接到其它Odoo实例上了。如果你尝试扫描已配置的IoT盒子,会显示一个警告图标:

TODO

如果希望将已有IoT盒子与Odoo实例进行连接,你会需要清楚该配置。你可以在IoT盒子的Odoo服务配置页通过 Clear 按钮清除这一IoT盒子配置:

TODO

加载驱动及列出已连接设备

IoT盒子需要加载设备驱动来连接硬件设备。本节中,我们将来学习如何加载驱动并获取所连接设备的列表。

准备工作

确保IoT盒子已开启并已将其连接到Odoo实例运行电脑所连接的相同WiFi网络。

如何操作…

执行如下步骤来将设备驱动载入IoT盒子:

  1. 打开IoT盒子主页并点击底部的drivers list按钮:
    TODO
  2. drivers list按钮会将你重定向到Drivers list页面,这里会有一个Load drivers 按钮。点击该按钮来载入驱动:
    TODO
  3. 返回IoT盒子首页。这里你会看到一个已连接设备的列表:
    TODO

在执行了这些步骤之后,该IoT盒子对你所指定的设备就准备就绪了,你可以开始在应用中使用这些设备了。

运行原理…

 

从设备接收输入

准备工作

如何操作…

运行原理…

扩展知识…

通过SSH访问IoT盒子

准备工作

如何操作…

运行原理…

扩展知识…

配置 POS(销售点)

准备工作

如何操作…

运行原理…

扩展知识…

待更新…

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址