Sisukord:

Arduino juhtimine lihtsal viisil HTML/Javascripti abil: 8 sammu
Arduino juhtimine lihtsal viisil HTML/Javascripti abil: 8 sammu

Video: Arduino juhtimine lihtsal viisil HTML/Javascripti abil: 8 sammu

Video: Arduino juhtimine lihtsal viisil HTML/Javascripti abil: 8 sammu
Video: Полный курс React Query за час | TanStack Query v4 для начинающих 2024, September
Anonim
Arduino juhtimine lihtsal viisil HTML/Javascripti abil
Arduino juhtimine lihtsal viisil HTML/Javascripti abil

See õpetus näitab teile, kuidas juhtida arduinot ajax -tagasikutsumisega adafruit Huzzah'st, kasutades ainult javascripti funktsioone. Põhimõtteliselt saate html -lehel kasutada JavaScripti, mis võimaldab teil hõlpsasti kirjutada html -liideseid lihtsate JavaScripti funktsioonidega, mis kasutavad ajax -tagasihelistamist. Et võimaldada ESP8266 -l arduinoga suhelda. Seetõttu saab kõiki tihvte seadistada JavaScripti funktsioonist. Samuti saame väärtust lugeda mis tahes tihvtilt, kasutades JavaScripti funktsiooni. Loodan, et see aitab lihtsustada arduino juhtimist html -dokumendist. Arvasin, et seal on palju inimesi, kes oskavad html -i kirjutada. Enamik neist ei taha vaeva näha, et luua mobiiltelefonirakendust java või xcode või mõne muu raamistikuga. See muudab inimeste jaoks väga lihtsaks, sest neil pole vaja teha muud kui kasutada JavaScripti funktsiooni, et määrata ja lugeda nööpnõeladelt väärtusi. Näiteks pole palju lihtsam kirjutada

Lülita sisse

Selleks, et nupp sisse lülitada. Ilu on selles, et peale pinMode (12, INPUT) deklareerimise ei kaasne muud arduino programmeerimist; Teie seadistusfunktsioonis. Kuni nööpnõel on deklareeritud, saab javascripti kasutada kõige muu jaoks.

document.onload = {

GetJSON ('A0', 1 'return_json')

}

See on kõik, mida peate tegema, et saada analoogpinna 0 väärtus ja tagastada tulemus div -i. Nii et see peaks olema lihtne viis, kuidas inimesed saaksid luua hdml -lehti, mis juhivad arduinot. Nagu ka liidese loomine, et arduino tihvte saaks JavaScriptiga seadistada ja lugeda.

Samm: mida vajate

Ehitasin selle projekti kasutajatele, kes soovivad oma arduinot juhtida ESP8266 html -lehega. Selle projekti eesmärk on luua lihtne meetod JavaScripti funktsiooniga arduino nööpnõelte väärtuste määramiseks. Näiteks onclick = "SetPin (12, 1, 0)" määrab teie arduino tihvti 12 kõrgeks.

Selle õpetuse jaoks vajate täpselt järgimiseks järgmisi üksusi. Eeldan siiski, et see peaks töötama enamiku arduino ja ESP8266 kombinatsioonide puhul. Kuid selleks, et järgida täpselt seda, mis mul siin on, vajate järgmisi komponente.

Arduino Uno - peaks töötama mis tahes arduinoga ühilduva seadmega, millel on seeria Rx TxAdafruit Huzzah Breakout Board USB to Serial Cable 4 väikese võimsusega LED -i analoogse hägususe tester - mis tahes analoogandurit, mis pakub analoogväljundit, teeb traadiga WiFi -ruuteri mobiiltelefon Arduino mobiilibrauseri abil.

Samm: Arduino ID ettevalmistamine

See projekt nõuab aja huvides uusi arduino raamatukogusid ja teatud konfiguratsiooni. Ma ei pane igast ekraanist ekraanipilti ja lähen lihtsalt läbi selle, mida vajate selle konfigureerimiseks ja selle käivitamiseks. Proovisin seda kasutajale võimalikult lihtsaks teha.

Kood kasutab töötamiseks mitmeid raamatukogusid. Esiteks keskendume arduino seadistamisele ESP8266 jaoks. Ma kasutan selles näites Adafruit Huzzah'i, sest minu arvates on adafruit tooted kõige usaldusväärsemad ja toetavad kõige paremini. Kuni te ei püüa Adafruit Discordi serverist tuge saada. Teil on palju parem õnne tugifoorumites abi saamisel.

Igatahes kasutan ESP8266 -s järgmisi teeke

ESP8266WiFi WiFiClient ESP8266WebServer ArduinoJSONT See ei ole õpetus raamatukogude allalaadimiseks ja installimiseks, kuid need on HUZZAH -is kasutatavad teegid. Nii et otsige need üles ja installige. Peate installima ka HUZZAHi plaadimääratlused, nii et kui valite Fail> Eelistused, lisage lahtrisse Täiendavate tahvlite halduri URL -id järgmine aadress: https://arduino.esp8266.com/stable/package_esp8266c…. midagi selles valdkonnas, siis veenduge, et lisate sinna koma, et lisada täiendav tahvli URL. Selleks klõpsake nuppu OK

Tööriistad> Juhtpaneel> Tahvlite haldur Otsige ESP8266 kui installige ESP8266 by ESP8266 Community.

Suurepärane võimaldab nüüd veenduda, et meil on olemas kõik vajalik arduino koodi toimimiseks. Üks arduino külg, kasutab arduino ise selle õpetuse jaoks ainult kahte raamatukogu.

TarkvaraSerialArduinoJSONMis peaks juba olemas olema.

Samm: ESP8266 ettevalmistamine

ESP8266 ettevalmistamine
ESP8266 ettevalmistamine

Nüüd paneme koodi ESP8266 (Adafruit HUZZAH) peale ja valmistame selle ette Arduinoga ühenduse loomiseks. Pakkige HUZZAH -i kood lahti ja avage visand. Muutke ridadel 11 ja 12 ssid ja parool WIFI -ühenduse parooliks kohalikus võrgus. Märkate, et eskiisfail ja fail index.h sisaldavad kahte faili. Fail index.h on koht, kuhu salvestatakse html, mis kuvatakse teie telefonis.

Kui olete oma WiFi -le õige SSID -i ja parooli seadistanud, saate koodi kompileerida ja oma ESP8266 -sse laadida. HUZZAH -s peate hoidma all nuppu GPIO0 ja seejärel klõpsama puhkenuppu ning seejärel vabastama GPIO0 nupust, et lülitada kiip alglaaduri režiimi. Kui kiip on edukalt alglaadimisrežiimi lülitatud, süttib punane tuli, mis näitab, et kiip on alglaaduri režiimis.

ESP8266 -ga ühenduse loomiseks vajate jadakaablit või USB -jadaadapterit või FDTI -kiipi. Sel juhul kasutan Adafruit'i kaablit, nagu juhistes märgitud. Siiski saate kiibiga ühendada mitmel viisil, kasutades TTL -i Tx- ja Rx -tihvtidel. Loodan, et seda vaatavad inimesed teavad, kuidas ühendada kiip, et sellele kood laadida. Igal juhul jätkake ja vilgutage kiibi selle sammuga lisatud ZIP -faili koodiga.

Samm: Arduino ettevalmistamine

Koodi arduinole laadimiseks muutke oma tahvli definitsiooniks Arduino/Genuino Uno. Pakkige selle sammu juurde lisatud fail lahti. Laadige see arduniole üles. Päris lihtne, kogu raske töö on teie jaoks juba tehtud. Olen juba proovimise ja vea protsessi läbinud, nii et peate vaid koodi üles laadima.

Samm: ühendage kõik kokku

Juhtmed kõik koos
Juhtmed kõik koos

Ok, nii et juhtmestiku jaoks on mul ülaltoodud pilt sellest, mis mul siin on.

Ühendage Tx Huzzah'il arduino tihvtiga 2. Ühendage Huxa Rx ühendus arduino pin 3 -ga. Lõin vaikeseeriakonsooli vabastamiseks arduino tihvtidele 2 ja 3 teise jadapesa.

Ühendage tihvtid V+ ja En 5 V -ga arduinost. - Adafruit Huzzahil on sisseehitatud pinge 3,3 V regulaator, nii et nende tihvtide ühendamine ei pruugi kõigi ESP8266 moodulitega töötada. Võimalik, et peate ühendama oma pingeregulaatori. Soovitan Huzzah'i kasutada, kui soovite lihtsalt asja hõlpsalt tööle saada. Ühendage GND arduino GND -ga

Teie valgusdioodide arduino juhtme tihvtidel 12, 11, 9, 8 kasutasin siin väikese võimsusega LED -e, sest need, mis tõmbavad liiga palju voolu, võivad selle katse lihtsuse huvides liiga palju energiat tarbida.

Ardoino A0 analoogpistikul 0 olen oma Turpitity testeri väljundliini ühendanud. Siiski saate ühendada põhimõtteliselt mis tahes anduri väljundi, mis annab teile analoognäidu. See on kõik, mida peate selle ühendamiseks tegema.

6. toiming: juurdepääs veebilehele

Nüüd, kui olete arduino juhtmega ühendatud ja olete kõik oma tahvlitele laadinud, peate saama oma mobiiltelefonis html -i vaadata. Nüüd tahan, et te ühendaksite sama WiFi -ruuteriga, mille jaoks määrasite Huzzah'i koodis SSID ja parooli. Peate välja selgitama, millise IP -aadressi teie ruuter on teie seadmele määranud. Tavaliselt, kui logite oma ruuteri konfiguratsiooni sisse, peaks olema klientide loend. See näitab kõigi teie WiFi -ühendusega ühendatud seadmete IP -aadresse. Kui te aga ei leia seda IP -aadressi, saate selle arduinost lahti ühendada ja jadakaabliga uuesti käivitada. Kui avate seadmes jadakonsooli, prindib see jadakonsoolis olevale seadmele IP -aadressi juhuks, kui te ei leia seda muul viisil. Igatahes, kui olete oma mobiiltelefoniga ühendatud sama WiFi -võrguga. Seejärel suunake oma mobiilne veebibrauser Huzzah ip -aadressile. Mis ilmselt näeb välja midagi sarnast. https://192.168.0.107 või midagi väga sarnast. Seal panin põhilehe, mis võimaldab teil 4 LED -i sisse ja välja lülitada ning lugeda analooganduri väärtust.

Samm: Javascipti kasutamine

ESP8266Code'i visandis failis nimega index.h peaks see arduino redaktoris ilmuma eraldi vahekaardina. Siin näete põhinäidet, mille tegin. Põhimõtteliselt töötab see niimoodi.

SetPin (12, 1, 0); SetPin ({Pin Number}, {Value 1 High 0 Low}, {IsAnalog 1 Yes 0 No})

See seab digitaalse tihvti 12 väärtuse kõrgeks

SetPin (4, 0, 0);

See seab digitaalse tihvti 4 väärtuse madalaks

SetPin (A2, 439, 1) See määrab analoogpinna 2 väärtuseks 439

Sarnaselt tagastab funktsioon GetJSON tihvtilt nõutud väärtuse ja asetab selle määratud div ID -ga HTML -elementi.

GetJSON ('A0', 1, 'resp_i') GetJSON ({Pin Number}, {IsAnalog 1 Yes 0 No}, {Id Of HTML Element to return result})

See saadab arduinole päringu analoogpinna 0 väärtuse kohta ja tagastab tulemuse Div koos ID -ga resp_iGetJSON (12, 0, 'mydiv'); See palub arduinol saada digitaalse tihvti 0 väärtus ja tagastab tulemuse html -elementi koos mydiv -i ja ID -ga

8. samm: tugi

Loodan, et minu skript aitab neid, kes soovivad seda kasutada. Kasutasin siin väga lihtsat html -näidet lootuses, et teised inimesed uurivad kõiki selle võimalusi, mida mina ei saa. See peaks aga näitama, kuidas ajaxit saab kasutada arduino juhtimiseks ilma html -lehe laadimiseta ja seda laadi asjadeta.

Kui teil on kommentaare, küsige julgelt, ma annan endast parima, et vastata. Tahaksin selle funktsionaalsust veel veidi laiendada, kuid aeg ja raha said otsa. Siiski töötan selle jõulisema rakendamise kallal, mis salvestab failid tavalisele veebiserverile, mitte ESP8266 -le.

Täname, et leidsite aega minu koodi vaatamiseks.

John Anderson Saatke mulle e -kiri

Vermont Internet Design LLC

www.vermontinternetdesign.com

Soovitan: