概述
盡管ESP8266 WiFi模塊的主要目的是將互聯(lián)網(wǎng)連接引入我們的小型DIY項目,但我相信到目前為止我們還沒有完全利用ESP8266 WiFi模塊的功能,即一個真正的IoT(物聯(lián)網(wǎng))項目。
我想通過互聯(lián)網(wǎng)實際控制ESP8266,讓ESP8266項目更進一步。在這個過程中,我們將學(xué)習(xí)如何通過互聯(lián)網(wǎng)控制連接到ESP8266 WiFi模塊的一個GPIO引腳的LED(僅用于演示工作)來控制ESP8266,即ESP8266的另一個網(wǎng)絡(luò)未連接到
這與WiFi控制的LED項目有什么不同?
非常好題。這個項目和早期的項目實際上有兩個不同之處。第一個區(qū)別是ESP8266 WiFi模塊是如何控制的。在之前的項目中,我通過WiFi網(wǎng)絡(luò)控制ESP8266,即通過與ESP8266連接到同一網(wǎng)絡(luò)的計算機或電話控制ESP8266。
來到這個項目,目的是是通過互聯(lián)網(wǎng)控制ESP8266,即通過互聯(lián)網(wǎng)連接從世界任何地方的計算機或電話控制。
第二個區(qū)別是ESP8266 WiFi模塊的配置方式。如果你還記得,我特別提到ESP8266 WiFi模塊必須用AT命令固件刷新,我們將通過上傳到Arduino的程序控制ESP8266。
但是,在這個項目中,我將直接將代碼上傳到ESP8266 WiFi模塊的ROM中(現(xiàn)有的程序或固件將被刪除)。
現(xiàn)在我們已經(jīng)看到了差異,讓我們繼續(xù)進行項目的電路圖和電路設(shè)計。
電路圖
以下電路用于通過互聯(lián)網(wǎng)控制ESP8266。讓我們先看一下這些組件,然后詳細解釋電路的設(shè)計。
下圖顯示了電路圖中使用的ESP8266 WiFi模塊的引腳。有關(guān)實際引腳圖,請參閱開始使用ESP8266和ARDUINO 項目。
必需的組件
Arduino UNO(作為USB轉(zhuǎn)串口轉(zhuǎn)換器)
ESP8266(ESP-01)WiFi模塊
滑動開關(guān)(SPDT開關(guān))
按鈕
1KΩ電阻(1/4瓦)
2.2KΩ電阻(1/4瓦)
330Ω電阻(1/4瓦)
LED
連接電線
迷你面包板
注意:
Arduino UNO用作USB轉(zhuǎn)串口轉(zhuǎn)換器。所以,我已經(jīng)從Arduino UNO Board中移除了ATmega328p微控制器。如果您有專用的USB轉(zhuǎn)串口轉(zhuǎn)換器(USB轉(zhuǎn)TTL),那么您將不需要Arduino。
此外,我已經(jīng)制作了一個簡單的ESP8266分線板一個名為 DIY PCB FOR ESP8266 的早期項目。它包含與ESP8266 WiFi模塊相關(guān)的所有重要組件。我將在此項目中使用相同的電路板。
電路設(shè)計
將ESP8266的VCC和GND連接到Arduino的3.3V和GND。 CH_PD引腳也連接到3.3V電源。按鈕連接在復(fù)位引腳和GND之間。
ESP8266 WiFi模塊的TX引腳連接到Arduino的TX引腳,ESP8266的RX引腳連接到連接到Arduino的RX引腳,但通過一個由兩個電阻(1KΩ和2.2KΩ)組成的分壓器。
LED連接到ESP8266的GPIO2引腳。最后,GPIO0引腳連接到SPDT開關(guān)的極點(滑動開關(guān)的中心端子)。開關(guān)的一個投射端子連接到GND,另一個投射端子保持打開,但可以用于GPIO連接。
代碼
必須將以下程序上傳到ESP8266 WiFi模塊。它將設(shè)置WiFi連接并創(chuàng)建一個簡單的HTML頁面,可以使用ESP8266的IP地址進行訪問。
注意:
在將代碼上傳到ESP8266之前,請確保在Arduino Boards部分中選擇了“Generic ESP8266 Module”。
有關(guān)如何將程序上傳到ESP8266的更多信息,請參閱ESP8266和Arduino項目入門。
在代碼中輸入WiFi網(wǎng)絡(luò)的詳細信息。
我已將ESP8266 WiFi模塊的靜態(tài)IP地址分配為“192.168.1.254”。在確認沒有其他具有此IP地址的設(shè)備后,我選擇了此地址。分配靜態(tài)IP地址時,請確保相同。
除靜態(tài)IP地址外,還必須提供其他信息,如默認網(wǎng)關(guān)和子網(wǎng)掩碼。您可以通過在Windows的命令提示符下鍵入“ipconfig”來找到它。
工作
要上傳代碼,將GPIO0引腳滑動到編程模式(將GPIO0連接到GND),然后按RESET開關(guān)。在Arduino IDE中選擇正確的板和端口后,上傳代碼。
上傳代碼后,將開關(guān)滑動到正常模式并按一下RESET按鈕。打開串行監(jiān)視器。在那里,您可以看到WiFi連接的詳細信息。
您還可以看到ESP8266 WiFi模塊的IP地址。由于我分配了一個靜態(tài)IP地址,我會得到相同的。如果您已選擇不分配靜態(tài)IP地址,則使用路由器分配的地址。
在代碼中,我在端口255創(chuàng)建了服務(wù)器。所以,服務(wù)器的URL將是http://192.168.1.254:255 。
在連接到同一WiFi網(wǎng)絡(luò)的計算機或手機中打開網(wǎng)絡(luò)瀏覽器并輸入以上內(nèi)容提到的URL。將打開一個簡單的HTML頁面,其中包含少量文本和鏈接。下圖是已打開URL的手機的屏幕截圖。
您可以點擊指向的特定鏈接在本地控制LED,即在WiFi網(wǎng)絡(luò)內(nèi)。
如何通過互聯(lián)網(wǎng)控制ESP8266?
現(xiàn)在是通過互聯(lián)網(wǎng)控制ESP8266 WiFi模塊的技巧部分。有兩種方法可以實現(xiàn)這一目標。一種方法是使用端口轉(zhuǎn)發(fā),我將在此項目中使用,另一種方法是使用專用的遠程服務(wù)器,如ThingSpeak或aREST。
我已經(jīng)設(shè)置我的ESP8266 WiFi模塊的靜態(tài)IP地址,下一步是繼續(xù)進行端口轉(zhuǎn)發(fā)。
從任何瀏覽器打開路由器頁面并使用路由器登錄詳細信息登錄。轉(zhuǎn)到路由器的Port Forwarding頁面(取決于路由器,在我的情況下是我的WAN設(shè)置)。
啟用端口轉(zhuǎn)發(fā)并提供本地服務(wù)器IP地址等必要的詳細信息( ESP8266的靜態(tài)IP地址),端口號等,并保存設(shè)置。
現(xiàn)在,轉(zhuǎn)到具有高級安全設(shè)置的Windows防火墻并添加新的入站規(guī)則。選擇“端口”的規(guī)則類型并指定端口號。
打開任何Web瀏覽器并搜索“我的IP地址是什么”。它會生成路由器的WAN IP地址。請記下來。
現(xiàn)在,從另一臺計算機(任何未連接到與ESP8266相同的WiFi網(wǎng)絡(luò)的計算機),鍵入您剛才記下的IP地址端口號。例如,如果您的IP地址是183.92.192.58且端口號是255,則在任何Web瀏覽器中鍵入“183.92.192.58:255”。您現(xiàn)在將獲得用于控制LED的HTML頁面。
重要說明:
建議不要使用端口轉(zhuǎn)發(fā),因為它會將計算機打開到外部,并且很容易受到病毒或惡意軟件的攻擊?!?span》
此外,還有許多ISP(Internet服務(wù)提供商)不允許端口轉(zhuǎn)發(fā)。
另一種方法是使用ThingSpeak或aREST等專用安全服務(wù)器。
下一個項目,我將向您展示如何使用其中一種服務(wù)從互聯(lián)網(wǎng)上控制ESP8266。
-
Internet
+關(guān)注
關(guān)注
0文章
400瀏覽量
36869 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45131
發(fā)布評論請先 登錄
相關(guān)推薦
評論