基于物联网的智能货币计数器,使用NodeMCU和Arduino IDE
扫描二维码
随时随地手机看文章
纸币计数器是一种检测不同面额纸币并告诉其价值的机器。在这个物联网项目中,我们使用颜色感应技术来检测音符值。因此,这里我们将使用带有NodeMCU ESP8266的TCS230颜色传感器来检测货币价值,并在网页和16x2 LCD上显示相同的值。NodeMCU ESP8266是一个非常流行的Wi-Fi模块,我们之前使用NodeMCU ESP8266构建了许多物联网项目。
在基于物联网的应用中,web服务器用于使用web浏览器控制或监控任何传感器值,我们以前使用Arduino, ESP8266, NodeMCU, ESP32,树莓派等创建了许多web服务器。
所需的组件
•ESP8266 NodeMCU
•TCS230颜色传感器
•红外传感器
•电路试验板
•电力供应
•16*2字母数字液晶显示
•I2C屏蔽16*2 LCD
•连接电线
TCS230颜色传感器工作正常
TCS230颜色传感器用于感应各种颜色。该传感器可用于产品的颜色分类、配色等。
这种传感器使用一组带有红色、绿色和蓝色滤光片的光电二极管以及一个透明滤光片。它还内置了红外线发光二极管,用来照亮被探测物体的颜色。这就保证了物体不会受到外界光线的影响。该传感器读取一个8*8阵列的光电二极管,该阵列包括16个带红色滤光片的光电二极管,16个带蓝色滤光片的光电二极管,16个带绿色滤光片的光电二极管以及16个不带彩色滤光片的光电二极管。
TCS230颜色传感器的输出信号是一个占空比为50%的方波,其频率与所选滤波器的光强成正比。
Pin描述:
•VDD-传感器的电压供应引脚。它由5V直流供电。
•GND-颜色传感器的接地参考引脚
•S0, S1-输出频率缩放选择输入
•S2, S3-光电二极管类型选择输入
•OUT-颜色传感器的输出引脚
•输出频率使能引脚
货币柜台机电路图
编程的解释
在成功完成硬件设置之后,现在是时候对ESP8266 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进行编程。
然后使用名称服务器和默认端口号80创建ESP8266WebServer类对象。
现在,声明网络凭据,即SSID和密码。需要将NodeMCU连接到互联网。
为了使用16*2字母数字LCD的I2C模块,我们已经使用LiquidCrystal_I2C类配置了它。在这里,我们必须传递地址0x27(在本例中)和行、列号,在本例中为2和16。
在setup()中,在LCD上打印欢迎信息,然后定义本项目中使用的所有数字引脚的数据方向。然后,设置颜色传感器的输出频率缩放。在我的情况下,它被设置为20%,这可以通过给高脉冲到0和低脉冲到S1来完成。
然后,将NodeMCU连接到互联网,调用WiFi。开始并传递网络SSID和密码作为参数。使用WiFi.status()检查网络连接是否成功,连接成功后,在LCD上打印带有IP地址的消息。
然后,编写HTML代码以在网页上显示货币使用情况和总余额。然后使用server.on()将HTML代码分配给String变量,然后在用户使用IP地址请求时将其发送到客户端。
要启动web服务器,请使用server.begin(),它将以默认端口号启动服务器。
在infinite loop()中,首先,我们需要读取来自传感器的所有数据输出。从红外传感器的输出可以通过读取A0引脚找到。在这里,红外传感器用于感知插槽内货币的存在,如果有钞票,那么颜色传感器将检测钞票的颜色并将颜色值发送给NodeMCU。而NodeMCU则根据纸币的颜色进一步计算货币价值。然后可以通过调用red (), blue()和green()等单独的函数来找到输出的颜色频率。
接下来,用我们之前设置的参考频率编写检查颜色传感器输出频率的条件。如果匹配,则从钱包中扣除指定的金额。
写这条语句是为了在液晶显示器上显示钱包中的可用余额。
下面的函数用于获取货币中红色内容的输出颜色频率。类似地,我们可以编写其他函数来获取蓝色和绿色内容的值。
最后,要处理客户机请求,调用server.handleClient()函数。它将处理新的请求并检查它们。
注意:
•根据外部照明和传感器设置,频率输出可能会有所不同。因此,建议检查您的货币的输出频率,并设置相应的参考值。
•在这里,我们只使用100和200卢比的纸币。但我们也可以使用所有其他货币的颜色频率输出值。
最后,使用Arduino IDE在NodeMCU中上传代码,并开始交换任何纸币来测试机器。该网页将显示当前的纸币价值和钱包中的剩余余额。
本文编译自iotdesignpro