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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用javascript函數(shù)通過(guò)adafruit Huzzah的ajax回調(diào)來(lái)控制arduino

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-12 08:47 ? 次閱讀

步驟1:您需要什么

我為要使用ESP8266上的html頁(yè)面控制arduino的用戶構(gòu)建了這個(gè)項(xiàng)目。該項(xiàng)目的目標(biāo)是創(chuàng)建一個(gè)簡(jiǎn)單的方法,使用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

模擬濁度測(cè)試儀-任何提供模擬輸出的模擬傳感器都可以使用

Wire

Wifi路由器

帶有移動(dòng)瀏覽器的手機(jī)

Arduino庫(kù)。

第2步:準(zhǔn)備Arduino ID

該項(xiàng)目需要一個(gè)新的arduino庫(kù)和一些配置,以節(jié)省時(shí)間。我不會(huì)在每個(gè)屏幕上都放一個(gè)鏡頭,而只是要遍歷您需要配置并使其運(yùn)行的所有內(nèi)容。我試圖使它對(duì)用戶來(lái)說(shuō)盡可能容易。

代碼使用許多庫(kù)來(lái)工作。首先,我們將專注于為ESP8266設(shè)置arduino,在本示例中,我將使用Adafruit Huzzah,因?yàn)槲野l(fā)現(xiàn)adafruit產(chǎn)品是最可靠的,并獲得最佳支持。只要您不嘗試從Adafruit Discord服務(wù)器獲得支持即可。在支持論壇上獲得幫助會(huì)更好。

無(wú)論如何,我在ESP8266上使用以下庫(kù)

ESP8266WiFi

WiFiClient

ESP8266WebServer

ArduinoJSON

這不是有關(guān)如何下載的教程然后安裝庫(kù),這些是HUZZAH上使用的庫(kù)。因此,請(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。單擊確定,然后單擊確定。

工具》開(kāi)發(fā)板》開(kāi)發(fā)板管理器

比通過(guò)ESP8266社區(qū)安裝ESP8266來(lái)搜索ESP8266。

現(xiàn)在很棒,請(qǐng)確保我們具有使arduino代碼正常工作所需的一切。一個(gè)arduino端arduino本身在本教程中僅使用2個(gè)庫(kù)。

SoftwareSerial

ArduinoJSON

您應(yīng)該已經(jīng)具備。

步驟3:準(zhǔn)備ESP8266

現(xiàn)在,我們將代碼放到ESP8266(Adafruit HUZZAH)上并進(jìn)行準(zhǔn)備它用于連接到Arduino。解壓縮HUZZAH的代碼,然后打開(kāi)草圖。在第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”按鈕,然后放開(kāi)GPIO0按鈕以使芯片進(jìn)入引導(dǎo)加載程序模式。如果芯片已成功進(jìn)入引導(dǎo)加載程序模式,則紅燈會(huì)亮起,指示芯片處于引導(dǎo)加載程序模式。

要連接到ESP8266,您需要使用串行電纜或USB到串行適配器,或者FDTI芯片。在這種情況下,我將按照說(shuō)明中的說(shuō)明使用adafruit的電纜。但是,您可以通過(guò)Tx和Rx引腳上的TTL通過(guò)幾種方式連接到芯片。我希望查看此內(nèi)容的人知道如何連接到芯片以將代碼加載到芯片上。無(wú)論如何,繼續(xù)執(zhí)行此步驟,并使用zip文件中的代碼刷新芯片。

步驟4:準(zhǔn)備Arduino

要將代碼加載到arduino,請(qǐng)將板定義更改為Arduino/Genuino Uno。比解壓縮附加到此步驟的文件。然后將其上傳到ardunio。確實(shí)很簡(jiǎn)單,所有的辛苦工作已經(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://wenjunhu.com/tags/電流/" target="_blank">電流可能過(guò)多為了使此實(shí)驗(yàn)簡(jiǎn)單起見(jiàn),會(huì)消耗太多功率。

比起arduino上的A0模擬引腳0,我已經(jīng)插入了Turpitity測(cè)試儀的輸出線。但是,您可以插入幾乎任何會(huì)提供模擬讀數(shù)的傳感器的輸出。

這就是您要做的所有事情。

第6步:訪問(wèn)網(wǎng)頁(yè)

現(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è)備上打開(kāi)串行控制臺(tái),它將在串行控制臺(tái)中將IP地址打印到該設(shè)備,以防您無(wú)法找到其他方式。

無(wú)論如何,一旦您用手機(jī)連接到同一Wifi網(wǎng)絡(luò)。而不是將您的移動(dòng)Web瀏覽器指向Huzzah的IP地址??雌饋?lái)可能與此類似。 http://192.168.0.107或類似的東西。

我在其中放置了一個(gè)基本頁(yè)面,該頁(yè)面允許您打開(kāi)和關(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’);

這將詢問(wèn)arduino獲取數(shù)字引腳0的值并將結(jié)果返回到具有mydiv和id的html元素

步驟8:支持

我希望我的腳本幫助想要使用它的人。我在這里使用了一個(gè)非?;镜膆tml示例,希望其他人可以探索它無(wú)法實(shí)現(xiàn)的所有功能。但是,這應(yīng)該演示如何在沒(méi)有html頁(yè)面加載和類似性質(zhì)的情況下使用ajax控制arduino。

責(zé)任編輯:wv

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

    關(guān)注

    0

    文章

    519

    瀏覽量

    53888
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6471

    瀏覽量

    187304
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    javascript:void(0) 的作用是什么

    = "javascript:void(0)" onclick = "doSomething()" > Click me a > 在這個(gè)例子中,點(diǎn)擊鏈接時(shí)不會(huì)跳轉(zhuǎn),而是執(zhí)行 doSomething() 函數(shù)。 占位符 : 在某
    的頭像 發(fā)表于 12-31 15:55 ?189次閱讀

    如何使用Arduino實(shí)現(xiàn)CAN總線通信呢

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實(shí)時(shí)性而聞名。Arduino,作為一種流行的開(kāi)源微控制器平臺(tái),可以通過(guò)
    的頭像 發(fā)表于 12-23 09:06 ?259次閱讀

    Adafruit Huzzah無(wú)法從深度睡眠中醒來(lái)怎么辦?

    我有一個(gè)問(wèn)題,Huzzah 沒(méi)有從深度睡眠中醒來(lái)。 GPIO16 跳線到 Reset 引腳,GPIO0 和 GPIO2 都有 10k 上拉電阻到 V3.3。 如果我使用重置按鈕重置它,我會(huì)
    發(fā)表于 07-19 15:04

    ESP8266無(wú)法從致命異常(0)中恢復(fù)怎么辦?

    使用的硬件:Adafruit HUZZAH ESP8266 ESP12 使用的軟件: - Arduino IDE V1.6.7 帶 esp8266 板 V2.0.0 - AT固件(來(lái)自
    發(fā)表于 07-19 10:41

    通過(guò)Arduino IDE對(duì)ESP8266進(jìn)行編程,ESP8266崩潰的原因?

    我正在通過(guò)Arduino IDE對(duì)NodeMCU(ESP8266)進(jìn)行編程,一切正常......我可以在串行監(jiān)視器上看到傳感器讀數(shù)。 但是:一旦我嘗試連接到 IO。ADAFRUIT 使用 lib
    發(fā)表于 07-12 08:28

    ESP8266 Huzzah不響應(yīng)AT命令的原因?

    我的 esp8266 Huzzah 分線板最近使用 esp 閃存工具,使用 NONOS SDK v2.0.0 重新刷新。我認(rèn)為這將允許 esp 在通過(guò) arduino 串行監(jiān)視器發(fā)送 AT 命令
    發(fā)表于 07-11 08:21

    esp8266怎么找到調(diào)函數(shù)被調(diào)用的地方?

    esp8266里的程序怎么運(yùn)行? 在user_init里注冊(cè)了espconn_regist_sentcb,espconn_regist_recvcb這幾個(gè)調(diào)函數(shù),怎么找到這幾個(gè)調(diào)函數(shù)
    發(fā)表于 07-10 08:24

    在IDF3.3.1中同時(shí)使用MQTT和MESH會(huì)導(dǎo)致消息調(diào)沖突,怎么解決?

    在IDF3.3.1中(Arduino),同時(shí)使用MQTT和MESH會(huì)導(dǎo)致消息調(diào)沖突,即同時(shí)使用這兩個(gè)功能,系統(tǒng)會(huì)重啟或者mqtt的消息調(diào)異常。 在高版本(IDF 4.3)例程中,有一個(gè)獨(dú)立
    發(fā)表于 06-21 06:14

    調(diào)函數(shù)(callback)是什么?調(diào)函數(shù)的實(shí)現(xiàn)方法

    調(diào)函數(shù)是一種特殊的函數(shù),它作為參數(shù)傳遞給另一個(gè)函數(shù),并在被調(diào)用函數(shù)執(zhí)行完畢后被調(diào)用。調(diào)
    發(fā)表于 03-12 11:46 ?3008次閱讀

    函數(shù)指針與調(diào)函數(shù)的應(yīng)用實(shí)例

    通常我們說(shuō)的指針變量是指向一個(gè)整型、字符型或數(shù)組等變量,而函數(shù)指針是指向函數(shù)。 函數(shù)指針可以像一般函數(shù)一樣,用于調(diào)用函數(shù)、傳遞參數(shù)。
    的頭像 發(fā)表于 03-07 11:13 ?411次閱讀
    <b class='flag-5'>函數(shù)</b>指針與<b class='flag-5'>回</b>調(diào)<b class='flag-5'>函數(shù)</b>的應(yīng)用實(shí)例

    ??嵌入式中調(diào)函數(shù)的實(shí)現(xiàn)方法

    調(diào)函數(shù)的命名規(guī)范沒(méi)有固定的標(biāo)準(zhǔn),但是根據(jù)通用慣例和編碼規(guī)范,調(diào)函數(shù)的命名應(yīng)該能夠反映函數(shù)的作用和功能,讓其他開(kāi)發(fā)者能夠快速理解并使用。
    發(fā)表于 03-04 14:49 ?741次閱讀

    arduino控制步進(jìn)電機(jī)代碼

    Arduino是一種開(kāi)放源代碼的電路板平臺(tái),它可以用于控制各種不同的電子設(shè)備,包括步進(jìn)電機(jī)。步進(jìn)電機(jī)是一種電動(dòng)機(jī),可以通過(guò)下達(dá)特定的指令來(lái)控制每個(gè)步進(jìn)的角度,從而使電機(jī)旋轉(zhuǎn)到指定的位置
    的頭像 發(fā)表于 02-14 16:29 ?2072次閱讀

    如何使用Arduino控制RGB LED

    在本指南中,您將學(xué)習(xí)如何使用Arduino控制RGB LED。RGB(紅-綠-藍(lán))LED可以通過(guò)混合不同強(qiáng)度的紅、綠、藍(lán)光來(lái)產(chǎn)生多種顏色。您將學(xué)習(xí)創(chuàng)建一個(gè)基本Arduino RGB L
    的頭像 發(fā)表于 02-11 10:28 ?5033次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>RGB LED

    如何使用arduino控制接觸器?

    我將避免鉛酸電池過(guò)載。我想通過(guò)使用近 30A 的接觸器和 arduino uno 板來(lái)控制電池過(guò)載。如何使用arduino控制接觸器?
    發(fā)表于 01-22 07:14

    如何讓Adafruit 320x240 IPS TFT顯示屏在PSoC上運(yùn)行?

    我有一臺(tái) Adafruit 320x240 IPS TFT 顯示屏,希望它能夠使用我的 PSoC 4200 主板繪制圖像。 來(lái)自 Adafruit 的代碼庫(kù)是為 Arduino 設(shè)計(jì)的,我不確定如何讓它在 PSoC 上運(yùn)行。
    發(fā)表于 01-22 06:33