步驟1:您需要做的事情:
Arduino開發(fā)板(我正在使用Uno)。
Arduino以太網(wǎng)屏蔽板(檢查與arduino板的兼容性)
外部電源(9-12v)。
路由器(可以來自任何制造商)。
RJ45電纜。
步驟2:入門。..(理論上的一點(diǎn))
每個(gè)連接到Internet的設(shè)備必須具有一個(gè)地址,可以通過網(wǎng)絡(luò)使用該地址進(jìn)行標(biāo)識(shí),以便可以將數(shù)據(jù)包傳輸/接收到特定設(shè)備?,F(xiàn)在,每個(gè)設(shè)備都有兩種類型的地址。
1)MAC地址-》這對于每個(gè)設(shè)備都是唯一的。
2)IP地址-》可能是靜態(tài)(不更改)或動(dòng)態(tài)(頻繁更改)。
我們不會(huì)在這里處理MAC,因此,如果您有興趣搜索網(wǎng)絡(luò)。
無論何時(shí)連接您的arduino到您的本地網(wǎng)絡(luò)(將在后續(xù)步驟中處理),您的家庭路由器會(huì)使用DHCP自動(dòng)為其分配IP地址。現(xiàn)在您的路由器在這里起著重要的作用,因?yàn)樗洚?dāng)了arduino和Internet之間的接口。
每個(gè)路由器都有兩個(gè)IP地址
1)外部IP-》這是與外部網(wǎng)絡(luò)(例如:Internet)交互時(shí)使用
2)本地IP-》與私有/本地網(wǎng)絡(luò)(例如:連接到路由器的設(shè)備)交互時(shí)使用
因此您的arduino獲得了本地IP。因此,無論何時(shí)您想通過互聯(lián)網(wǎng)與您的arduino通信/發(fā)送消息。您訪問家用路由器并向其發(fā)送消息,然后依次將消息重定向到您的arduino。
如果您想了解路由器的詳細(xì)工作原理及其機(jī)制,請搜索以下術(shù)語和嘗試了解它們。
DHCP(動(dòng)態(tài)主機(jī)配置協(xié)議)
NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換器)
動(dòng)態(tài)/靜態(tài)IP
步驟3:了解代碼:)
我附上了示例代碼(.ino文件),在解釋過程中將用作參考。我不會(huì)解釋代碼的每一行,如果您有任何疑問,請將其張貼在注釋部分。好的,讓我們開始吧。
我們首先包含程序執(zhí)行所需的 h eader文件。
頭文件
Ethernet.h-》該庫包含用于處理客戶端連接,連接服務(wù)器以及獲取/獲取信息的功能。發(fā)送請求以及許多其他內(nèi)容。
SPI.h-》這是一個(gè)重要的頭文件,它定義了arduino如何控制以太網(wǎng)屏蔽。以及SD卡插槽。 SPI是一種通信協(xié)議。有關(guān)更多詳細(xì)信息,請參閱arduino網(wǎng)站提供的文檔。 SPI文檔。
以太網(wǎng)庫功能
mac-通常,如果您具有最新版EthernetShield的正版或原始版本,則它應(yīng)該具有MAC地址印在其背面。但是,如果您具有克隆版本,則必須為其分配用戶定義的MAC,這適用于原始版本的EthernetShield。
您也可以對IP地址進(jìn)行相同的操作,但是我不建議這樣做,因?yàn)楫?dāng)您的arduino具有預(yù)定義的IP并嘗試連接到路由器時(shí),如果路由器已經(jīng)分配了其他具有相同IP的設(shè)備讓DHCP處理IP地址分配。
EthernetServer-它創(chuàng)建一個(gè)服務(wù)器來偵聽指定端口上的傳入連接。在給定的示例中,我分配了端口號12345。您可以使用可能需要的任何端口號,但請確保該端口上當(dāng)前沒有其他服務(wù)正在運(yùn)行。
EthernetServer.begin()- -它嘗試使用用戶定義的MAC地址與路由器建立連接。盡管根據(jù)情況需要其他參數(shù)。請檢查鏈接Ethernet.begin
Serial.begin()---這將以指定的波特率打開arduino上的串行端口。
客戶端處理機(jī)制
所有的初始化只需要執(zhí)行一次,因此它會(huì)在出錯(cuò)時(shí)調(diào)試代碼。進(jìn)入setup()塊。而服務(wù)器需要檢查是否每隔一段時(shí)間都在等待連接的客戶端,因此該部分代碼進(jìn)入了loop()塊。
查看下面給出的這些鏈接以了解代碼的工作原理
Client.available()
Server.available()
我們的服務(wù)器每2秒檢查一次客戶端連接,以及客戶端是否嘗試連接然后它將請求打印到串行終端,并返回HTML頁面。
步驟4:將Arduino連接到家庭路由器
現(xiàn)在,您使用IDE將程序刷新/上傳到arduino,然后從PC/筆記本電腦上拔下arduino?,F(xiàn)在,將Ethernet Shield連接到arduino板的頂部。然后將RJ45電纜的一端插入屏蔽層,另一端插入arduino。如果要查看在arduino的串行端口上發(fā)送的消息,請確保您的筆記本電腦/電腦位于路由器附近,以便可以將整個(gè)設(shè)置連接到筆記本電腦/電腦。如有任何疑問,請查看圖片。
第5步:配置路由器
現(xiàn)在,我們將轉(zhuǎn)到在此處配置路由器,以便我們可以將arduino連接到路由器以訪問本地網(wǎng)絡(luò)及其他區(qū)域。
第一步是登錄到路由器,為此,您需要找到以下路由器的本地IP:您的路由器。
1)在Windows中打開命令提示符(cmd)。鍵入以下命令。 “ ipconfig”
2)現(xiàn)在嘗試查找“默認(rèn)網(wǎng)關(guān)”屬性,該屬性旁邊的值是路由器的本地IP。通常,路由器將本地網(wǎng)絡(luò)內(nèi)的第一個(gè)地址分配給與其相連的設(shè)備。 (例如:192.168.4.1)。
3)完成此步驟后,打開瀏覽器并在URL欄中鍵入路由器的IP地址。
4)您將看到路由器的登錄頁面。
5)輸入密碼。如果您不知道密碼,請嘗試在Internet上輕松找到的默認(rèn)密碼。(我正在使用Zyxel路由器,默認(rèn)密碼為:admin)
6)即使默認(rèn)密碼也是如此不起作用,請嘗試重置路由器,但是請注意,重置路由器可能會(huì)使路由器擦除ISP(Internet服務(wù)提供商)所做的配置,并破壞整個(gè)網(wǎng)絡(luò)。(我把網(wǎng)絡(luò)弄亂了)。
步驟6:保留您的IP地址
轉(zhuǎn)到路由器頁面中的“局域網(wǎng)設(shè)置”,然后嘗試保留您的IP地址。您當(dāng)前連接的arduino,您可以使用我們先前定義的MAC地址進(jìn)行識(shí)別。對于不同的路由器,保留IP地址將有所不同。在互聯(lián)網(wǎng)上搜索參考。保留IP地址將有助于端口轉(zhuǎn)發(fā),因?yàn)槟鷮⒁蠓?wù)器具有恒定的IP地址。
步驟7:端口轉(zhuǎn)發(fā)路由器
在此步驟中,我們將路由器上存在的端口轉(zhuǎn)發(fā)到arduino正在偵聽的端口?,F(xiàn)在嘗試創(chuàng)建用戶定義的服務(wù)名稱。為起始端口分配范圍在0到65000之間的任何端口號,但請確保不要轉(zhuǎn)發(fā)已分配給80、8080、443之類的服務(wù)的端口,請避免使用此類端口號。對于End端口,您需要提供與啟動(dòng)服務(wù)器相同的端口(在我的示例中為12345)。為什么需要端口轉(zhuǎn)發(fā)?
當(dāng)從客戶端(Web瀏覽器)向服務(wù)器發(fā)送請求時(shí),請求數(shù)據(jù)包包括目標(biāo)IP,服務(wù)請求的端口號。通常,此端口為80,該端口保留給HTTP請求?,F(xiàn)在,我們正在基于arduino創(chuàng)建服務(wù)器,該服務(wù)器不斷偵聽本地網(wǎng)絡(luò)中路由器內(nèi)部的端口?,F(xiàn)在,當(dāng)我們想從本地網(wǎng)絡(luò)(互聯(lián)網(wǎng))外部與arduino通信時(shí),我們將http請求發(fā)送到已轉(zhuǎn)發(fā)端口上的路由器,以便路由器可以將http消息重定向到正在監(jiān)聽的arduino到我們本地網(wǎng)絡(luò)中的那個(gè)端口。
步驟8:禁用防火墻
禁用防火墻,以便可以將請求發(fā)送到保留端口以外的其他端口。完成工作后,請不要忘記再次啟用防火墻。
第9步:快到了。..
現(xiàn)在嘗試使用顯示在下面的地址從本地網(wǎng)絡(luò)訪問arduino URL欄。`
http://“您的保留IP”:“端口”
如果一切正常,那么您幾乎可以通過Internet訪問arduino。如果沒有,請?jiān)俅巫屑?xì)閱讀所有步驟,并檢查所有連接是否正常。
步驟10:從本地網(wǎng)絡(luò)外部訪問Arduino
現(xiàn)在,如果要測試是否可以在本地網(wǎng)絡(luò)之外運(yùn)行。您可以通過兩種方式完成操作
1)嘗試從本地網(wǎng)絡(luò)(朋友網(wǎng)絡(luò))外部訪問arduino。
2)嘗試從PC/筆記本電腦通過Internet訪問arduino
在這兩個(gè)步驟中,通常要做的是找出路由器的全局/外部IP。您可以通過在Google中鍵入“我的IP”來找到您的全局IP。
現(xiàn)在,如果您要從本地網(wǎng)絡(luò)進(jìn)行外部訪問,請鍵入
http://“全局IP” :“港口”。它應(yīng)該工作。如果出現(xiàn)錯(cuò)誤,請檢查端口是否打開。我已經(jīng)在網(wǎng)站上附上了屏幕截圖,該網(wǎng)站可以幫助您找到您的roter上的哪些端口是打開的。如果您的端口關(guān)閉,則說明您的防火墻已啟用,或者您的arduino沒有正確連接到路由器。
但是,如果您嘗試使用步驟2進(jìn)行訪問,請檢查下一步
第11步:
所以,這是針對第2步的人,
你們需要啟用ip nat回送。為此,您需要使用telnet連接到路由器。
打開cmd并鍵入
telnet {默認(rèn)網(wǎng)關(guān)}
例如:telnet 192.168.3.1
,然后輸入屏幕快照中顯示的命令。
現(xiàn)在嘗試按上一步所示訪問它。如果您在連接時(shí)遇到問題,請查看我在上一步中提供的提示。
如果您成功了,請嘗試在我們的arduino上附加一些東西,例如傳感器,電機(jī),并嘗試控制或收集它們的數(shù)據(jù)。
責(zé)任編輯:wv
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11196瀏覽量
104122 -
Arduino
+關(guān)注
關(guān)注
188文章
6478瀏覽量
188283
發(fā)布評論請先 登錄
相關(guān)推薦
云互聯(lián)網(wǎng)是什么意思
恒訊科技介紹:互聯(lián)網(wǎng)專線是什么意思?有什么優(yōu)勢?

如何將多個(gè)ESP連接到一個(gè)ESP并向服務(wù)器發(fā)送數(shù)據(jù)?
如何讓W(xué)indows 8自動(dòng)連接到ESP8266?
使用ESP8266將arduino連接到thinkspeak云,無法將其連接到任何網(wǎng)頁,為什么?
ESP8266無法連接到互聯(lián)網(wǎng)是怎么回事?
通過APP將esp8266設(shè)備連接到AP遇到的疑問求解
esp8266已連接到Wifi但無法連接到互聯(lián)網(wǎng),為什么?
如何使用espidf將esp32做成WiFi中繼?
工業(yè)互聯(lián)網(wǎng)平臺(tái)的功能和作用
工業(yè)互聯(lián)網(wǎng)三大體系是什么?
工業(yè)互聯(lián)網(wǎng)和ERP的關(guān)系
工業(yè)路由器:連接工業(yè)互聯(lián)網(wǎng)的工具
什么是衛(wèi)星互聯(lián)網(wǎng)?衛(wèi)星互聯(lián)網(wǎng)的組成

評論