步驟1:您需要什么
我為要使用ESP8266上的html頁面控制arduino的用戶構(gòu)建了這個(gè)項(xiàng)目。該項(xiàng)目的目標(biāo)是創(chuàng)建一個(gè)簡單的方法,使用javascript函數(shù)設(shè)置arduino上的pin值。對(duì)于樣板onclick =“ SetPin(12,1,0)”會(huì)將您的arduino上的Pin 12設(shè)置為High。
對(duì)于本教程,您將需要以下各項(xiàng)才能準(zhǔn)確進(jìn)行。但是,我認(rèn)為它應(yīng)該適用于大多數(shù)arduino和ESP8266組合。但是,要完全按照我在這里的內(nèi)容進(jìn)行操作,您將需要以下組件。
Arduino Uno-應(yīng)與具有串行Rx Tx的任何arduino兼容產(chǎn)品一起使用
Adafruit Huzzah接線板
USB至串行電纜
4個(gè)低功耗LED的
Wire
Wifi路由器
帶有移動(dòng)瀏覽器的手機(jī)
Arduino庫。
第2步:準(zhǔn)備Arduino ID
該項(xiàng)目需要一個(gè)新的arduino庫和一些配置,以節(jié)省時(shí)間。我不會(huì)在每個(gè)屏幕上都放一個(gè)鏡頭,而只是要遍歷您需要配置并使其運(yùn)行的所有內(nèi)容。我試圖使它對(duì)用戶來說盡可能容易。
代碼使用許多庫來工作。首先,我們將專注于為ESP8266設(shè)置arduino,在本示例中,我將使用Adafruit Huzzah,因?yàn)槲野l(fā)現(xiàn)adafruit產(chǎn)品是最可靠的,并獲得最佳支持。只要您不嘗試從Adafruit Discord服務(wù)器獲得支持即可。在支持論壇上獲得幫助會(huì)更好。
無論如何,我在ESP8266上使用以下庫
ESP8266WiFi
WiFiClient
ESP8266WebServer
ArduinoJSON
這不是有關(guān)如何下載的教程然后安裝庫,這些是HUZZAH上使用的庫。因此,請(qǐng)找到并安裝它們。
您還需要安裝HUZZAH的板定義,因此,如果轉(zhuǎn)到FILE》首選項(xiàng)
在顯示“其他板管理器URL”的框中,請(qǐng)?zhí)砑右韵?/p>
http://arduino.esp8266。 com/stable/package_esp8266c 。..
如果您已經(jīng)在此字段中添加了某些內(nèi)容,則請(qǐng)確保在其中添加逗號(hào)以添加其他面板URL。單擊確定,然后單擊確定。
工具》開發(fā)板》開發(fā)板管理器
比通過ESP8266社區(qū)安裝ESP8266來搜索ESP8266。
現(xiàn)在很棒,請(qǐng)確保我們具有使arduino代碼正常工作所需的一切。一個(gè)arduino端arduino本身在本教程中僅使用2個(gè)庫。
SoftwareSerial
ArduinoJSON
您應(yīng)該已經(jīng)具備。
步驟3:準(zhǔn)備ESP8266
現(xiàn)在,我們將代碼放到ESP8266(Adafruit HUZZAH)上并進(jìn)行準(zhǔn)備它用于連接到Arduino。解壓縮HUZZAH的代碼,然后打開草圖。在第11和12行上,將ssid和密碼更改為本地網(wǎng)絡(luò)上的WIFI連接的密碼。您會(huì)注意到,草圖文件和index.h文件有2個(gè)文件。 index.h文件是html的存儲(chǔ)位置,它將在您的手機(jī)中顯示。
為wifi設(shè)置正確的SSID和密碼后,您可以編譯代碼并將其加載到ESP8266上。在HUZZAH上,您必須按住標(biāo)有GPIO0的按鈕,然后單擊“ rest”按鈕,然后放開GPIO0按鈕以使芯片進(jìn)入引導(dǎo)加載程序模式。如果芯片已成功進(jìn)入引導(dǎo)加載程序模式,則紅燈會(huì)亮起,指示芯片處于引導(dǎo)加載程序模式。
要連接到ESP8266,您需要使用串行電纜或USB到串行適配器,或者FDTI芯片。在這種情況下,我將按照說明中的說明使用adafruit的電纜。但是,您可以通過Tx和Rx引腳上的TTL通過幾種方式連接到芯片。我希望查看此內(nèi)容的人知道如何連接到芯片以將代碼加載到芯片上。無論如何,繼續(xù)執(zhí)行此步驟,并使用zip文件中的代碼刷新芯片。
步驟4:準(zhǔn)備Arduino
要將代碼加載到arduino,請(qǐng)將板定義更改為Arduino/Genuino Uno。比解壓縮附加到此步驟的文件。然后將其上傳到ardunio。確實(shí)很簡單,所有的辛苦工作已經(jīng)為您完成。我已經(jīng)經(jīng)歷了一個(gè)錯(cuò)誤處理的試驗(yàn),因此您所要做的就是上傳代碼。
步驟5:一起布線
好,所以對(duì)于布線,我上面有一張上面的圖片。
將Huzzah上的Tx連接到arduino的Pin2。
將Huzzah上的Rx連接到arduino的Pin 3。
我在arduino的引腳2和3上創(chuàng)建了另一個(gè)串行插座,以釋放默認(rèn)的串行控制臺(tái)。
將arduino的引腳V +和En連接到5v。 -adafruit Huzzah內(nèi)置有一個(gè)3.3v穩(wěn)壓器,因此像這樣插入這些引腳可能不適用于所有ESP8266模塊。您可能需要連接自己的穩(wěn)壓器。如果您只是想讓事情輕松進(jìn)行,我建議您使用Huzzah。
將GND連接到arduino的GND
在您的LED的arduino線上的引腳12,11,9,8上,我在這里使用了低功耗LED,因?yàn)樗鼈兿牡?a href="http://ttokpm.com/tags/電流/" target="_blank">電流可能過多為了使此實(shí)驗(yàn)簡單起見,會(huì)消耗太多功率。
比起arduino上的A0模擬引腳0,我已經(jīng)插入了Turpitity測試儀的輸出線。但是,您可以插入幾乎任何會(huì)提供模擬讀數(shù)的傳感器的輸出。
這就是您要做的所有事情。
第6步:訪問網(wǎng)頁
現(xiàn)在,您已經(jīng)連接了arduino,并將所有內(nèi)容加載到板上,您需要能夠查看手機(jī)上的html?,F(xiàn)在,我希望您連接到在Huzzah的代碼中設(shè)置了SSID和密碼的同一WiFi路由器。不需要確定路由器已分配給設(shè)備的IP地址。通常,如果您登錄路由器配置,則應(yīng)該有一個(gè)客戶端列表。這顯示了連接到Wifi連接的所有設(shè)備的IP地址。
但是,如果找不到此IP地址,則可以從arduino拔下插頭,然后再次使用串行電纜運(yùn)行它。如果您在設(shè)備上打開串行控制臺(tái),它將在串行控制臺(tái)中將IP地址打印到該設(shè)備,以防您無法找到其他方式。
無論如何,一旦您用手機(jī)連接到同一Wifi網(wǎng)絡(luò)。而不是將您的移動(dòng)Web瀏覽器指向Huzzah的IP地址??雌饋砜赡芘c此類似。 http://192.168.0.107或類似的東西。
我在其中放置了一個(gè)基本頁面,該頁面允許您打開和關(guān)閉4個(gè)LED以及讀取模擬傳感器的值。
步驟7:使用Javascipt
在ESP8266Code草圖中名為index.h的文件中,它應(yīng)作為arduino編輯器中的單獨(dú)選項(xiàng)卡出現(xiàn)。您可以在這里看到我做的基本示例?;旧纤墓ぷ鞣绞绞沁@樣的。
SetPin(12,1,0); SetPin({Pin Number},{Value 1 High 0 Low},{IsAnalog 1 Yes 0 No})
這會(huì)將數(shù)字引腳12的值設(shè)置為高
SetPin( 4,0,0);
這會(huì)將數(shù)字引腳4的值設(shè)置為低
SetPin(A2,439,1)
這會(huì)將模擬引腳2的值設(shè)置為439
同樣,函數(shù)GetJSON將從引腳返回請(qǐng)求的值,并將其放入以指定div ID表示的html中。
GetJSON(‘A0’,1,‘resp_i’)GetJSON({Pin Number},{IsAnalog 1是0否},{要返回結(jié)果的HTML元素的ID})
這將向arduino發(fā)送請(qǐng)求,要求其提供模擬引腳0的值,并將結(jié)果返回給ID為resp_i的Div
GetJSON(12,0,‘mydiv’);
這將詢問arduino獲取數(shù)字引腳0的值并將結(jié)果返回到具有mydiv和id的html元素
步驟8:支持
我希望我的腳本幫助想要使用它的人。我在這里使用了一個(gè)非?;镜膆tml示例,希望其他人可以探索它無法實(shí)現(xiàn)的所有功能。但是,這應(yīng)該演示如何在沒有html頁面加載和類似性質(zhì)的情況下使用ajax控制arduino。
責(zé)任編輯:wv
-
javascript
+關(guān)注
關(guān)注
0文章
515瀏覽量
53756 -
Arduino
+關(guān)注
關(guān)注
187文章
6458瀏覽量
186507
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論