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

評論