人们普遍认识到,物联网(IIoT)有望在许多传统行业带来变革效应。它不仅会发现那些低效的、需要维护的工厂,以及帮助管理提高资产利用率,而且还承诺提供大量新的业务服务。在工业过程中部署传感器,例如用于测量振动、温度和湿度的传感器,将为分析应用程序提供基础数据,以提取有用的信息和控制工厂的操作。随着许多组织接受IIoT,越来越需要传感器和执行器来整合某种形式的显示功能。IIoT的实际情况是,所有东西都是由云应用程序自动化和控制的,这与本地操作和维护人员的需求是不一致的。对它们的好处是可以看到植物指标,以便在它们变得至关重要之前帮助确定当地的问题和问题。在许多情况下,可以通过一个显示从多个传感器源收集的数据来实现这个需求,最好是在功能工厂或资产级别。本文将展示如何使用包含无线连接的低成本、紧凑的显示模块来满足这一需求。
为了在生产线上从多个点获取数据,首选的路线是在关键位置安装低成本、电池供电、无线连接的传感器。这类传感器的设计标准决定了一个低资源微控制器、一个无线模块和传感器元件。在许多情况下,微控制器和无线模块已经成为一种,因为与运行无线协议栈相比,传感器数据的应用程序处理的程度是最低的。对于嵌入式开发人员来说,这种传感器设备的设计是一项相对简单的任务。很有可能,大多数开发时间将花费在实现节能睡眠模式上,以平衡将电力消耗保持在最低限度的需求,同时减少对应用程序响应能力的影响。
然而,需要向传感器添加显示功能,大大增加了设计的复杂性。首先,从实用的角度来看,增加一个实际使用的屏幕尺寸可能会使物理尺寸增加一倍。其次,还有电力消耗方面的考虑。屏幕还将增加主机微控制器的内存和计算规范,更不用说对LCD控制器的需求了。在显示任何东西之前,开发人员需要准备字体和图像,如果要实现触摸屏,那么这些控制器也会发挥作用。
对于嵌入式开发人员来说,要实现这样的设计,显然有很多选择。越来越多地,创建自定义离散设计的时间被视为一个缺点。一个正在获得采用的替代方案是使用一个紧凑的显示模块,它不仅集成了一个主机微控制器和用户应用程序空间,而且还提供了无线通信。一个例子是最近从4D系统(图1)中推出的显示(IoD)系列的gen4互联网,它基于一个Espressif ESP8266 Wi-Fi微控制器,该模块提供了一种电阻性的320x240像素TFT 65000,真实的生活彩色显示,大小为2.4,2.8或3.2英寸。
显示模块的gen4互联网图像。
图1:显示模块的gen4 internet。
该模块有512 kB的用户闪存和128 kB的SRAM,此外还有一个microSD插槽,用于在数据记录应用程序中安装用于存储图像和使用的额外内存。gen4-IoD 2.8英寸模型的整体尺寸为78.4毫米x44.8毫米x7.2毫米。最快的编程方法是通过免费下载的Arduino IDE。这种方法可以使设计概念快速原型化,并具有最少的开发工具和资源。需要一个gen4-IoD程序员适配器(图2),以实现对USB主机的直接通信,允许通过10脚FPC电缆连接到任何4D系统gen4-IoD系列。
gen4-IoD编程适配器的图像。
图2:gen4-IoD编程适配器。
使用Arduino IDE不仅提供了一种低成本、经过充分验证的方法来编程gen4-IoD模块,而且还提供了来自广泛的ESP8266社区的大量代码示例和资源的访问。
从硬件的角度来看,gen4-IoD得到了非常好的支持,但是开发人员会发现软件应用程序资源的程度特别好。为了方便创建基于图形的用户界面,4D系统提供了GFX4d库。包括大量原始图形函数,库和其他资源可以从4D系统GitHub存储库下载。该公司还提供了一个名为Workshop 4的图形化开发环境,通过使用widget和基于layoubased的自动编码来加速GUI应用程序的开发。
为了说明如何使用gen4-IoD显示,让我们考虑一个我们希望从云平台接收和显示数据的需求。更进一步,假设数据是一个流体在工业过程中通过闸阀的温度。显示器可能会安装在阀门本身的一些距离上,而温度传感器则放置在阀门上或阀门上。正如本文开头所讨论的,传感器的设计规格可能与显示器的设计规格非常不同。
对于我们的示例,我们可以设置一个应用程序,它只是模拟接收数据。然而,在我们研究gen4-IoD显示的设计之前,让我们看看一些简单的方法,您可以使用现成的资源创建一个物联网测试床。由于我们的显示器只接收来自云的数据,我们需要找到一种方法将数据从传感器推送到云端。有许多无头Wi-Fi单板电脑有这样的功能,一个例子是微型Adafruit的羽毛M0板。配备了微芯片单片机和Wi-Fi模块,该板完全由Arduino IDE支持,能够快速原型化。现在让我们来看看如何将数据推送到物联网云平台上。
在IoT应用程序中使用的最流行的协议之一是消息队列遥测传输(MQTT)。这种极其简单和轻量级的协议几乎可以用于任何形式的网络。设备可以将数据“发布”到服务器,而另一种方式是,设备可以“订阅”到从服务器推送数据的feed中。在服务器上,一个名为MQTT代理的小应用程序处理订阅者和发布者之间的通信。您可以从您的应用程序中选择一些商业上可用的云平台,但是对于这个简单的示例,我们将使用Adafruit的Adafruit。IO平台。根据消息的频率提供不同的使用计划,免费的选择是理想的原型。Adafruit提供了一个详细的指南来开始使用羽毛M0板和大量的例子,以用于各种各样的单板计算机。在我们的示例中,我们使用一个简单的草图包含Adafruit的MQTT库发送一个温度模拟值之间的一个随机数生成15°C和Adafruit.IO 28°C(图3)。
在Adafruit羽毛M0 Wi-Fi上使用的图形图像与Adafruit. io通信。
图3:Adafruit羽毛M0 Wi-Fi与Adafruit. io通信的示意图。
Adafruit。图4中的IO仪表板设置为接收已发布的数据。我们现在有一个MQTT数据提要,我们可以订阅我们的gen4-IoD显示模块。
Adafruit的形象。IO饲料仪表板
图4:Adafruit。IO饲料仪表板。
我们第一个使用gen4-IoD模块的任务是设置GUI来显示通过我们想象的阀门的液体的温度。我们使用Workshop 4 IDE来实现这个目标。在开始之前,确保您已经从4D系统站点下载并安装了该版本的最新版本。运行应用程序并打开一个新项目,从可用的设置中选择gen4-IoD显示。有两个主要的窗口框架,Arduino的草图代码在左边生成,在右边显示模块的虚拟显示。(图5)。
为了使显示尽可能的友好,一个简单的阀门图标被添加到一个彩色的背景。
4D系统工作坊的图像,虚拟的gen4-IoD显示在右侧。
图5:4D系统工作坊4与虚拟的gen4-IoD显示在右侧。
车间4有多种经营模式;上面的说明强调了在设计GUI时它可以生成Arduino代码。提供了一个全面的小部件,它提供了预定义的按钮、测量器和显示元素,以进一步加速设计。在这个设计中,我们选择使用一个7段显示小部件,通过将它从小部件条拖动到阀门图像的中间。在图5中,在右下角,您可以看到可以设置为适合您的应用程序的7段属性。在这里,我们决定给出两个没有小数的数字。静态文本,“进给阀15”是显示的唯一其他信息。
一旦您设置了图像小部件,您就可以选择“Compile”来生成关联的Arduino草图,该草图显示在图5的左侧。这个过程还会创建需要存储在microSD卡上的屏幕布局文件,然后将其插入到gen4-IoD模块中。这个步骤还使用Workshop 4项目的文件名创建一个常量定义文件,在这个例子中是FeedValveConst。h,需要把它包含在你的主要素描文件中。屏幕布局文件使用了类似的命名约定。
下一阶段是为gen4-IoD显示创建主要的草图文件。您可以选择使用Workshop 4 IDE来准备草图,而不是使用Arduino IDE。但是,要做到这一点,您仍然需要在同一台计算机上加载Arduino IDE,因为在编译和上传代码时,Workshop 4将对它进行背景调用。图6突出显示了包括ESP8266 Wi-Fi、4D系统图形库以及两个Adafruit MQTT文件的主要文件。还包括了由Workshop 4 IDE创建的常量文件。然后您需要输入SSID和密码参数,允许显示模块连接到您的Wi-Fi,然后是Adafruit。IO用户名和用于创建提要的密钥。
包含设置gen4-IoD显示的文件的图像。
图6:包含设置gen4-IoD显示的文件。
在示意图中,您还需要在设置部分中输入一些命令,以启动与图形库和显示函数的通信。这些显示在图7的上半部分。图像元素、iStatictext1等在常量文件中定义,随后使用语法gfx处理。用户图像(iStatictext1,0)等。值参数,在本例中为阀门温度,作为该函数的第二个参数传递。
图像的草图代码设置gen4-IoD显示功能。
图7:草图代码设置gen4-IoD显示函数。
完成的草图可以在上传之前在Arduino IDE中编译。如果尚未完成,则需要将gen4-IoD显示模块添加到可用板的列表中。完整的细节是在模块的数据表中提供的,但本质上它涉及到在Arduino IDE首选项中添加一个板URL,以便提供一个ESP8266类别,您可以从中找到所列出的gen4-IoD显示。请注意,有几个版本的“ESP8266”由ESP8266社区的董事会管理文件提供。应该选择2.3.0文件。
一旦草图被上传,董事会就应该开始运行,显示应该开始生活。使用串行监视器函数是调试应用程序的一种极为方便的方法。在写草图的时候,你总是可以自由地使用这个系列。打印函数来指示程序的位置,以及任何关键的变量。在图6的右上角,您可以看到当草图开始运行时的串行监视器窗口。最初连接到无线接入点,它获得一个IP地址,然后连接到Adafruit。IO MQTT代理服务。然后它订阅数据提要,并开始接收每个更新的正在从Feather M0板传递给提要的阀门。
图8显示了gen4-IoD显示与阀门图像和静态文本的工作原理,就像在车间4中创建的那样。
使用从Adafruit.IO接收数据的gen4-IoD显示图像。
图8:使用Adafruit.IO接收数据的gen4-IoD显示。
结论
在这篇文章中,我们在短时间内取得了很多成就。我们已经看到,将数据推送到云计算应用程序上是多么容易,然后再将其接收到一个模块,该模块不仅集成了计算和通信功能,而且还集成了一个显示。虽然这个示例中的显示布局非常简单,但只需要几分钟就可以完成。没有必要担心必须创建字体或任何特殊的图像、库或驱动程序。此外,通过一个非常流行的无线微控制器平台的显示,开发人员可以相信有来自扩展社区的用户的支持。获得免费的云资源、MQTT代理服务以及所有必要的驱动程序和库文件都可以轻松地构建原型。