0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何構建Arduino Web服務器

454398 ? 來源:wv ? 2019-10-17 09:55 ? 次閱讀

步驟1:您需要做什么

對于此項目,只需最少兩件事即可使其工作。其他所有內容都是您可以包括的附加功能。

所需的部件是:

Arduino

Arduino以太網(wǎng)屏蔽-注意:如果您使用的是較舊的屏蔽,則將無法使用。 SD卡。如果您沒有防護罩,請獲取最新版本?。?!

可選部件:

放入其中的盒子-推薦

伺服

液晶屏

某些LED 更多可選部件-這些用于外部控制和/或傳感器

第二個Arduino

所需的任何聲納和控制器

長電纜或無線收發(fā)器(像Xbee)

步驟2:Web入門

您要做的第一件事需要做的是在arduino上放置以太網(wǎng)屏蔽。如果需要幫助,請將屏蔽罩上的引腳名稱與Arduino的引腳名稱對齊。然后將其插入計算機,然后將以太網(wǎng)電纜從路由器連接到Arduino。打開Arduino IDE,并在arduino-00xx-》 library-》 Ethernet下運行WebServer示例。

打開您喜歡的Web瀏覽器,然后輸入http://192.168.1.177。您應該看到類似下圖的內容。如果它不起作用,請勿恐慌!您可能有一個Internet服務提供商,其阻止了端口80(標準的http端口)。

要對此進行測試,我們將嘗試以下方法之一轉到端口8080或8081。轉到WebServer草圖,找到顯示以下內容的行:Server server(80);它是草圖的開始。將80更改為8080或8081?,F(xiàn)在上傳。要進入您的網(wǎng)站,您需要輸入:http://192.168.1.177:8080或http://192.168.1.177:8081。如果有效,那就太好了,您可以繼續(xù)下一步?。?! portforward.com是尋求轉發(fā)幫助的好地方。

在您興奮并打電話給您的朋友上車之前,我們遇到了問題。您站點的IP地址只能由連接到路由器的計算機訪問。沒有其他人可以訪問它。我們如何解決這個問題???我們使用端口轉發(fā)。這可能很容易,也可能很難,具體取決于您和路由器的制作方式。您將需要訪問路由器的設置頁面并進行搜索,直到看到鏈接或選項卡或任何名為“端口轉發(fā)”或“端口轉發(fā)/端口觸發(fā)”或類似名稱的內容。轉到該頁面,然后選擇一個新的 http 服務。輸入Web服務器的IP,并將起始端口和結束端口設置為8080或8081。保存更改,現(xiàn)在人們可以從路由器外部訪問您的網(wǎng)站。但是您將需要一個新的IP。路由器的IP。請訪問www.whatismyip.com。請勿訪問http://this.is.my.ip:8080或http://this.is.my.ip:8081的IP。使用這個和是以及我和 ip 分別代表您的地址。

現(xiàn)在致電您的最親密的朋友,讓他們看看。可是等等?。?!仍然存在一個問題,記住所有這些數(shù)字可能會很痛苦!我們并不擅長記住數(shù)字字符串,但是我們擅長記住單詞和名稱。

要解決此問題,您可能希望獲得一個實際的域名,例如example.com。最簡單的方法是訪問dyndns.com并注冊一個免費帳戶,然后選擇一個免費域名。其中包括您的名字 .dyndns- 某物 .com或您的名字 .dyndns。 some2or3letterending ?,F(xiàn)在將此域設置為路由器的IP。要訪問您的站點,您將鍵入http://yourname.dyndns.whatever:8080或8081,具體取決于您的服務器端口。在Internet Explorer中,需要http://,但對于80以外的其他端口,則不需要Firefox。

您可以采取的最后一步(可選)是制作網(wǎng)絡跳,而不必在:808x上鍵入結束。我已將http://teslalingeweb.dyndns-web.com指向路由器的ip,并將http://teslaling.dyndns-web.com設置為http://teslalingeweb.dyndns-web.com:8081的網(wǎng)絡跳。對于端口80上的網(wǎng)站,不需要http://。

現(xiàn)在您已經在網(wǎng)站上擁有了網(wǎng)站,您可以構建服務器并設計網(wǎng)站!

步驟3:構建Web服務器

雖然我將向您展示我的Web服務器設計,但完全由您決定如何布局和設計,但是這里有一些指導原則。

我建議將arduino放在一個角落,以便可以訪問電源,USB和以太網(wǎng)端口以及SD卡插槽。

我也建議使用堅固的盒子,我使用的盒子不是很堅固,現(xiàn)在伺服器的重量

如果打算安裝LCD屏幕,請先將其焊接在其上,然后將其連接至以太網(wǎng)屏蔽,然后再放入盒中,盒內有8根電線可供連接! !

第4步:連接設備

與該項目的其他所有內容一樣,您可以選擇要添加到ServDuino中的其他內容。我有一些建議和規(guī)則,您可以遵循這些建議和規(guī)則以使其成功構建。

伺服。

Theservo易于連接,將紅色線連接到+5,黑色線連接到gnd,黃色(或第三根導線)連接到pwm引腳。在主板上,pwm引腳包括3、5、6、9、10、11。但是,不能使用引腳10和11,因為它們用于與以太網(wǎng)屏蔽和SD卡的SPI通信。如果您使用delay或millis(),我建議不要使用5或6針,因為如果ServDuino在計算機旁邊,會有一個令人討厭的抖動!

LCD屏幕。

一個字符LCD屏幕最多可連接6個數(shù)據(jù)引腳。很好,因為僅剩6個數(shù)字引腳?,F(xiàn)在,在您發(fā)表評論并告訴我實際上有9個圖釘之前,讓我解釋一下。我們使用了別針13,12,11,10和我們選擇的9,6,5或3。這留下了9個別針。但是,我們需要一個用于與SD卡進行SPI通信的引腳,即引腳4。接下來,我們必須記住,Arduino使用UART來上傳其草圖,因此我們不想使用引腳0或1,如果。現(xiàn)在我們該如何僅用6個引腳連接LCD屏幕,如下所示:

Vss接地,

Vcc接地+5伏特。

Vo可以接地,也可以連接電位計。RS與數(shù)據(jù)引腳相連。記住什么針!??!或者更好的方法是將其寫下來!

R/W接地。

E接地到數(shù)據(jù)引腳。記下來!

DB0-DB3未連接。

DB4-DB7與數(shù)據(jù)引腳相連。寫下來吧!

背光引腳可以連接到各自的電壓源。

模擬傳感器:

模擬傳感器非常簡單,但是在較新的以太網(wǎng)屏蔽上,也許在較舊的以太網(wǎng)屏蔽上也是如此是在模擬引腳0和1上與+ 5v相連的10K電阻器。當心!

Xbee和串行通信:

嗯,我在這里沒有太多產品,我沒有任何Xbees 。..但。..但我想提一些建議。任何時候需要上傳草圖時,您都需要關掉xbee跳線或斷開串行線(如果不進行無線連接),因此您可能希望嘗試在服務器盒上放置一個跳線選擇。如果您不這樣做,則必須將其撕碎以上傳草圖。

第5步:設計網(wǎng)站

在這里,您必須在這里開始思考什么您希望您的網(wǎng)站看起來像和做的一樣,以便您可以選擇存儲網(wǎng)站信息的方式。

如果您想擁有一個非?;镜木W(wǎng)站,可能只有一頁,或者希望能夠控制一些led或電燈開關或您的心臟想要的任何東西,您應該使用保存在Arduino內存中的站點。

如果您想要具有類似的功能,但想要超過一頁,則需要考慮使用

如果您想要一個包含圖片,視頻和許多頁面的常規(guī)站點,或者其他任何內容,則需要使用SD卡。

限制和功能:

使用ram選項,該站點只能是1500個字符(包含html代碼,而不是實際文本),這非常有限,但是對于簡單的led(led可能實際上是任何東西)控制器來說非常有用。

使用PROGMEM選項,您少得多。使用atmega328,您最多可以存儲12,000-13,000個html字符?。?!它適用于家庭自動化或不帶SD卡的多頁站點,但是您無法在其中存儲圖片或文件,并且您仍然只能使用12k字符。

SD卡是大型站點的最佳選擇,其中包含許多腳本,圖片,頁面等。但是到目前為止,它不能用于控制Web上的LED,但是我正在研究它!我也在研究目錄,并使用SD庫而不是sdfatlib(但不要期待一會兒,因為我的主要精力是在led控制器和目錄上,除非‘ibles社區(qū)想提供幫助?。?/p>

第6步:存儲選項

這是我在上一章中介紹的存儲選項的更深入的介紹步驟。

Ram:

第一個選項是將站點存儲在Arduino的ram中。這是最簡單的方法,因為您只需調用client.print()函數(shù)并在其中寫入html代碼。限制為大約1500個字符,因為Arduino僅具有2048字節(jié)的ram。*

Ex:client.print(“

。..”);

程序存儲器:

如果您可以將代碼存儲在程序存儲器而不是ram中,那不是很好。好吧,實際上,上述選項可以做到這一點,但是編譯器隨后會在啟動時讓微型計算機將所有內容都讀入內存。我們該如何解決?我們使用PROGMEM庫pgmspace.h。這告訴編譯器我們想將數(shù)據(jù)保留在程序存儲器中?,F(xiàn)在我們已經可以有12k個字符。*唯一的問題是,micro傾向于容易凍結,但是在下一步中,我有解決方法。

SD卡:

當涉及到SD卡無疑是最佳選擇。您最多可以擁有64GB的內存!最大的問題是,不建議使用ATMEGA168或更舊版本的Duemilanove,因為它的最小編譯大小約為16000字節(jié)。與PROGMEM代碼不同,我很少遇到SD卡死機的問題,而且我非常接近獲得有效的led控制器代碼。

第7步:編程!

從這里開始樂趣-或沮喪-開始!現(xiàn)在,您可以上傳您選擇的草圖并測試您的Web服務器了!

我這里有很多草圖可供下載。我將在以下類別中列出它們:RAM,PROGMEM,SD。我將簡要介紹每個草圖及其功能。我將為每個新功能提供一個草圖。完全可以根據(jù)需要將它們組合在一起。

RAM:

RAMWebServer_Basic-基本的Ram WebServer草圖。

RAMWebServer_Control-包含控制代碼和LED指示燈。

*更多內容即將推出!

PROGMEM:

*更多即將推出!

SD:

重要提示:如果您沒有SDFatLib和/或您具有SD.h庫,則SDFat文件將無法編譯。 (包含在Arduino-0022中)

SDFatWebServer_Normal-基本SD卡WebServer草圖

SDFatWebServer_Fast-包含SD卡讀取和客戶端寫入功能之間的緩沖區(qū),從而使上傳速度更快

SDFatWebServer_Normal_404-具有用于自定義的404文件未找到頁面,稱為404error.htm

SDFatWebServer_Fast_404-具有404頁面和緩沖區(qū)的代碼

SDFatWebServer_Normal_LCD-具有LCD屏幕點擊計數(shù)器的代碼

SDFatWebServer_Fast_LCD-具有LCD的代碼和緩沖區(qū)

SDFatWebServer_Normal_Servo-支持Web流量伺服儀表。

SDFatWebServer_Fast_Servo-Servos a nd緩沖區(qū),還有什么更好的方法?

*很快就會有更多的東西?。?!

步驟8:更進一步

好,您現(xiàn)在擁有自己的工作ServDuino Web服務器!!現(xiàn)在您可以嘗試使用不同的代碼,甚至可以編寫自己的代碼,如果很好,請將其發(fā)送給我,我會將其發(fā)布在可指導的位置,并為您效勞?。?!

PROGMEM修復:

服務器喜歡在使用PROGMEM存儲運行時凍結很多。一個簡單的解決方法是使用看門狗定時器,但是問題在于當它復位時,Arduino進入了一個無限循環(huán),因為引導加載程序中有些混亂。最簡單的方法就是使用555定時器作為外部看門狗,但是如果要使其保持基于軟件,則需要ladyada bootloader。這使您可以使用看門狗計時器重置凍結的Arduino?,F(xiàn)在,盡管您在使用軟件時遇到了另一個問題。您仍然需要重置以太網(wǎng)屏蔽。怎么樣?從屏蔽層上剪下復位針,然后將一根導線連接到您選擇的針上?,F(xiàn)在,您只需在setup()中將引腳設置為高電平,然后將其拉低幾微秒,然后再在setup()中初始化以太網(wǎng)芯片即可??撮T狗在RAM和SD選項中也很有用。

SD卡favicon.ico:

當我測試SD卡代碼時,我將USB電纜插入了計算機,并有一個終端監(jiān)視輸入的串行。當有人到達站點時,Arduino會發(fā)送他們剛剛請求的頁面。我注意到,每當有人訪問主頁時,也會有一個favicon.ico的請求。 favicon.ico是地址欄中,該選項卡上以及該站點旁邊的“收藏夾”文件夾中的小圖標。要獲得自己的favicon.ico,您將需要找到一個在線的圖標生成器(使用Google制作),然后將其下載并放在根目錄(而不是任何文件夾)的SD卡中。如果您將網(wǎng)站另存為收藏夾,請刪除收藏夾,然后轉到您的站點。您應該看到它出現(xiàn)。注意:如果您進行繪畫并制作一個并將其另存為.ico,Internet Explorer將拒絕您的收藏夾圖標。它可以在Firefox和Chrome中使用,但不能在ie中使用。如果需要,還可以通過將瀏覽器放入首頁html文件(index.htm)來使瀏覽器請求收藏夾圖標:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web服務器
    +關注

    關注

    0

    文章

    138

    瀏覽量

    24435
  • Arduino
    +關注

    關注

    188

    文章

    6471

    瀏覽量

    187306
收藏 人收藏

    評論

    相關推薦

    使用zabbix監(jiān)控云服務器的方法

    Zabbix環(huán)境 在開始監(jiān)控云服務器之前,你需要準備Zabbix環(huán)境。這包括安裝Zabbix服務器、Zabbix代理和配置Web界面。 2.1 安裝Zabbix服務器 Zabbix
    的頭像 發(fā)表于 11-08 10:47 ?277次閱讀

    海外輕量云服務器是什么意思?如何使用

    海外輕量云服務器是指位于海外數(shù)據(jù)中心內,采用虛擬化技術構建的輕量級云服務器實例。海外輕量云服務器是專為輕量級應用或小型網(wǎng)站設計的,旨在以較低的成本提供高效、穩(wěn)定的云
    的頭像 發(fā)表于 10-30 09:48 ?167次閱讀

    使用Python構建高效的HTTP代理服務器

    構建一個高效的HTTP代理服務器在Python中涉及多個方面,包括性能優(yōu)化、并發(fā)處理、協(xié)議支持(HTTP/HTTPS)、錯誤處理以及日志記錄等。
    的頭像 發(fā)表于 10-23 07:41 ?180次閱讀

    獨立服務器與云服務器的區(qū)別

    隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,企業(yè)對于服務器的需求日益增加,而服務器市場也隨之出現(xiàn)了多種類型的產品,其中最常見的是獨立服務器和云服務器。這兩種服務器
    的頭像 發(fā)表于 10-12 14:34 ?286次閱讀

    海外輕量云服務器是什么

    海外輕量云服務器是指位于海外數(shù)據(jù)中心內,采用虛擬化技術構建的輕量級云服務器實例。與傳統(tǒng)的物理服務器或國內云服務器相比,海外輕量云
    的頭像 發(fā)表于 09-25 10:09 ?261次閱讀

    使用NS1串口服務器HTTP模式上傳服務器數(shù)據(jù)

    HTTP協(xié)議工作于客戶端-服務端架構之上。瀏覽作為HTTP客戶端通過URL向HTTP服務端即Web服務器發(fā)送所有請求。
    的頭像 發(fā)表于 08-30 12:36 ?386次閱讀
    使用NS1串口<b class='flag-5'>服務器</b>HTTP模式上傳<b class='flag-5'>服務器</b>數(shù)據(jù)

    如何使用espconn api實現(xiàn)一個Web服務器

    我正在嘗試使用 espconn api 實現(xiàn)一個 Web 服務器。 在一些請求之后,我收到將此錯誤(err1,超過最大時間值)寫入 uart,下一個espconn_send導致致命異常 (28)。 沒有關于此的文檔... 我該如何解決這個問題?
    發(fā)表于 07-18 07:46

    將ESP8266配置為帶有AT命令的Web服務器,AT命令回復HTTP GET出現(xiàn)錯誤怎么解決?

    我已將ESP8266配置為帶有 AT 命令的 Web 服務器。當瀏覽連接時,它會向我發(fā)送一個請求[i]GET /favicon.ico我想用一個[i]錯誤 404 未找到. 如何在響應 IPD 時發(fā)送的數(shù)據(jù)包中執(zhí)行此操作?
    發(fā)表于 07-16 08:29

    服務器和虛擬服務器的區(qū)別是什么

    服務器和虛擬服務器是兩種常見的服務器類型,它們在很多方面有相似之處,但也有一些關鍵的區(qū)別。本文將詳細介紹云服務器和虛擬服務器的區(qū)別,包括它
    的頭像 發(fā)表于 07-02 09:48 ?845次閱讀

    服務器操作系統(tǒng)有幾種?

    web版適用2G運行內存,都是添加4G運 行內存也只有鑒別2G,中小型企業(yè)大多數(shù)應用標準版,要是想布署集群服務器必須使用商業(yè)版。 2、Windows 2008 Windows server 2008
    發(fā)表于 03-29 16:59

    linux服務器和windows服務器

    Linux服務器和Windows服務器是目前應用最廣泛的兩種服務器操作系統(tǒng)。兩者各有優(yōu)劣,也適用于不同的應用場景。本文將 對Linux服務器和Windows
    發(fā)表于 02-22 15:46

    服務器連接應用解決方案

    、ATM等終端,甚至包括火車系統(tǒng)等大型設備)提供計算或應用服務。根據(jù)服務器所提供的服務類型,可以分為多種形式,如文件服務器、數(shù)據(jù)庫服務器應用
    的頭像 發(fā)表于 02-19 12:38 ?288次閱讀
    <b class='flag-5'>服務器</b>連接應用解決方案

    Apache服務器和Nginx服務器

    Apache和Nginx都是常見的開源Web服務器軟件,它們用于處理HTTP請求并提供網(wǎng)站和應用程序的服務。下面是對Apache和Nginx的一些基本特點的比較: 一、Apache HTTP
    的頭像 發(fā)表于 01-22 16:48 ?577次閱讀

    如何配置單臺服務器

    萬里征途總是從第一步開始的,構建一個復雜系統(tǒng)也是如此。我們從簡單的部分著手,先讓所有的功能都在一個服務器上運行。圖1-1展示了如何配置單臺服務器,讓一切都在其上運行,包括Web應用、數(shù)
    的頭像 發(fā)表于 01-19 10:19 ?645次閱讀
    如何配置單臺<b class='flag-5'>服務器</b>

    獨立服務器和云服務器的區(qū)別

    獨立服務器和云服務器的區(qū)別是很多用戶在選擇服務器時要做的課程,那么獨立服務器和云服務器的區(qū)別有哪些呢?
    的頭像 發(fā)表于 01-17 10:58 ?880次閱讀