Мазмұны:

Arduino мен Ethernet -ті бастау: 8 қадам
Arduino мен Ethernet -ті бастау: 8 қадам

Бейне: Arduino мен Ethernet -ті бастау: 8 қадам

Бейне: Arduino мен Ethernet -ті бастау: 8 қадам
Бейне: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Шілде
Anonim
Arduino мен Ethernet -ті бастау
Arduino мен Ethernet -ті бастау

Сіздің Arduino сыртқы әлеммен сымды Ethernet қосылымы арқылы оңай байланыса алады. Бірақ біз бастамас бұрын, сізде компьютерлік желі туралы негізгі түсінік бар деп есептеледі, мысалы, компьютерлерді RJ45 кабелі бар хабқа/маршрутизаторға қосу, IP және MAC мекенжайы және т.б. Сонымен қатар, мұнда Ethernet туралы жақсы қорытынды бар.

Сізге суретке сәйкес W5100 Ethernet контроллері IC (барлығы дерлік) қолданатын Ethernet қалқаны бар Arduino Uno немесе үйлесімді тақта қажет болады.

Сонымен қатар, тақтаны сыртқы тұрақты ток розеткасы арқылы қуаттандыру қажет болады - W5100 IC USB қуатына қарағанда көбірек токты пайдаланады. 9В 1.5А штепсельдік қаптамасы/қабырға сүйегі жеткілікті болады.

1 -қадам:

Кескін
Кескін

Соңында - қалқандар қызып кетеді - сондықтан ұзақ қолданғаннан кейін W5100 -ге тиіп кетуден сақ болыңыз. Егер сіз сенімді болмасаңыз - бұл W5100 IC.

2 -қадам:

Ethernet қосылған Arduino қосылғаннан кейін және сыртқы қуат қосылғаннан кейін-оның жұмыс істеп тұрғанын тексеру жақсы. Arduino IDE ашыңыз және Файл> Мысалдар> Ethernet> Веб -серверді таңдаңыз. Бұл веб -браузердегі аналогтық кірістен алынған деректерді көрсететін қарапайым эскизді жүктейді. Бірақ оны әлі жүктемеңіз, ол сәл өзгерісті қажет етеді.

Сіз Ethernet қалқанының IP -мекен -жайын көрсетуіңіз керек, ол эскиздің ішінде жасалады. Бұл қарапайым, жолға өтіңіз:

IPAddress ip (10, 1, 1, 77);

Және оны өзіңіздің жеке параметрлеріңізге сәйкес өзгертіңіз. Мысалы, біздің үйде маршрутизатордың IP -мекен -жайы - 10.1.1.1, принтер - 10.1.1.50 және барлық дербес компьютерлер… 50 төмен. Сондықтан мен қалқан IP -ін 10.1.1.77 -ге жолды өзгерту арқылы орнатамын:

байт mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

Бірақ егер сізде бір ғана қалқан болса, оны қалдырыңыз. MAC мекенжайы сіздің қолданыстағы аппараттық құралмен бірдей болуы мүмкін статистикалық сирек кездесетін мүмкіндік болуы мүмкін, сондықтан оны өзгертудің тағы бір уақыты болар еді.

3 -қадам:

Кескін
Кескін

Бірақ егер сізде бір ғана қалқан болса, оны қалдырыңыз. MAC мекенжайы сіздің қолданыстағы аппараттық құралмен бірдей болуы мүмкін статистикалық сирек кездесетін мүмкіндік болуы мүмкін, сондықтан оны өзгертудің тағы бір уақыты болар еді.

Өзгерістер енгізгеннен кейін, эскизді сақтап, жүктеңіз. Енді веб -шолғышты ашып, нобайға енгізілген IP -мекен -жайға өтіңіз, сонда сізге суретке ұқсас нәрсе ұсынылады.

Не болып жатыр?

Arduino аналогты кірістермен өлшенетін мәндері бар қарапайым веб -бетті ұсынуға бағдарламаланған. Жаңартылған мәндерді алу үшін шолғышты жаңартуға болады, бұл кезде Ethernet қалқандары 10 ~ 13 цифрлық түйреуіштерді пайдаланатынын ескеріңіз, сондықтан оларды басқа ештеңе үшін пайдалана алмайсыз. Кейбір Arduino Ethernet қалқандарында microSD картасының ұясы болуы мүмкін, ол басқа цифрлық түйреуішті қолданады - сондықтан қайсысы екенін құжаттамамен тексеріңіз.

4 -қадам:

Дегенмен, енді біз Ethernet қалқаны жұмыс істеп тұрғанын көріп, пайдалы нәрсеге көшуге болады. Алдыңғы мысалды қарапайым түрде бөліп алайық және желіде неғұрлым қызықты деректерді қалай таратуға және көрсетуге болатынын көрейік. Анықтама үшін Ethernet-ке қатысты барлық функцияларды Ethernet Arduino кітапханасы басқарады. Егер сіз біз қолданған алдыңғы эскизді зерттесеңіз, онда сізді қызықтыратын бөлім:

for (int analogChannel = 0; analogChannel <6; analogChannel ++) {int sensorReading = analogRead (analogChannel); client.print («аналогтық енгізу»); client.print (analogChannel); client.print («бұл»); client.print (sensorReading); client.println («»); } client.println («»);

Эскиздің бұл бөлімі таныс болуы керек деп үміттенеміз - serial.print () қалай қолданғанымызды есіңізде сақтаңыз; өткенде сериялық монитор қорабына деректерді жіберу кезінде? Енді біз дәл солай жасай аламыз, бірақ деректерді Ethernet қалқанынан веб -браузерге жіберу - басқаша айтқанда, веб -беттің өте қарапайым түрі. оқылатын форматтағы шығыс - HTML коды. Мен веб -сайт жасаушы емеспін (!), Сондықтан HTML -ге көп кірмеймін.

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

client.print («бұл»);

Client.print (); бізге мәтінді немесе деректерді веб -бетке қайта жіберуге мүмкіндік береді. Бұл serial.print () сияқты жұмыс істейді, сондықтан мұнда жаңа ештеңе жоқ. Деректер түрін serial.print () сияқты дәл көрсетуге болады. Әрине, сіз оны деректерді жіберу үшін де пайдалана аласыз. Басқа пайдалы желі:

client.println («»);

ол HTML -кодты жаңа жолды бастауды талап ететін веб -шолғышқа жібереді. Арбаның қайтуына/жаңа жолға себеп болатын бөлігі -

бұл жаңа жолға арналған HTML коды (немесе «тег»).

Егер сіз веб -беттің нақтырақ дисплейлерін жасасаңыз, client.print () ішіне басқа HTML тегтерін енгізуге болады; мәлімдеме. Егер сіз HTML командалары туралы көбірек білгіңіз келсе, мұнда жақсы оқу сайты.

Ақырында - эскиз деректерді сұралған кезде, яғни веб -шолғыштан сұрау алған кезде ғана жіберетінін ескеріңіз.

5 -қадам: Arduino -ға Интернет арқылы кіру

Arduino -ға Интернет арқылы кіру
Arduino -ға Интернет арқылы кіру

Әзірше бәрі жақсы. Егер сіз Arduino -ға жергілікті желіден тыс кіргіңіз келсе ше?

Сізге тұрақты IP -адрес қажет болады, яғни сіздің интернет -провайдеріңіздің қосылымыңызға тағайындаған IP -мекен -жайы өзгеріссіз қалуы керек. Егер сізде тұрақты IP болмаса, модемді/маршрутизаторды біржола қалдырған кезде, IP өзгермейді. Алайда бұл оңтайлы шешім емес.

Егер сіздің провайдеріңіз сізге тұрақты IP ұсына алмаса, сіз динамикалық DNS ұсынатын ұйымды қолдана отырып, жобаны жалғастыра аласыз. Бұл ұйымдар сізге нөмірдің орнына өзіңіздің статикалық IP -хост атыңызды ұсынады (мысалы, mojo.monkeynuts.com), өзгеріп тұрған IP -адресті қадағалаңыз және оны жаңа хост атауымен байланыстырыңыз. Мен жинай алатын мәліметтерге сүйенсек, сіздің модем осы DDNS қызметтерін қолдауы керек (… үшін кіріктірілген клиенті бар).

Мысал ретінде екі компания-No-IP жәнеDynDNS.com. Назар аударыңыз, мен бұл екеуін қолданған жоқпын, олар тек мысал ретінде ұсынылған. Енді сіздің IP -адресті табу үшін, әдетте, оны маршрутизатордың басқару бетіне кіру арқылы табуға болады - бұл әдетте 192.168.0.1, бірақ басқаша болуы мүмкін. Провайдерден немесе провайдерден олар жабдықты жеткізгенін тексеріңіз. Бұл мысал үшін, егер мен веб -шолғышқа 10.1.1.1 енгізсем және модемді басқару құпия сөзін енгізгеннен кейін, келесі экран суретке сәйкес көрсетіледі.

6 -қадам:

Кескін
Кескін

Сіз іздеген нәрсе - сіздің WAN IP мекенжайы, оны жоғарыдағы суреттен көріп отырсыз. Пранкерлерді аулақ ұстау үшін мен кейбір мекен -жайымды қаралап тастадым.

Келесі нәрсе-порт-бағыттауды қосу. Бұл маршрутизаторға сыртқы әлемнен келетін сұраныстарды қайда бағыттау керектігін айтады. Модем мұндай сұранысты алған кезде, біз бұл сұранысты Ethernet қалқанының порт нөміріне жібергіміз келеді. Қолдану:

EthernetServer сервері (125);

Біздің эскиздегі функция порт нөмірін 125 етіп қойды. Әр модемнің конфигурация экраны әр түрлі болады, бірақ мысал ретінде суретте біреуін келтіруге болады.

7 -қадам:

Кескін
Кескін

Сіз жоғарыдағы суреттегі бірінші жолдан көре аласыз, кіріс порт нөмірлері 125, ал Ethernet қалқанының IP мекенжайы 10.1.1.77 - эскиздегідей.

Параметрлерді сақтағаннан кейін біз дайынбыз. Менің Ethernet қалқанның сыртқы мекенжайы WAN: 125 болады, сондықтан Arduino -ға кіру үшін мен WAN мекен -жайымды: 125 арқылы қашықтағы веб -құрылғының шолғышына енгіземін, ол үйдегі жалғыз Ethernet аппаратурасымен байланысады.

Сонымен қатар, 125 портының кіріс сұрауларына «ашық» болуына мүмкіндік беру үшін модемнің брандмауэр параметрлерін өзгерту қажет болуы мүмкін. Мұны істеу туралы қосымша ақпарат алу үшін модем құжаттамасын тексеріңіз. Енді бос әлемдегі Интернетке қосылған кез келген құрылғыдан мен WAN мен порт нөмірін URL өрісіне енгізіп, нәтижелерді ала аламын. Мысалы, LTE мобильді деректері арқылы Интернетке қосылған кезде телефоннан.

Бұл кезеңде сіз енді Arduino жасаған қарапайым веб -бетте деректерді көрсете аласыз және оған кез келген жерден Интернетке шектеусіз кіре аласыз. Бұрынғы Arduino біліміңізбен енді сенсорлардан немесе эскиздің басқа бөліктерінен алынған мәліметтерді қолдана аласыз және оны іздеу үшін көрсете аласыз.

8 -қадам: Сенсорлық мәліметтерді веб -бетте көрсету

Сенсорлық мәліметтерді веб -бетте көрсету
Сенсорлық мәліметтерді веб -бетте көрсету

Сенсорлық мәліметтерді веб -бетте көрсетуге мысал ретінде, арзан және танымал температура мен ылғалдылық датчигін - DHT22 қолданайық. Сізге DHT22 Arduino кітапханасын орнату қажет, оны осы беттен табуға болады. Егер сіз DHT22 -мен бірінші рет болсаңыз, оның қалай жұмыс істейтінін түсіну үшін кітапханаға енгізілген мысал эскизімен тәжірибе жасаңыз.

DHT22 -ді деректер түйрегішімен Arduino D2 -ге, Винді 5В -ге, ал GND -ді… GND -ге қосыңыз. Енді біздің эскизіміз үшін - температура мен ылғалдылықты веб -бетте көрсету. Егер сіз HTML -ді білмесеңіз, сіз кодты жасау үшін осындай онлайн қызметтерді пайдалана аласыз, содан кейін оны нобайға өзгертуге болады. Төмендегі мысалда DHT22 температурасы мен ылғалдылығы туралы мәліметтер қарапайым веб -бетте беріледі:

#«SPI.h» қосу#«Ethernet.h» қосу

// DHT22 сенсоры үшін

#«DHT.h» қосу #DHTPIN 2 анықтау #DHTTYPE DHT22 анықтау

// Төменде контроллер үшін MAC мекенжайы мен IP мекенжайын енгізіңіз.

// IP мекенжайы жергілікті желіге байланысты болады: byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; IPAddress ip (10, 1, 1, 77);

// Ethernet серверінің кітапханасын инициализациялау

// IP мекенжайы мен қолданғыңыз келетін портпен // (80 порт HTTP үшін әдепкі болып табылады): EthernetServer сервері (125); DHT dht (DHTPIN, DHTTYPE);

жарамсыз орнату ()

{dht.begin (); // Сериялық байланысты ашыңыз және порт ашылғанша күтіңіз: Serial.begin (9600); while (! сериялық) {; // сериялық порт қосылуын күтіңіз. Тек Леонардо үшін қажет} // Ethernet қосылымын және серверді іске қосыңыз: Ethernet.begin (mac, ip); server.begin (); Serial.print («сервер бар»); Serial.println (Ethernet.localIP ()); }

бос цикл ()

{// кіріс клиенттерін тыңдау EthernetClient client = server.available (); if (клиент) {Serial.println («жаңа клиент»); // http сұрауы бос жолмен аяқталады логикалық currentLineIsBlank = true; while (client.connected ()) {if (client.available ()) {char c = client.read (); Serial.write (c); // егер сіз жолдың соңына жеткен болсаңыз (жаңа жолдың // таңбасын алсаңыз) және жол бос болса, http сұранысы аяқталды, // сондықтан сіз жауап жібере аласыз, егер (c == 'n' && currentLineIsBlank) {// client.println стандартты http жауап тақырыбын жіберу («HTTP/1.1 200 OK»); client.println («Мазмұн түрі: мәтін/html»); client.println («Қосылу: жабу»); // client.println жауабы аяқталғаннан кейін байланыс жабылады («Жаңарту: 30»); // бетті әр 30 секунд сайын автоматты түрде жаңартыңыз client.println (); client.println («»);

client.println («»);

// DHT22 сенсорынан деректерді алу

float h = dht.readHumidity (); float t = dht.readTemperature (); Serial.println (t); Serial.println (h);

// осы жерден біз веб -бетті құру үшін HTML кодты енгізе аламыз

client.print («Office ауа райы

Жұмыс температурасы - «);

client.print (t);

client.print («Цельсий бойынша градус

);

client.print («

Ылғалдылық - «);

client.print (h);

client.print («пайыз

);

client.print («

Бет әр 30 секунд сайын жаңартылады <

. );

үзіліс;

} if (c == 'n') {// сіз жаңа жолды бастап жатырсыз currentLineIsBlank = true; } else if (c! = 'r') {// сіз ағымдағы жолда таңба алдыңыз currentLineIsBlank = false; }}} // веб -шолғышқа деректердің кідірісін алуға уақыт беріңіз (1); // байланысты жабыңыз: client.stop (); Serial.println («клиент ажыратылды»); }}

Бұл біз бұрын қолданған IDE веб -серверінің үлгі нобайының модификациясы - бірнеше өзгертулермен. Біріншіден, веб -бет әр 30 секунд сайын автоматты түрде жаңартылады - бұл параметр жолда орнатылады:

client.println («Жаңарту: 30»); // әр 30 секунд сайын бетті автоматты түрде жаңартыңыз

… Және біздің веб -бетке арналған реттелетін HTML сызықтан басталады:

// осы жерден біз веб -бетті құру үшін HTML кодты енгізе аламыз

Сізге қажет орналасуды жасау үшін клиент.print () функциясының ішіне қажетті HTML кірістіруге болады. Ақырында - жұмыстағы мысал эскизінің скриншоты.

Міне, сізде Arduino -ның сыртқы әлеммен қарым -қатынас жасауының тағы бір пайдалы әдісі бар. Бұл хабарламаны pmdway.com жеткізеді - бұл өндірушілер мен электроника әуесқойлары үшін, бүкіл әлем бойынша ақысыз жеткізу.

Ұсынылған: