Мазмұны:

HTML/Javascript көмегімен Arduino -ны басқару оңай жолы: 8 қадам
HTML/Javascript көмегімен Arduino -ны басқару оңай жолы: 8 қадам

Бейне: HTML/Javascript көмегімен Arduino -ны басқару оңай жолы: 8 қадам

Бейне: HTML/Javascript көмегімен Arduino -ны басқару оңай жолы: 8 қадам
Бейне: ESP32 Tutorial 45- Custom Streamign Server with LED control CAM-3 l SunFounder's ESP32 Learnig kit 2024, Қыркүйек
Anonim
HTML/Javascript көмегімен Arduino -ны басқарудың қарапайым әдісі
HTML/Javascript көмегімен Arduino -ны басқарудың қарапайым әдісі

Бұл оқулық сізге JavaScript функцияларын қолдана отырып, адафрут Хуззадан ajax арқылы қоңырау шалу арқылы ардуиноны қалай басқаруға болатынын көрсетеді. Негізінде сіз javascript -ті html бетінде қолдана аласыз, бұл сізге html интерфейстерін ajax кері шақыруды қолданатын қарапайым JavaScript функциялары арқылы жазуға мүмкіндік береді. ESP8266 -ға arduino -мен байланысуға рұқсат беру. Сондықтан барлық түйреуіштерді JavaScript функциясымен орнатуға болады. Сол сияқты, біз JavaScript функциясын қолдана отырып, кез келген түйреуіштен мәнді оқи аламыз. Бұл html құжаттан arduino басқаруды жеңілдетуге көмектеседі деп үміттенемін. Мен html жаза алатын көптеген адамдар бар деп ойладым. Олардың көпшілігі ұялы телефонға java немесе xcode немесе басқа негізде қосымшаны жасауға тырысқысы келмейді. Бұл адамдарға өте жеңілдетеді, себебі тек түйреуіштерден мәндерді орнату және оқу үшін JavaScript функциясын пайдалану жеткілікті. Мысалы, жазу оңай емес

Қосу

Түймені қосу үшін. PinMode (12, INPUT) жариялаудан басқа басқа arduino бағдарламалауының жоқтығында; Орнату функциясында. Егер пин жарияланған болса, JavaScript қалғандары үшін қолданыла алады.

document.onload = {

GetJSON ('A0', 1 'return_json')

}

Бұл 0 аналогтық түйреуіштің мәнін алу және нәтижені div -ге қайтару үшін қажет. Бұл адамдарға arduino басқаратын html беттерін құрудың қарапайым әдісі болуы керек. Сондай -ақ, arduino түйреуіштерін JavaScript көмегімен орнатуға және оқуға болатындай интерфейс жасаңыз.

1 -қадам: Сізге не қажет

Мен бұл жобаны ESP8266 -да html бетімен arduino -ны басқарғысы келетін пайдаланушылар үшін жасадым. Бұл жобаның мақсаты - javascript функциясымен arduino -ға түйреуіштердің мәндерін орнатудың қарапайым әдісін құру. Мысалы onclick = «SetPin (12, 1, 0)» сіздің arduino -дағы 12 -пинді жоғары деңгейге қояды.

Бұл оқулықты орындау үшін сізге келесі элементтер қажет болады, олар дәл орындалуы керек. Дегенмен, менің ойымша, бұл көптеген arduino және ESP8266 комбинацияларында жұмыс істеуі керек. Алайда менде бар нәрсені ұстану үшін сізге келесі компоненттер қажет болады.

Arduino Uno - сериялы Rx TxAdafruit Huzzah Breakout Board USB сериялық кабель 4 төмен қуатты светодиодты аналогтық бұлыңғырлық тесторы бар кез келген arduino үйлесімді жұмыс істеуі керек - аналогты шығуды қамтамасыз ететін кез келген аналогты сенсор ұялы телефонмен Arduino кітапханасының ұялы телефонымен жұмыс жасайды.

2 -қадам: Arduino идентификаторын дайындау

Бұл жоба уақытты қажет ететін жаңа arduino кітапханаларын және кейбір конфигурацияны қажет етеді. Мен әр экранның скриншотын жасамаймын, мен оны конфигурациялау және оны іске қосу үшін қажет нәрсені іске қосамын. Мен қолданушыға мүмкіндігінше жеңілдетуге тырыстым.

Код жұмыс істеу үшін көптеген кітапханаларды пайдаланады. Алдымен біз осы мысалда Adafruit Huzzah қолданатын ESP8266 үшін arduino орнатуға назар аударамыз, себебі мен adafruit өнімдерін ең сенімді және ең жақсы қолдауды көремін. Егер сіз Adafruit Discord серверінен қолдау алуға тырыспасаңыз. Қолдау форумдарында көмек алу сізге әлдеқайда жақсы болады.

Қалай болғанда да, мен ESP8266 бойынша келесі кітапханаларды қолданамын

ESP8266WiFi WiFiClient ESP8266WebServer ArduinoJSONБұл кітапханаларды жүктеу және орнату туралы нұсқаулық емес, бірақ бұл HUZZAH -да қолданылатын кітапханалар. Сондықтан оларды тауып, орнатыңыз. Сондай -ақ, сіз HUZZAH үшін тақта анықтамаларын орнатуыңыз керек, егер сіз ФАЙЛ> Параметрлер тармағына өтсеңіз, Қосымша тақта менеджерлерінің URL -мекен -жайлары көрсетілген өріске мына мекен -жайды қосыңыз https://arduino.esp8266.com/stable/package_esp8266c… егер сізде бар болса осы өрістегі нәрсе, қосымша тақта url қосу үшін үтірді қосқаныңызға көз жеткізіңіз. Жарайды, басыңыз

Құралдар> тақта> тақталар менеджері ESP8266 қауымдастығы ESP8266 орнатудан гөрі ESP8266 іздеуінен гөрі.

Енді тамаша, бізде arduino кодының жұмыс істеуі үшін қажет нәрсенің бар екеніне көз жеткізуге мүмкіндік береді. Ардуиноның бір жағы arduino өзі бұл оқулық үшін тек 2 кітапхананы пайдаланады.

SoftwareSerialArduinoJSONҚандай болуы керек.

3 -қадам: ESP8266 дайындау

ESP8266 дайындау
ESP8266 дайындау

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

Wi -Fi желісіне SSID мен құпия сөзді дұрыс орнатқаннан кейін сіз кодты құрастырып, оны ESP8266 -ге жүктей аласыз. HUZZAH жүйесінде чипті жүктеуші режиміне қою үшін GPIO0 батырмасын басып тұрып, GPIO0 батырмасын басып тұру керек. Егер чип жүктеуші режиміне сәтті енгізілсе, чиптің жүктеуші режимінде екенін көрсететін қызыл шам жанады.

ESP8266 -ға қосылу үшін сізге сериялық кабель немесе USB -ден сериялық адаптер немесе FDTI чипі қажет болады. Бұл жағдайда мен нұсқаулықта көрсетілгендей adafruit кабелін қолданамын. Дегенмен, Tx және Rx түйреуіштерінде TTL көмегімен чипке бірнеше жолмен қосылуға болады. Мен мұны көрген адамдар кодты жүктеу үшін чипке қосылуды біледі деп үміттенемін. Қалай болғанда да, осы қадамға бекітілген ZIP файлындағы коды бар чипті жыпылықтаңыз.

4 -қадам: Arduino дайындау

Кодты arduino -ға жүктеу үшін тақтаның анықтамасын Arduino/Genuino Uno етіп өзгертіңіз. Осы қадамға бекітілген файлды ашудан гөрі. Оны ardunio -ға жүктеңіз. Шынында да, сіз үшін барлық ауыр жұмыс жасалды. Мен қазірдің өзінде сынақтан өткенмін, қате процесі, сондықтан сіз кодты жүктеуіңіз керек.

5 -қадам: Барлығын бірге қосыңыз

Бәрін бірге қосу
Бәрін бірге қосу

Жақсы, сым үшін менде бар нәрсенің суреті бар.

Hxuza -дағы Tx -ті arduino -дағы 2 -ші түйінге қосыңыз. Huzza'дағы Rx -ті arduino -дағы 3 -ші пинге қосыңыз. Мен әдепкі сериялық консольді босату үшін arduino -дағы 2 және 3 -ші түйреуіштерде басқа сериялық розетка жасадым.

V+ және En түйреуіштерін arduino -дан 5v -ке қосыңыз. - Adafruit Huzzah кернеуі 3,3 вольтты реттегіші бар, сондықтан бұл түйреуіштерді осылайша қосу барлық ESP8266 модульдерімен жұмыс істемеуі мүмкін. Сізге кернеу реттегішін қосу қажет болуы мүмкін. Егер сіз жай ғана жұмыс істегіңіз келсе, мен Хуззаны қолдануды ұсынамын. GND -ді arduino GND -ге қосыңыз

Светодиодтардағы arduino сымындағы 12, 11, 9, 8 түйреуіштерде мен мұнда аз қуатты светодиодтарды қолдандым, себебі тым көп ток тартатындар бұл эксперимент қарапайым болуы үшін тым көп қуат тартуы мүмкін.

Ардуинодағы A0 аналогтық 0 түйреуішінен гөрі, мен Turpitity тестерінің шығыс желісіне қосылдым. Дегенмен, сізге аналогты көрсеткіш беретін кез келген сенсордың шығуын қосуға болады. Мұны істеу үшін сізге бәрін жасау керек.

6 -қадам: веб -бетке кіру

Енді сізде arduino қосылған және сізде тақтаға жүктелген барлық нәрсе бар, сіз ұялы телефоныңыздағы html -ді көре аласыз. Енді сіз SSID мен құпия сөзді Хузза коды бойынша орнатылған Wi -Fi маршрутизаторына қосылғыңыз келеді. Маршрутизатор сіздің құрылғыңызға қандай IP мекенжайын бергенін білуіңіз керек. Әдетте, егер сіз маршрутизатордың конфигурациясына кірсеңіз, онда клиенттер тізімі болуы керек. Бұл Wi -Fi байланысына қосылған барлық құрылғылардың IP мекенжайларын көрсетеді. Алайда, егер сіз бұл IP -адресті таба алмасаңыз, оны arduino -дан ажыратып, оны сериялық кабельмен қайта іске қосуға болады. Егер сіз құрылғыда сериялық консольді ашсаңыз, ол басқа жолды таба алмасаңыз, ол сериялық консольдегі құрылғыға IP мекенжайын басып шығарады. Қалай болғанда да, сіз ұялы телефонмен бір Wifi желісіне қосылғаннан кейін. Мобильді веб -шолғышты Хузза IP -мекен -жайына көрсетіңіз. Мүмкін, бұл ұқсас нәрсе сияқты. https://192.168.0.107 немесе өте ұқсас нәрсе. Онда мен 4 Led қосуға және өшіруге, сондай -ақ аналогтық сенсордың мәнін оқуға мүмкіндік беретін негізгі бетті енгіздім.

7 -қадам: Javascipt пайдалану

ESP8266Code эскизінде index.h деп аталатын файлда ол arduino редакторында бөлек қойынды ретінде шығуы керек. Сіз мұнда мен жасаған негізгі мысалды көре аласыз. Негізінде оның жұмыс істеу әдісі осылай.

SetPin (12, 1, 0); SetPin ({PIN нөмірі}, {Мән 1 Жоғары 0 Төмен}, {IsAnalog 1 Иә 0 Жоқ})

Бұл 12 цифрлық түйреуіш мәнін жоғары деңгейге қояды

SetPin (4, 0, 0);

Бұл цифрлық пин 4 мәнін төменге қояды

SetPin (A2, 439, 1) Бұл аналогтық PIN 2 мәнін 439 -ға орнатады

Дәл осылай GetJSON функциясы түйреуіштен сұралған мәнді қайтарады және оны көрсетілген div идентификаторымен жойылған html -ге орналастырады.

GetJSON ('A0', 1, 'resp_i') GetJSON ({пин нөмірі}, {IsAnalog 1 иә 0 жоқ}, {нәтижені қайтару үшін HTML элементінің идентификаторы})

Бұл arduino -ға 0 аналогтық түйреуіштің мәнін сұрайды және нәтижені resp_iGetJSON идентификаторымен Div -ге қайтарады (12, 0, 'mydiv'); Бұл arduino -дан 0 цифрлық пинінің мәнін алуды сұрайды және нәтижені html элементіне және mydiv идентификаторымен қайтарады.

8 -қадам: қолдау

Менің сценарийім оны қолданғысы келетіндерге көмектеседі деп үміттенемін. Мен html -дің қарапайым мысалын қолдандым, басқа адамдар мен жасай алмайтын барлық мүмкіндіктерді зерттейді деп үміттенемін. Алайда, бұл ajax -ті hdml бет жүктемесіз және осындай сипаттағы заттарсыз arduino басқару үшін қалай қолдануға болатынын көрсетуі керек.

Егер сізде қандай да бір түсініктеме болса, маған жауап беру үшін қолымнан келгеннің бәрін жасаймын. Мен оның функционалдығын кеңейткім келеді, бірақ менің уақытым мен ақшам таусылды. Дегенмен, мен файлдарды ESP8266 -да емес, қарапайым веб -серверде сақтайтын неғұрлым сенімді іске асырумен жұмыс жасаймын.

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

Джон Андерсон Маған хат жіберіңіз

«Вермонт Интернет -Дизайн» жауапкершілігі шектеулі серіктестігі

www.vermontinternetdesign.com

Ұсынылған: