物聯(lián)網(wǎng)鬧鐘使用基于NodeMCU的專屬門戶
鬧鐘已經(jīng)使用了幾十年,但自從手機進入市場后,人們更喜歡在手機上設(shè)置鬧鐘。這個鬧鐘項目一直很受電子愛好者的歡迎。今天,我們還使用NodeMCU構(gòu)建物聯(lián)網(wǎng)鬧鐘,您可以在沒有任何互聯(lián)網(wǎng)連接的情況下使用網(wǎng)頁設(shè)置鬧鐘時間。
這可以使用俘虜門戶來完成。強制門戶是向新連接Wi-Fi網(wǎng)絡(luò)的用戶顯示的網(wǎng)頁。我們可以使用NodeMCU創(chuàng)建一個強制門戶。NodeMCU有一個內(nèi)置的ESP8266 Wi-Fi屏蔽,這個Wi-Fi屏蔽可以用作Wi-Fi接入點(AP),并提供免費的Wi-Fi網(wǎng)絡(luò),但它沒有互聯(lián)網(wǎng)接入。當你連接到這個WiFI時它會重定向到你的鬧鐘網(wǎng)頁。
在這個基于NodeMCU的物聯(lián)網(wǎng)鬧鐘項目中,使用了四個主要組件- DS3231 RTC模塊,NodeMCU ESP8266, 16x2 LCD模塊和LCD I2C模塊。這里,NodeMCU用于從DS3231 RTC讀取時間,并將其顯示在16x2 LCD顯示屏上。蜂鳴器用于告警指示,當告警激活時蜂鳴器發(fā)出蜂鳴聲。
組件的要求
?NodeMCU ESP8266
?DS3231 RTC模塊
?16×2液晶
?LCD I2C模塊
?蜂鳴器
物聯(lián)網(wǎng)鬧鐘電路圖
物聯(lián)網(wǎng)鬧鐘的完整電路圖如下所示。這很簡單,因為我們只需要將一個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模塊提供秒、分、小時、日、月、年等數(shù)據(jù)。DS3231工作在24小時和12小時格式。它有兩個鬧鐘和溫度傳感器。在六個引腳中,該模塊的兩個引腳不是強制使用的。要使用此模塊,您需要做的就是將模塊的SDA和SCL引腳連接到控制器的SDA和SCL引腳。
代碼的解釋
這個物聯(lián)網(wǎng)鬧鐘的完整代碼在頁面底部,代碼也可以從這里下載。為了更好地理解,我在這里解釋代碼。
此代碼需要DNSServer.h, RtcDS3231.h, Wire.h和LiquidCrystal_I2C.h庫。你可從下列連結(jié)下載這些資料庫:
?RtcDS3231.h
?Wire.h
?LiquidCrystal_I2C.h
下載這些庫后,將它們添加到Arduino IDE中,并將所有庫包含在代碼中。
我們還需要為網(wǎng)頁界面設(shè)計一個HTML頁面。這里所有的HTML代碼都是在一個名為“style_details”的字符串中分配的。這部分代碼用于設(shè)置頁面的背景顏色、按鈕樣式、文本樣式等。
‘ home_screen ’字符串用于顯示網(wǎng)頁標題和輸入鬧鐘時間的選項。當提交報警時間時,它會將用戶重定向到下一個屏幕,即confirmation_screen。
在void setup()中,我們將以05:45的格式從用戶獲取報警數(shù)據(jù),其中05為小時,45為分鐘。此數(shù)據(jù)將保存在名為‘ new_time ’的字符串中。獲得數(shù)據(jù)后,我們必須將其分成小時和分鐘的形式,以便與當前時間進行比較。為了分割數(shù)據(jù),我們使用了‘ mystring ’。substring(from, to) ‘函數(shù),其中’ mystring '是一個String類型的變量,包含要分割的字符串。將字符串拆分為分鐘和小時字符串之后,現(xiàn)在是時候?qū)⒆址D(zhuǎn)換為整數(shù)了。對于“mystring. toint()”函數(shù),其中‘ mystring ’是您想要轉(zhuǎn)換為整數(shù)的字符串。
在void alarm()循環(huán)中,我們將從RTC模塊獲取時間數(shù)據(jù)并將其打印在LCD上。然后,將當前時間與警報時間進行比較,如果當前時間與警報時間匹配,則啟動蜂鳴器。
編程NodeMCU
現(xiàn)在是時候?qū)⒋a上傳到NodeMCU,將NodeMCU與筆記本電腦連接并正確選擇板和端口,然后單擊upload按鈕。如果您不知道如何使用Arduino IDE對NodeMCU進行編程。您可以遵循我們之前的教程。
上傳代碼后,點擊筆記本電腦wifi圖標,連接“ESP8266 DNS Server”。
當它連接到WiFi后,會打開一個網(wǎng)頁,或者你可以通過搜索“alarmclock.com”手動打開網(wǎng)頁。現(xiàn)在您可以通過網(wǎng)頁輸入鬧鐘時間,并點擊提交按鈕。
進入鬧鐘后,它會帶你到下一個屏幕,你的鬧鐘時間將被打印在LCD顯示屏上。現(xiàn)在,當當前時間與輸入的報警時間匹配時,蜂鳴器將開始鳴叫一分鐘。
這就是不使用Wi-Fi路由器就可以輕松制作物聯(lián)網(wǎng)鬧鐘的方法。
本文編譯自iotdesignpro