Мазмуну:

HTML/Javascript менен Arduinoңузду башкаруунун оңой жолу: 8 кадам
HTML/Javascript менен Arduinoңузду башкаруунун оңой жолу: 8 кадам

Video: HTML/Javascript менен Arduinoңузду башкаруунун оңой жолу: 8 кадам

Video: HTML/Javascript менен Arduinoңузду башкаруунун оңой жолу: 8 кадам
Video: Для чего нужен язык JavaScript 2024, Сентябрь
Anonim
HTML/Javascript менен Arduinoңузду башкаруунун оңой жолу
HTML/Javascript менен Arduinoңузду башкаруунун оңой жолу

Бул окуу куралы javascript функцияларын колдонуп, адафрут Хуззадан ajax чалуу менен ардуинону кантип башкарууну көрсөтөт. Негизинен сиз html баракчасында javascriptти колдоно аласыз, бул сизге html интерфейстерин ajax чалуусун колдонгон жөнөкөй JavaScript функциялары менен оңой жазууга мүмкүндүк берет. ESP8266га arduino менен байланышууга уруксат берүү. Ошондуктан, казыктардын бардыгын JavaScript функциясынан коюуга болот. Ошо сыяктуу эле, биз JavaScript функциясын колдонуп, каалаган пинден маанини окуй алабыз. Бул html документинен ардуинону башкарууну жеңилдетүүгө жардам берет деп үмүттөнөм. Мен html жаза турган көптөгөн адамдар бар экенин түшүндүм. Алардын көбү уялы телефон колдонмосун java же xcode же башка алкакта жасоого аракет кылгысы келбейт. Бул адамдар үчүн абдан оңой кылат, анткени алардын бардыгын казыктардан баалуулуктарды коюу жана окуу үчүн JavaScript функциясын колдонуу гана керек. Мисалы, жазуу оңой эмеспи

Күйгүзүү

Кнопканы күйгүзүү үчүн. PinMode (12, INPUT) жарыялоого катышуудан башка ардуино программалоо жоктугу сулуулукта; Сиздин орнотуу функцияңызда. Пин жарыяланганга караганда, JavaScript башка бардык нерселер үчүн колдонулушу мүмкүн.

document.onload = {

GetJSON ('A0', 1 'return_json')

}

0 аналогдук пиндин маанисин алуу жана натыйжаны divга кайтаруу үчүн бул эмне кылыш керек. Ошентип, бул адамдарга ардуинону башкарган html баракчаларын түзүүнүн оңой жолу болушу керек. Ардуино казыктарын JavaScript менен орнотууга жана окууга мүмкүнчүлүк берүү үчүн интерфейсти түзүңүз.

1 -кадам: Сизге эмне керек

Мен бул долбоорду ESP8266дагы html баракчасы менен ардуиносун башкарууну каалаган колдонуучулар үчүн кургам. Бул долбоордун максаты - javascript функциясы менен ардуиноңуздагы төөнөгүчтөрдүн маанилерин орнотуунун жөнөкөй ыкмасын түзүү. Мисалы onclick = "SetPin (12, 1, 0)", arduino'ңуздагы 12 -пинди Жогоркуга орнотот.

Бул үйрөткүчтү так аткаруу үчүн сизге төмөнкү нерселер керек болот. Бирок, мен ал көпчүлүк arduino жана ESP8266 айкалыштарында иштеши керек деп ойлойм. Бирок, менде бар нерсени так ээрчүү үчүн сизге төмөнкү компоненттер керек болот.

Arduino Uno - Rx TxAdafruit Huzzah Breakout Board USB сериялык кабелине ээ болгон ар кандай ардуино менен иштеши керек 4 аз кубаттуулуктагы LEDдин аналогдук булганыш тестору - аналогдук чыгарууну камсыз кылган ар кандай аналогдук сенсор Wifi Wifi роутер уюлдук телефонун мобилдик браузер Arduino китепканалары менен аткарат.

2 -кадам: Arduino ID даярдоо

Бул долбоор жаңы arduino китепканаларын жана кээ бир конфигурацияларды жана убакытты талап кылат. Мен ар бир экрандын скриншотун койбойм жана мен муну конфигурациялоо жана иштетүү үчүн сизге керектүү нерселерди иштетем. Мен колдонуучуга мүмкүн болушунча жеңил кылууга аракет кылдым.

Код иштөө үчүн бир катар китепканаларды колдонот. Биринчиден, биз бул мисалда Adafruit Huzzah колдонуп жаткан ESP8266 үчүн arduino орнотууга көңүл бурабыз, анткени мен адафрут азыктарын эң ишенимдүү жана эң жакшы колдоого ээ деп эсептейм. Сиз Adafruit Discord серверинен колдоо алууга аракет кылбасаңыз. Колдоо форумдарында жардам алуудан алда канча жакшы ийгиликке ээ болосуз.

Кандай болбосун, мен ESP8266 боюнча төмөнкү китепканаларды колдонуп жатам

ESP8266WiFi WiFiClient ESP8266WebServer ArduinoJSONБул китепканаларды кантип жүктөө жана орнотуу боюнча окуу куралы эмес, бирок бул HUZZAHда колдонулган китепканалар. Андыктан аларды таап, орнотуп коюңуз. Сиз ошондой эле HUZZAH үчүн такталардын аныктамаларын орнотушуңуз керек, эгер сиз ФИЛИ> Тандоолор бөлүмүнө өтсөңүз, кошумча такталар менеджеринин URL'дери жазылган кутуга төмөнкүлөрдү кошуңуз https://arduino.esp8266.com/stable/package_esp8266c…if бул талаадагы бир нерсе, кошумча такта url кошуу үчүн ал жерге үтүр кошкондугуңузга ишениңиз. Ок басыңыз

Куралдар> Такта> Такта менеджери ESP8266 жамааты тарабынан ESP8266 орноткондон көрө ESP8266 издөөгө караганда.

Эми сонун, бизде arduino кодунун иштеши үчүн керектүү нерселердин бардыгы бар экенине ынанууга мүмкүнчүлүк берет. Ардуинонун бир тарабы ардуинонун өзү бул окуу куралы үчүн 2 китепкананы гана колдонот.

SoftwareSerialArduinoJSONСизде буга чейин болушу керек болчу.

3 -кадам: ESP8266 даярдоо

ESP8266 даярдоо
ESP8266 даярдоо

Эми биз ESP8266 (Adafruit HUZZAH) кодун коюп, Arduino менен туташууга даярдайбыз. HUZZAH кодун ачып, эскизди ачыңыз. 11 жана 12 -саптарда ssid менен сырсөздү жергиликтүү тармагыңыздагы WIFI туташууңузга алмаштырыңыз. Сиз 2 файлдын эскиз файлы жана index.h файлы бар экенин байкайсыз. Index.h файлы html телефонуңузда көрсөтүлө турган жерде сакталат.

Туура SSID менен сырсөздү wifiга койгондон кийин, кодду түзүп, аны ESP8266га жүктөй аласыз. HUZZAHде чипти жүктөгүч режимине коюу үчүн GPIO0 баскычын басып, GPIO0 баскычын коё бербей, калганын басыңыз. Эгерде чип жүктөгүч режимине ийгиликтүү киргизилген болсо, анда чиптин жүктөөчү режимде экенин көрсөткөн кызыл жарык күйөт.

ESP8266га туташуу үчүн сизге сериялык адаптер же USB сериялык адаптер же FDTI чипи керек болот. Бул учурда мен көрсөтмөлөрдө белгиленгендей adafruit кабелин колдонуп жатам. Бирок, Tx жана Rx казыктарында TTLди колдонуп, чипке бир нече жол менен туташа аласыз. Мен муну көргөн адамдар кодду жүктөө үчүн чипке кантип туташууну билишет деп үмүттөнөм. Кандай болбосун, бул кадамга тиркелген ZIP файлындагы коду бар чипти жаркылдатыңыз.

4 -кадам: Arduino даярдоо

Кодду arduinoго жүктөө үчүн, тактаңыздын аныктамасын Arduino/Genuino Uno деп өзгөртүңүз. Бул кадамга тиркелген файлды ачкандан кийин. Андан кийин аны ardunioго жүктөңүз. Абдан жөнөкөй, бардык оор жумуштар сиз үчүн буга чейин жасалган. Мен мурунтан эле сыноо катасынан өттүм, андыктан кодду жүктөө гана жетиштүү.

5 -кадам: Бардыгын бириктирүү

Бардыгын бирге бириктирүү
Бардыгын бирге бириктирүү

Макул, зым үчүн менде бар нерсенин үстүндө сүрөт бар.

Txти Хуззада ардуиного 2 -пинге туташтырыңыз. Мен демейки Сериялык Консолун бошотуу үчүн arduinoдогу 2 жана 3 -казыктарда дагы бир сериялык розетканы жараттым.

Pin V+ жана En туташуу 5v arduino тартып. - Адафрут Хуззада 3.3v чыңалуудагы жөндөгүч бар, андыктан бул казыктарды ушинтип туташтыруу бардык ESP8266 модулдары менен иштебеши мүмкүн. Өзүңүздүн чыңалуу жөндөгүчүңүзгө зым салууңуз керек болушу мүмкүн. Мен жөн гана нерсени оңой иштетүүнү кааласаңыз, Хуззаны колдонууну сунуштайм. GNDны arduino GND менен туташтырыңыз

Светодиоддоруңуздагы arduino зымындагы 12, 11, 9, 8 төөнөгүчтөрдө мен бул жерде аз кубаттуулуктагы светодиоддорду колдондум, анткени өтө көп ток тарткандар бул экспериментти жөнөкөй кармоо үчүн өтө көп энергияны тартып алышы мүмкүн.

Ардуинодогу A0 аналогдук пин 0го караганда, мен Turpitity тестиердин линиясын туташтырдым. Бирок, сиз аналогдук окууну бере турган, негизинен, кандайдыр бир сенсордун чыгарылышын туташтырсаңыз болот. Муну жөнгө салуу үчүн эмне кылышыңыз керек.

6 -кадам: Веб -баракчага кирүү

Эми сизде arduino туташтырылган жана сизде баардык нерселер тактаңызга жүктөлгөн, сиз уюлдук телефонуңуздагы htmlди көрө алышыңыз керек. Эми мен сизден Huzza'дагы кодго SSID жана сырсөздү орноткон wifi роутерине туташууңузду каалайм. Андан кийин роутериңиз сиздин түзмөгүңүзгө кандай IP дарегин бергенин билишиңиз керек. Адатта, роутердин конфигурациясына кирсеңиз, анда кардарлардын тизмеси болушу керек. Бул Wifi туташууңузга туташкан бардык түзмөктөрдүн IP даректерин көрсөтөт. Бирок, эгер сиз бул IP дарегин таба албасаңыз, анда аны ардуинодон ажыратып, кайра сериялык кабель менен иштете аласыз. Эгерде сиз түзмөктө сериялык консолун ачсаңыз, анда башка жол таба албасаңыз, ал IP дарегин сериялык консолго басып чыгарат. Кандай болбосун, уюлдук телефонуңуз менен бир эле Wifi тармагына туташканыңыздан кийин. Мобилдик веб браузериңизди Хуззанын IP дарегине көрсөтүңүз. Кыязы, буга окшош нерсе окшойт. https://192.168.0.107 же абдан окшош нерсе. Ал жерде мен 4 Ledsти күйгүзүүгө жана өчүрүүгө, ошондой эле аналогдук сенсордун маанисин окууга мүмкүндүк бере турган негизги баракты киргиздим.

7 -кадам: Javasciptти колдонуу

ESP8266Code эскизинде index.h деп аталган файлда ал arduino редакторунда өзүнчө өтмөк катары чыгышы керек. Бул жерде мен жасаган негизги мисалды көрө аласыз. Негизинен анын иштөө тартиби мындай.

SetPin (12, 1, 0); SetPin ({Pin Number}, {Value 1 High 0 Low}, {IsAnalog 1 Ооба 0 Жок})

Бул санарип пиндин 12 маанисин жогору коёт

SetPin (4, 0, 0);

Бул цифралык 4 -пиндин маанисин эң төмөнкү деңгээлге коёт

SetPin (A2, 439, 1) Бул Analog Pin 2нин маанисин 439га коёт

Ошо сыяктуу эле, GetJSON функциясы пинден суралган маанини кайтарып берет жана аны көрсөтүлгөн div Id менен өчүрүлгөн htmlге жайгаштырат.

GetJSON ('A0', 1, 'resp_i') GetJSON ({Pin Number}, {IsAnalog 1 Ооба 0 Жок}, {Id Of HTML Element to return})

Бул arduinoго 0 аналогдук пиндин маанисин сурап, натыйжаны resp_iGetJSON ID (12, 0, 'mydiv') менен Divге кайтарууну суранат; Бул arduinoдан 0 цифралык пиндин маанисин алууну жана натыйжаны hdml элементине жана idiv менен iddivге кайтарууну суранат.

8 -кадам: колдоо

Менин сценарийим аны колдонууну каалагандарга жардам берет деп үмүттөнөм. Мен бул жерде эң негизги html мисалын колдондум, башка адамдар анын мен кыла албаган бардык мүмкүнчүлүктөрүн изилдейт деген үмүт менен. Бирок, бул ajaxтин HTML баракчалары жок нерселерди жана ошол мүнөздөгү нерселерди башкарбоо үчүн кантип колдонулаарын көрсөтүшү керек.

Эгерде сизде кандайдыр бир комментарийлер болсо, менден сурануудан тартынба, мен колумдан келишинче жооп берем. Мен анын функционалдык мүмкүнчүлүктөрүн кеңейтким келет, бирок убактым жана акчам түгөндү. Ошентсе да, мен файлдарды ESP8266да эмес, кадимки веб -серверде сактай турган дагы бир күчтүү ишке ашыруу боюнча иштеп жатам.

Менин кодду көрүү үчүн убакыт бөлгөнүңүз үчүн рахмат.

Джон АндерсонЭмейл

Вермонт Интернет Дизайн ЖЧКсы

www.vermontinternetdesign.com

Сунушталууда: