当前位置:首页 > 物联网 > IoT设计分享
[导读]我们都在购物中心等地方排队付款,这是非常累人的,在计费过程中浪费了很多时间。今天我们将构建一个带有自动计费系统的智能购物车,它不仅减少了等待时间,而且使整个过程非常顺利和容易。

我们都在购物中心等地方排队付款,这是非常累人的,在计费过程中浪费了很多时间。今天我们将构建一个带有自动计费系统的智能购物车,它不仅减少了等待时间,而且使整个过程非常顺利和容易。

在这里,我们使用RFID卡和RFID读卡器与NodeMCU一起构建智能购物车项目。购物车信息和总价值将显示在网页以及LCD上。每个RFID卡都与一个特定的产品相关联,购物车中安装了一个RFID读取器,读取价格和产品详细信息等产品详细信息并将其发送到NodeMCU ESP8266。然后,NodeMCU处理购物车中的可用物品和总价值,并将它们发送到ESP8266网络服务器,可以在世界任何地方的网络浏览器上进行监控。Web服务器用于使用Web浏览器控制或监控任何传感器值,我们以前使用Arduino, ESP8266, NodeMCU, ESP32,树莓派等创建了许多Web服务器。

所需的材料

•ESP8266 NodeMCU -1

•16*2字母数字液晶显示屏

•I2C模块用于16*2 LCD-1

•4针触觉开关-1

•EM18 RFID阅读器-1

EM18 RFID阅读器,它正在工作

RFID是射频识别的缩写。它指的是一种技术,将数字数据编码在RFID标签中,并由RFID读取器使用无线电波解码。RFID类似于条形码,其中来自标签的数据由RFID读取器设备解码。RFID技术用于各种应用,如库存管理,考勤系统,门锁系统,进入限制区域等。

EM18阅读器是一个非常流行的RFID模块,可以读取存储在RFID标签中的ID信息。RFID标签存储一个12位的唯一数字,当标签进入阅读器的范围时,可以由EM18阅读器模块解码。该模块有一个内置天线,工作频率为125千赫,需要5v直流电源为其供电。

它提供串行数据输出,范围为8-12cm。串行通信参数为8位数据位,1位停止位,波特率为9600。

EM18 RFID读写器特点:

•工作电压:+4.5V ~ +5.5V DC

•当前消费:50 ma

•工作频率:125千赫

•工作温度:0-80℃

•通信波特率:9600

•阅读距离:8-12厘米

•天线:内置

EM18 RFID阅读器输出:

EM18 RFID阅读器引脚说明:

VCC: 4.5- 5V直流电压输入

GND:接地引脚

蜂鸣器:蜂鸣器或LED引脚

TX:用于RS232(输出)的EM18的串行数据发射器引脚

SEL:使用RS232时必须为高电平(使用WEIGAND时为低电平)

数据0:权重数据0

数据1:WEIGAND数据

基于物联网的智能购物车电路图

基于RFID的智能购物车系统的完整电路图如下:

这就是整个设置在面包板上的样子:

用Arduino IDE编程NodeMCU

要使用Arduino IDE将代码上传到NodeMCU,请遵循以下步骤:

1. 打开Arduino IDE,然后进入File - >Preferences - >Settings。

2. 在“附加板管理器URL”字段中键入,然后单击“确定”。

3. 现在转到Tools > Board > Boards Manager。在“单板管理器”窗口中,在搜索框中输入ESP8266,选择最新版本的单板,单击“安装”。

4. 安装完成后,进入“Tools ->Board ->”,选择“NodeMCU 1.0(ESP-12E Module)”。现在您可以使用Arduino IDE对NodeMCU进行编程。

找出RFID标签的唯一12位代码

在为智能购物车项目编写NodeMCU之前,首先,我们需要找出12位RFID标签的唯一代码。如前所述,RFID标签包含一个12位的唯一代码,可以通过使用RFID读取器对其进行解码。当RFID卡在阅读器附近刷卡时,当阅读器连接到NodeMCU时,阅读器将通过输出串口给出唯一的代码。首先,按照电路图将NodeMCU连接到RFID读取器,然后将下面的代码上传到NodeMCU。

上传代码成功后,打开串口监视器,设置波特率为9600。然后在读卡器附近刷卡,您现在可以在串行监视器上看到12位数的代码,如下面的快照所示。对所有使用过的RFID标签执行此过程,并将其记录下来以备将来参考。

代码的解释

在成功完成硬件设置之后,现在是时候对NodeMCU进行编程了。这个基于RFID的智能小车项目的完整代码以及视频在本教程的末尾给出。下面给出了代码的逐步描述。

通过在代码中包含所有所需的库文件来启动代码,例如ESP8266WiFi.h用于ESP8266板,LiquidCrystal_I2C.h用于LCD, Wire.h用于SPI通信等。

然后使用名称服务器和默认端口号80创建ESP8266WebServer类对象。

现在,声明网络凭据——即SSID和密码。需要将NodeMCU连接到互联网。

对于16*2字母数字LCD使用I2C模块,请使用LiquidCrystal_I2C类进行配置。这里我们必须传递地址、行号和列号,在我们的示例中分别是0x27、16和2。

在setup()中,声明所有输入引脚和输出引脚。然后在LCD上打印欢迎信息,该信息将在项目初始化期间显示。

然后,将NodeMCU连接到互联网,调用WiFi。开始并传递网络SSID和密码作为参数。使用WiFi.status()检查网络连接是否成功,连接成功后,在LCD上打印带有IP地址的消息。

在下一步中,将创建如下所示的HTML页面,其中包含一个HTML表,用于显示购物车中的产品详细信息和账单信息。HTML页面存储在一个字符串变量中,以便在客户端请求时使用server.send()函数发送回。

在loop()中,使用digitalRead()读取连接按钮的数字引脚,并将其存储在整数变量中。这里我们使用一个按钮从购物车中删除产品。

现在在下面的代码中,RFID标签的唯一12位数字代码被解码并存储在数组中。然后,数组中的元素将与内存中的Stored Tag编号进行匹配,以获得产品详细信息。

这里,我们将接收到的数组与存储的标签代码进行比较,如果没有按下按钮并且代码匹配,则执行下面的条件并将产品添加到购物车中。同样的信息将显示在LCD上。下面的代码增加购物车中的产品编号,并将价格添加到购物车总价值中。

现在,当按下按钮时,将执行下面的条件,并将RFID标签代码与存储的阵列匹配。这意味着我们必须从购物车中删除此产品,并从购物车总价值中减去产品价格。

最后,产品的单项成本计算如下。这里选择了一些随机的成本值,您可以根据选择更改这些值。

最后,调用server.handleClient()来处理新请求并检查它们。

这就是使用射频识别技术的智能购物车是如何制造出来的,并且可以在世界上任何地方的网页上进行监控。

本文编译自iotdesignpro

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭