基于物联网的库存管理系统,使用称重传感器和NodeMCU
扫描二维码
随时随地手机看文章
库存控制是有效的库存管理的关键组成部分。跟踪你的股票可以让你提前做好计划和决策。如今,我们当地的超市和大型工厂将货物储存在大货架或巨大的仓库中,为了了解当前的商店/业务数量,业主必须手动数包。这个过程不仅需要时间,而且还会引入人为错误。在大型仓库的情况下,情况变得非常复杂,人工定期检查库存变得非常困难。
这就是为什么在本教程中,我们想到在流行的NodeMCU ESP8266微控制器的帮助下建立一个基于物联网和传感器的自动库存管理系统,它可以自动检测货架上存在的货物数量,或者可以准确地提供特定货物的重量。为了方便起见,我们将物联网技术与ThingSpeak云平台结合起来,这样店主就可以从家里/办公室监控库存。最后,我们将使用另一种流行的技术,IFTTT,如果产品数量低于一定水平,我们会发送电子邮件。废话不多说,我们开始吧。
我们之前使用ThingSpeak与ESP8266构建空气质量监测系统,物联网气象站和智能路灯。您可以通过以下链接查看所有ThingSpeak和ESP2866相关项目。
自动库存管理系统-工作
要知道库存中可用的包的数量,我们必须知道总重量和单个包的重量。例如,如果一个包的重量是10克,而库存货架的总重量是100克,那么我们可以很容易地计算出货架上可用的包的数量,方法是将总重量除以单个包的重量。在上述示例中,我们将获得10个包。下一个问题是,如何计算或测量总重量。这个问题的答案很简单,我们将使用称重传感器。我们可以测量总重量,我们可以在微控制器的帮助下进行所有必要的计算。这样,我们就可以计算出库存中可用的包裹数量。
现在,让我们将这个值上传到云平台,这样我们就可以在库存管理软件的帮助下,从世界任何地方监控我们的库存管理系统的状态。在我们的项目中,我们将使用一个NodeMCU和ThingSpeak来完成所有的工作。
构建自动化库存管理系统所需的组件
用于构建这个项目的所有硬件组件都非常通用,您可以在当地的爱好商店找到其中的大多数。下面给出了所需组件的列表。
•NodeMCU - 1
•称重传感器- 1
•HX711称重传感器放大模块
•128*64 OLED显示屏
•连接电线
•中密度纤维板,硬纸板,泡沫板
•7.4伏锂离子电池
自动库存管理系统组成说明
在继续本文之前,我们应该了解有关所使用组件的一些细节。在本节中,我们讨论了将用于构建电路的所有组件。
NodeMCU ESP8266开发板
NodeMCU是一个基于ESP8266 Wi-Fi SoC的开源开发平台,由Espressif Systems开发。它有一个内置的Wi-Fi模块,这使得它适合物联网相关的应用。这就是我们使用NodeMCU的原因。在之前的教程中,我们已经使用NodeMCU构建了许多其他项目。如果你想了解更酷的基于NodeMCU的项目,你可以查看这些。NodeMCU单板的外观如下图所示。
称重传感器和HX711称重传感器放大模块
这个项目的关键部件是称重传感器。这是我们的称重传感器,如你所见,一面标有10公斤。你可能已经注意到在测压元件上有一些白色的保护胶,四条不同颜色的电线出来了,我们稍后会看到下面的白色保护胶是什么。首先,这些测压元件是由铝块制成的,正如你所看到的,材料的中间部分更薄,所以这一点会变形。称重传感器有两边,我们说左右两边。想象一下,测压元件被固定在右边,力被施加在左边,这样测压元件就会弯曲。因此,在测压元件的顶部和底部都会产生很小的变形。顶部将受到拉伸,底部将受到压缩。铝条左侧向下弯曲。如果我们能测量这种变形,我们就能测量施加在铝块上的力,这就是我们要做的。
应变计是用来测量应变的元件。如果我们仔细看看这个组件,我们可以看到两个连接垫,然后我们有导线图案与重复偏转。这种导线有固定的电阻。当我们弯曲它时,电阻值会改变吗?应变片的一侧安装固定在一个地方。如果我们在铝棒的另一边放一个重物,这将迫使应变计弯曲,这将导致阻力的变化。这是怎么发生的?应变片的导电模式是由铜制成的,这种导线会有一定的面积和长度,所以这两个单位会给出导线的电阻。导线的电阻与电流相反。
很明显,如果导线的面积变小,通过的电子就会变少,这意味着电流变小。现在,如果我们增加面积,就会增加导体的电阻。如果对这条线施加力,就会拉伸这条线的面积,它会变小,同时,阻力也会增大。但是这种阻力变化非常小。如果我们拉伸应变计,电阻会增加,如果我们压缩它,电阻会变小。为了测量力,我们需要测量阻力。直接测量电阻并不总是可行的,因为变化很小。所以,我们可以很容易地测量电压,而不是测量电阻。在这种情况下,我们需要将仪表输出从电阻值转换为电压值。
我们可以借助惠斯通桥。我们把应变计放在惠斯通桥上。如果电桥是平衡的,那么在中间点的电压应该是零(之前我们已经建立了一个项目,我们已经描述了惠斯通电桥是如何工作的,如果你想了解更多关于这个主题,你可以检查一下)。当应变片改变其电阻时,会使电桥失去平衡,电压也会发生变化。这就是惠斯通电桥如何将电阻变化转换为电压值。
128X64 OLED显示屏:
这种有机发光二极管(OLED)显示屏是一种单色显示屏,0.96英寸,像素为128×64。顾名思义,OLED显示屏不需要背光,因为它们是led显示屏,这就是为什么OLED显示屏在黑暗环境中有很好的对比度。此外,该显示器的像素是由led制成的,因此它们只有在打开时才消耗少量能量,与其他显示器相比,OLED显示器消耗的能量更少。它只有四个引脚,使用I2C通信协议与微控制器通信。OLED显示器非常适合电池供电的项目,这就是我们在这里使用OLED的原因。
自动库存管理系统电路图
基于物联网的自动库存管理系统的完整电路图如下所示。
库存的电路图非常简单。在这里,我们将OLED显示器连接到NodeMCU的I2C引脚,即板上的D1和D2引脚。接下来,我们将称重传感器连接到NodeMCU。称重传感器有四根电线-红,黑,绿,白。不同厂家的颜色可能会有所不同,最好以数据表为准。红色接HX711单板的E+,黑色接E-,白色接A+,绿色接单板的A-, Dout接D5, D6接时钟。然后将OLED显示器和放大器的接地连接到NodeMCU的接地。OLED和负载传感器放大器工作在5v,但是NodeMCU没有5v引脚,所以我们必须使用5v稳压器。下图显示了面包板原型。
自动库存管理系统——安装电路的外壳
为了容纳电路和库存,我们需要做一个外壳。为此,我们使用了聚氯乙烯板材。你可以使用任何类型的材料,如中密度纤维板,泡沫板等。在这里,我使用PVC板更好的强度。首先,我从PVC板上剪下20 x 20厘米的正方形和三个20 x 5的矩形。然后,用热熔胶和PVC剪下来的碎片,我做了一个小盒子。然后我用一个旧纸板箱作为顶部(存储空间)的规模。你必须留出一些空间从地面到细胞,使它能够弯曲。在测压元件和底座之间放置螺丝螺母。我在称重传感器和顶部之间添加了塑料垫片。这就是我制作库存体的方法。你可以根据自己的想法进行设计,但要记住将称重传感器放置在如图所示的位置。您可以使用下面给出的图像作为参考。
建立ThingSpeak账户的自动库存管理系统
ThingSpeak是一个开放的数据物联网分析平台,允许您在云中聚合、可视化和分析实时数据。你可以使用ThingSpeak控制你的设备,你可以从你的设备向ThingSpeak发送数据,你甚至可以创建实时数据的即时可视化,并使用Twitter和ThingHTTP等网络服务发送警报。
首先,去Thingspeak.com注册你的邮箱,然后点击频道。从那里,单击新通道以创建接口。
现在,您将看到这样一个选项卡,用于创建通道,给出名称和描述(如果需要的话)。我们需要两个字段来收集esp的数据(总重量和剩余件数)。为此,在字段1和字段2中给出名称“总重量”和“剩余件数”。勾选这两个字段的复选框。另外,在表单中选中“公开”选项的复选框,最后保存通道。现在,您的新频道已经创建。
之后,单击API密钥并复制写API密钥。我们需要在主程序中输入这个键来上传数据到ThingSpeak云。
现在,我们需要在网站上显示数据。为此,单击小部件并选择一个小部件。这里,我们需要显示总重量和件数(数字),因此选择数字显示并单击下一步。现在,我们需要命名小部件。这里我写的是“集装箱的总重量”。现在,选择字段1(因为我们需要显示字段1的值)。然后选择单元,单击“创建”。对第二个字段执行相同的操作。
接下来,单击add visualization并添加一个图表,以图形方式显示数量(如果需要的话)。现在,我们的接口已经准备好接收数据,看起来像这样。
IFTTT设置自动电子邮件通知
在介绍部分,我们告诉过您,只要达到某个阈值,我们就会发送电子邮件。为此,我们需要建立一个IFTTT帐户。首先,登录ifttt.com,用你的凭证注册。单击位于此搜索webhooks附近的添加按钮并选择webhooks,给出事件名称,并创建触发器。现在,您可以看到它后面的webhooks徽标。
现在,点击下一个添加按钮,搜索“email”,选择邮箱,根据你的意愿定制你的信息。另外,定制邮件正文。在这里,我写了“库存耗尽”,然后点击完成。这里,“This”函数是webhooks服务,“that”函数是email服务。
现在,单击webhooks徽标,然后单击文档。然后我们需要更改事件名称。将事件完全替换为我们的事件名称。之后,复制显示的URL。
去thingspeak.com,然后点击Apps,点击Thing HTTP。当您在那里时,给出一个名称,粘贴之前复制的URL。选择POST方法。在Body中,给出通道id(您将通过单击创建的通道获得通道id),并根据剩余的件数更改我们需要发送邮件的字段,因此我选择字段2。下面的图片会让你更好地了解这个过程。
现在,进入应用程序,然后点击反应。这里给出一个名称,选择条件类型为数字,选择通道。现在,给出条件(如果值小于5,我这样给出),你可以根据自己的想法进行修改。然后选择ThingHTTP,最后单击save react。当股票低于5单位时,所有这些都会联合发送电子邮件通知。
这标志着服务器设置过程的结束,我们可以继续编写NodeMCU的代码。
自动库存监控和管理系统- Arduino代码
我将用Arduino IDE将代码上传到NodeMCU板。因此,我们需要在Arduino IDE中添加ESP Board包。为此,打开Arduino IDE,然后从文件菜单中打开preferences。粘贴下面给出的链接并按OK。
然后进入tools->boards->board manager。现在搜索ESP并安装。
安装完这个程序后,我们就可以开始编写程序了。
基于NodeMCU的库存管理系统的完整代码如下所示。我们通过包含所有必需的库来开始编写代码。为了使用某些I2C设备,需要包含Wire库。在这里,我们使用基于I2C的OLED模块,因此我们需要包括线库。我们还需要包括adafruit gfx和ssd1306,以便与OLED一起工作。ESP8266WiFi用于将Wi-Fi连接到ESP板,HX711用于从称重传感器读取读数,EEPROM用于将值存储在ESP的EEPROM中。
接下来,在四行中,我们定义了OLED显示器的属性,根据您的显示器更改这些属性(代码中注释了所有行)
然后我们为模块定义了引脚,并为EEPROM地址分配了零值。HX711_ADC loadcell功能用于设置Dout和时钟引脚。此外,我们还定义了整数来保存EEPROM地址。
要校准并将该校准值存储在EEPROM中,首先,转到文件>示例> HX 711_ADC,然后选择校准代码。上传代码前,将天平放在一个稳定的平面上。然后将代码上传到Arduino并打开串行监视器。修改波特率为572600。现在,显示器要求抵消重量,为此,我们需要按t。
现在,我们需要把已知的重量放在天平上。在我的例子中是194克。在放置已知重量后,在串行监视器上键入重量的数值并按enter键。
现在监视器询问您是否要将值保存在EEPROM中,输入y。现在,我们可以在串行监视器上看到重量。
这样,NodeMCU自动从EEPROM中选择校准值。接下来,我们需要为API密钥SSID和密码设置字符串和字符。在SSID和pass部分使用您自己的凭据。
接下来,在设置部分,我输入了显示器的I2C地址。然后,为了更好地调试,我以112500的波特率启动串行通信。此外,我还启动了Wi-Fi通信,传感器和EEPROM。
接下来,在循环部分,首先,我们使用LoadCell.update检查来自称重传感器的数据是否可用。如果可用,我们读取并存储该数据。
然后,我配置显示器,使显示器显示值。这样,我就可以显示称重传感器的值。以同样的方式,我们可以显示自制库存中剩余件数的价值。
我定义了一个浮点变量和一个整数。Float (w)用于存储一块的权重(我们需要手动输入这个值),integer (k)用于存储计算结果。计算很简单。我们通过总重量(i)除以单个重量(w)得到零件数(k)
下面几行代码用于将数据发送到ThingSpeak云。
这就是关于编码部分的所有内容。现在,只需选择单板NodeMCU12E编译并上传即可。
本文编译自iotdesignpro