物联网闹钟使用基于NodeMCU的专属门户
扫描二维码
随时随地手机看文章
闹钟已经使用了几十年,但自从手机进入市场后,人们更喜欢在手机上设置闹钟。这个闹钟项目一直很受电子爱好者的欢迎。今天,我们还使用NodeMCU构建物联网闹钟,您可以在没有任何互联网连接的情况下使用网页设置闹钟时间。
这可以使用俘虏门户来完成。强制门户是向新连接Wi-Fi网络的用户显示的网页。我们可以使用NodeMCU创建一个强制门户。NodeMCU有一个内置的ESP8266 Wi-Fi屏蔽,这个Wi-Fi屏蔽可以用作Wi-Fi接入点(AP),并提供免费的Wi-Fi网络,但它没有互联网接入。当你连接到这个WiFI时它会重定向到你的闹钟网页。
在这个基于NodeMCU的物联网闹钟项目中,使用了四个主要组件- DS3231 RTC模块,NodeMCU ESP8266, 16x2 LCD模块和LCD I2C模块。这里,NodeMCU用于从DS3231 RTC读取时间,并将其显示在16x2 LCD显示屏上。蜂鸣器用于告警指示,当告警激活时蜂鸣器发出蜂鸣声。
组件的要求
•NodeMCU ESP8266
•DS3231 RTC模块
•16×2液晶
•LCD I2C模块
•蜂鸣器
物联网闹钟电路图
物联网闹钟的完整电路图如下所示。这很简单,因为我们只需要将一个RTC模块和一个LCD与我们的ESP NodeMCU板连接起来。
DS3231 RTC模块和LCD I2C模块的Vcc和GND引脚与NodeMCU的Vin和GND引脚相连。而DS3231和I2C模块的SCL和SDA引脚分别与NodeMCU的D1和D2引脚相连。蜂鸣器连接在NodeMCU的D8引脚上,用于告警。
DS3231 RTC模块
DS3231 RTC (Real Time Clock)模块,顾名思义,是一个时钟模块。DS3231是一个六脚模块,使用I2C接口。该模块有电池连接,使模块在没有外部电源的情况下运行,以跟踪时间和日期。
RTC模块提供秒、分、小时、日、月、年等数据。DS3231工作在24小时和12小时格式。它有两个闹钟和温度传感器。在六个引脚中,该模块的两个引脚不是强制使用的。要使用此模块,您需要做的就是将模块的SDA和SCL引脚连接到控制器的SDA和SCL引脚。
代码的解释
这个物联网闹钟的完整代码在页面底部,代码也可以从这里下载。为了更好地理解,我在这里解释代码。
此代码需要DNSServer.h, RtcDS3231.h, Wire.h和LiquidCrystal_I2C.h库。你可从下列连结下载这些资料库:
•RtcDS3231.h
•Wire.h
•LiquidCrystal_I2C.h
下载这些库后,将它们添加到Arduino IDE中,并将所有库包含在代码中。
我们还需要为网页界面设计一个HTML页面。这里所有的HTML代码都是在一个名为“style_details”的字符串中分配的。这部分代码用于设置页面的背景颜色、按钮样式、文本样式等。
‘ home_screen ’字符串用于显示网页标题和输入闹钟时间的选项。当提交报警时间时,它会将用户重定向到下一个屏幕,即confirmation_screen。
在void setup()中,我们将以05:45的格式从用户获取报警数据,其中05为小时,45为分钟。此数据将保存在名为‘ new_time ’的字符串中。获得数据后,我们必须将其分成小时和分钟的形式,以便与当前时间进行比较。为了分割数据,我们使用了‘ mystring ’。substring(from, to) ‘函数,其中’ mystring '是一个String类型的变量,包含要分割的字符串。将字符串拆分为分钟和小时字符串之后,现在是时候将字符串转换为整数了。对于“mystring. toint()”函数,其中‘ mystring ’是您想要转换为整数的字符串。
在void alarm()循环中,我们将从RTC模块获取时间数据并将其打印在LCD上。然后,将当前时间与警报时间进行比较,如果当前时间与警报时间匹配,则启动蜂鸣器。
编程NodeMCU
现在是时候将代码上传到NodeMCU,将NodeMCU与笔记本电脑连接并正确选择板和端口,然后单击upload按钮。如果您不知道如何使用Arduino IDE对NodeMCU进行编程。您可以遵循我们之前的教程。
上传代码后,点击笔记本电脑wifi图标,连接“ESP8266 DNS Server”。
当它连接到WiFi后,会打开一个网页,或者你可以通过搜索“alarmclock.com”手动打开网页。现在您可以通过网页输入闹钟时间,并点击提交按钮。
进入闹钟后,它会带你到下一个屏幕,你的闹钟时间将被打印在LCD显示屏上。现在,当当前时间与输入的报警时间匹配时,蜂鸣器将开始鸣叫一分钟。
这就是不使用Wi-Fi路由器就可以轻松制作物联网闹钟的方法。
本文编译自iotdesignpro