Бежична комуникација између електронских уређаја и модула је веома важна како би се они „уклопили“ у свет Интернета ствари. ХТТП протокол и ХТМЛ језик омогућили су пренос података било где у свету, путем Интернета. Већ смо обрадили неке пројекте који користе Ви-Фи са Ардуином, погледајте их до почетка:
- Слање е-поште помоћу Ардуино и ЕСП8266 ВиФи модула
- ВиФи контролисани робот који користи Ардуино
- Контрола РГБ ЛЕД-а помоћу Ардуина и Ви-Фи-ја
Сада у овом упутству градимо програм за слање података на веб користећи Ардуино и Ви-Фи модул. За ово нам је прво потребна ИП адреса било глобалног или локалног сервера, овде ради једноставности и демонстрације користимо локални сервер.
Компоненте потребне:
- Ардуино УНО
- ЕСП8266 Ви-Фи модул
- УСБ кабл
- Повезивање жица
- Лап топ
- Напајање
Ви-Фи модул ЕСП8266:
Цирцуит Цоннецтионс:
Кружни дијаграм за „Објављивање података из Ардуина на веб“ дат је у наставку. Углавном су нам потребни Ардуино и ЕСП8266 Ви-Фи модул. Вцц и ГНД пинови ЕСП8266 су директно повезани са 3.3В, а ГНД Ардуина и ЦХ_ПД је такође повезан са 3.3В. Тк и Рк пинови ЕСП8266 су директно повезани на пин 2 и 3 Ардуина. Софтверска серијска библиотека користи се за омогућавање серијске комуникације на пин 2 и 3 Ардуина. Већ смо детаљно обрадили повезивање Ви-Фи модула ЕСП8266 са Ардуином.
Користећи овде софтверску серијску библиотеку, дозволили смо серијску комуникацију на пин 2 и 3 и поставили их Рк односно Тк. Подразумевано се пин 0 и 1 Ардуина користе за серијску комуникацију, али помоћу библиотеке СофтвареСериал можемо дозволити серијску комуникацију на другим дигиталним пиновима Ардуина.
Напомена: Да бисте гледали одзив ЕСП8266 на серијском монитору, отворите Сериал Монитор Ардуино ИДЕ.
Објашњење:
Пре свега морамо да повежемо наш Ви-Фи модул са Ви-Фи рутером ради мрежне повезаности. Тада ћемо конфигурисати локални сервер, послати податке на Веб и коначно прекинути везу. Овај поступак и наредбе су објашњени у доњим корацима:
1. Прво морамо да тестирамо Ви-Фи модул слањем АТ команде, вратиће одговор који садржи ОК .
2. После овога, треба да изаберемо режим помоћу команде АТ + ЦВМОДЕ = моде_ид , користили смо начин ид = 3. ИД-ови режима:
1 = Режим станице (клијент)
2 = АП режим (домаћин)
3 = АП + режим станице (Да, ЕСП8266 има двоструки режим!)
3. Сада морамо да искључимо наш Ви-Фи модул са претходно повезане Ви-Фи мреже, помоћу команде АТ + ЦВКАП, јер је ЕСП8266 подразумевано аутоматски повезан са било којом претходно доступном Ви-Фи мрежом
4. Након тога, корисник може ресетовати модул помоћу команде АТ + РСТ . Овај корак није обавезан.
5. Сада морамо повезати ЕСП8266 са Ви-Фи рутером помоћу задате команде
6. Сада набавите ИП адресу помоћу задате наредбе:
Вратиће ИП адресу.
7. Сада омогућите мултиплекс режим користећи АТ + ЦИПМУКС = 1 (1 за вишеструку везу и 0 за једну везу)
8. Сада конфигуришите ЕСП8266 као сервер помоћу АТ + ЦИПСЕРВЕР = 1, порт_но (порт може бити 80). Сада је ваш Ви-Фи спреман. Овде се '1' користи за стварање сервера, а '0' за брисање сервера.
9. Коришћењем задате наредбе корисник може слати податке на локални креирани сервер:
Ид = ИД бр. преносне везе
Дужина = Максимална дужина података је 2 кб
10. Након слања ИД-а и дужине на сервер, потребно је да пошаљемо податке попут: Сериал.принтлн („цирцуитдигест@гмаил.цом“);
11. Након слања података потребно је прекинути везу задатом наредбом:
Сада се подаци преносе на локални сервер.
12. Сада укуцајте ИП адресу у адресну траку у веб прегледачу и притисните Ентер. Сада корисник може видети пренесене податке на веб страници.
Потпуни поступак потражите у доњем видео запису.
Кораци за програмирање:
1. Укључите софтверску библиотеку СофтвареСериал за омогућавање серијске комуникације на ПИН 2 и 3 и пријавите неке променљиве и низове.
#инцлуде
2. После овога, морамо да дефинишемо неке функције за извршавање жељених задатака.
У функцији Сетуп () покрећемо уграђену серијску УАРТ комуникацију за ЕСП8266 као цлиент.бегин (9600); брзином преноса од 9600.
воид сетуп () {Сериал.бегин (9600); цлиент.бегин (9600); вифи_инит (); Сериал.принтлн ("Систем спреман.."); }
3. У функцији вифи_инит () , иницијализујемо вифи модул слањем неких наредби попут ресетовања, подешавања режима, повезивања са рутером, конфигурисања везе итд. Ове наредбе су такође објашњене горе у делу описа.
воид вифи_инит () {цоннецт_вифи ("АТ", 100); цоннецт_вифи ("АТ + ЦВМОДЕ = 3", 100); цоннецт_вифи ("АТ + ЦВКАП", 100); цоннецт_вифи ("АТ + РСТ", 5000);…………………
4. У функцији цоннецт_вифи () шаљемо податке о командама на ЕСП8266, а затим читамо одговор са ЕСП8266 Ви-Фи модула.
воид цоннецт_вифи (Стринг цмд, инт т) {инт темп = 0, и = 0; вхиле (1) {Сериал.принтлн (цмд);…………………
5. функција сендвебдата () користи се за слање података на локални сервер или веб страницу.
воид сендвебдата (Стринг вебПаге) {инт ии = 0; вхиле (1) {унсигнед инт л = вебПаге.ленгтх (); Сериал.принт ("АТ + ЦИПСЕНД = 0,"); цлиент.принт ("АТ + ЦИПСЕНД = 0,");…………………
6. функција воид сенд () користи се за слање низова података у функцију сендвебдата () . То ће се даље слати на веб страницу.
воид Сенд () {вебпаге = "
Добродошли у Цирцуит Дигест
"; сендвебдата (веб страница); веб страница = име; веб страница + = дат;…………………7. функција гет_ип () користи се за добијање ИП адресе локално креираног сервера.
8. У функцији воид лооп () , шаљемо упутства кориснику за освежавање странице и проверавамо да ли је сервер повезан. Када корисник освежи или затражи веб страницу, подаци се аутоматски преносе на исту ИП адресу.
воид лооп () {к = 0; Сериал.принтлн („Освежите страницу“); док (к <1000)………………
Помоћу овог процеса можемо приказати било које податке са Ардуина на веб страницу, попут собне температуре и влажности, времена сата, ГПС координате, брзине откуцаја срца итд.