Научная статья на тему 'Wireless data exchange for IoT devices'

Wireless data exchange for IoT devices Текст научной статьи по специальности «Медицинские технологии»

CC BY
143
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Sciences of Europe
Ключевые слова
IOT / WI-FI / ARDUINO / ESP 8266 / БЕЗДРОТОВА КОМУНіКАЦіЯ / C++ / WIRELESS COMMUNICATION

Аннотация научной статьи по медицинским технологиям, автор научной работы — Samoilenko M.

The article is presented as a technical overview solution of wireless communication between IoT devices. So little cheap Wi-Fi modules can be used as a boost in developing IoT devices and expanding its capabilities. Here Wi-Fi module is presented and there is a C++ program how to work with Wi-Fi.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Wireless data exchange for IoT devices»

Sciences of Europe # 49, (2020)_41

БЕЗПРОВЩНИЙ ОБМ1Н ДАНИМИ ДЛЯ nP^TPOÏB IOT

Самойленко М.Ю.

астрант

Кшвський нацюнальний yHieepcumem iMeHi Тараса Шевченка

Кшв

WIRELESS DATA EXCHANGE FOR IOT DEVICES

Samoilenko M.

Postgraduate student Taras Shevchenko National University of Kyiv

Kyiv

АНОТАЦ1Я

Стаття мютить техшчний огляд ргшення бездротово! передачi даних м1ж IoT пристроями. Малi за ро-3MipoM i дешевi Wi - Fi модулi можуть значно пришвидшити розробку IoT пристро1в та розширити !х мо-жливостi. В статп зображена робота з Wi - Fi модулем та програма для взаемоди з Wi - Fi модулем.

ABSTRACT

The article is presented as a technical overview solution of wireless communication between IoT devices. So little cheap Wi - Fi modules can be used as a boost in developing IoT devices and expanding its capabilities. Here Wi - Fi module is presented and there is a C++ program how to work with Wi - Fi.

Ключовi слова: IoT, Wi - Fi, Arduino, ESP 8266, бездротова комушкащя, C++.

Keywords: IoT, Wi - Fi, Arduino, ESP 8266, wireless communication, C++.

IoT [1] - це обчислювальш засоби, що взаемо-дшть з шформащею, отриманою за допомогою кь нцевих пристро!в та здатш обмшюватися шформащею без, або з мшмальною людською взаемодiею. Тобто, мозком IoT може бути мшроконтролер, або комп'ютер що мае вщповвдну обчислювальну поту-жнiсть, виражену у характеристиках процесора, оперативно! та постiйноi пам'яп та iнтерфейсами обмiну даними з кшцевими пристроями. В якостi шнцевих пристро!в можуть бути датчики вологи, свила, температури, механiчних та шдуктивних взаемодiй.

Обмiн даними для IoT пристро!в е дротовим та бездротовим. Дротовий спосiб передачi даних може вадбутися за допомогою послвдовного протоколу

передачi даних [2], де обмш даними вiдбуваeться по кожному биу iнформацiï в кожен момент часу. Для бездротового обмiну даних для IoT використову-ються наступнi технологи: радю [3], Bluetooth [4], Wi-Fi.

Розглянемо керуючу частину пристрою штер-нету речей - мiкроконтролер Arduino Uno [5], що е електронною платформою, використовуеться для створення самостшних рiшень та мае 14 цифрових входiв та виходiв, для пвд'еднання шнцевих девай-сiв. Arduino Uno [рисунок 1] мае наступи обчислювальш потужносп: 2Кб оперативноï пам'яп, 32Кб постiйноï флеш пам'ятi, та процесор ATmega328P [6]. Свгтлодюд розташований поруч з буквою L [рисунок 1].

Рисунок 1

Wi - Fi модуль 8266 ESP-01S [7, рисунок 2] - пристрш для створення Wi - Fi мереж, може керуватись мшроконтролером за допомогою AT команд [8] через протокол послщовно! передачi даних. AT команди використовуються для взаемоди з пристроем, який мае власний набiр команд.

Рисунок 2

Також для реалiзацil послвдовного протоколу передачi даних для Wi - Fi модулю 8266 ESP - 01S використовуеться адаптер ESP-01 [рисунок 3]. Адаптер використовуеться для стабшзацп напруги Wi - Fi модулю гид час роботи.

Рисунок 3

Вiдповiдно, рисунок поеднання Wi - Fi модулю 8266 ESP - 01S та адаптеру виглядае наступним чином [рисунок 4].

Рисунок 4

Розглянемо практичний приклад програму-вання Wi - Fi для ршення на базi мiкроконтролера Arduino Uno та кшцевого пристрою Wi - Fi модуль 8266 ESP - 01S, який приеднаний до мжроконтро-лера. Дане ршення дозволить розглянути обмiн да-ними м1ж даним IoT та шшим пристроем через Wi

- Fi мережу, створену IoT пристроем. Для тесту-вання комушкаци буде використовуватись бли-мання свiтлодiоду на мiкроконгролерi Arduino Uno. В ролi IoT-клiента буде комп'ютер, пiдключений через Wi - Fi мережу IoT, з програмою Putty [9], через яку змшюеться перюд блимання свгтлодюду мi-

кроконтролера. Wi - Fi модуль 8266 ESP-01S вщ-повщно шд'еднаний до цифрових виходiв Arduino Uno наступним чином: 6 та 7 цифровий вихщ Arduino Uno приеднаш до ТХ та RX buxojíb адаптеру.

також подключено живлення 5В та GND для зами-кання електричного кола [рисунок 5].

Ж

Рисунок 5

Перейдемо до програмування Wi - Fi за допо-могою Arduino IDE [10]. Мова програмування C/C++ [11]. Спочатку оголошусться об'ект для пос-л1довного обм1ну даними з Wi - Fi модулем, де в1д-повщно цифров1 виходи номер 6 i номер 7 ввд Arduino з'еднуються з TX та RX виходами Wi - Fi адаптера.

#include <SoftwareSerial.h> SoftwareSerial esp8266(6,7);

Пiд час виконання функци setup() вiдбуваeться iнiцiалiзацiя Wi - Fi модулю за допомогою виконання AT команд, що передаються через функцш sendData(команда, граничний час виконання), яка шкапсулюе передачу даних до Wi - Fi модулю.

Програмний код:

String sendData(String command, const int timeout)

{

String response = ""; esp8266.print(command); long int time = millis();

while( (time+timeout) > millis()) {

while(esp8266.available()) {

char c = esp8266.read(); response+=c;

}

}

return response;

}

void setup() {

// Обмш даними з Wi - Fi модулем налаштований на частот 115200 бод. esp8266.begin(115200);

// LED_BUILTIN - це цифровий вихщ що керуе свiтлодiодом,

//pinMode - налаштування цифрового виходу.

pinMode(LED_BUILTIN, OUTPUT);

// AT+RST - перезапуск Wi - Fi модулю

sendData("AT+RST\r\n",2000);

//Встановлення модулю у режимi точки доступу

sendData ("AT+CWMODE=2\r\n",2000);

//Встановлення даних для точки доступу myApp, ввдкрита точка даступу. sendData("AT+CWSAP_CUR=\"myApp\",\"123456\",5,0\r\n",2000); //режим встанновлення тiльки одного з'еднання sendData("AT+CIPMUX=1\r\n",2000); //створення серверу на 80 порту

sendData("AT+CIPSERVER=1,80\r\n",2000); }

//Змшна blinkingPause для паузи мiж блиманням дiода int blinkingPause = 1;

//Дал циктчно виконуеться функция loop():

void loop() {

//Включения дiоду

digitalWrite(LED_BUILTIN, HIGH); //пауза на blinkingPause *1000 мiлiсекунд delay(blinkingPause *1000); //Виключення дiоду digitalWrite(LED_BUILTIN, LOW); delay(1000); //якщо доступнi послiдовнi даиi

if(esp8266.available()) {

//в разi отримання даних

if(esp8266.find("+IPD,")) {

delay(1000);

//Отримуемо iдентифiкатор з'еднання connectionId для ввдповщ int connectionId = esp8266.read()-48; String webpage = "OK"; String response = "";

while(esp8266.available()) {

char c = esp8266.read(); //читаемо посимвольш данi response+=c;

}

//новий час на паузу, що переданий за допомогою Putty

blinkingPause = response.substring(response.indexOf(":") + 1).toInt(); //пишемо вiдповiдь

String cipSend = "AT+CIPSEND=" + connectionId + "," + webpage.length() + "\r\n"; //вiдправляемо вiдповiдь та закриваемо з'еднання sendData(cipSend,1000); sendData(webpage,1000); String closeCommand = "AT+CIPCLOSE="; closeCommand+=connectionId + "\r\n";

sendData(closeCommand,2000); }

}

}

Перевiрка роботи Wi - Fi модулю - у Wi - Fi мереж1 myApp, необхвдно вiдкрити Putty, ввести ip адресу - 192.168.4.1 та порт - 80, вщкрити з'еднання [рисунок 6].

Рисунок 6

Шсля вщкриття з'еднання вводимо у термiналi 10, що позначае 10 секунд свтння дiоду, i отримуемо вщповщь ОК, що означае, що налаштування змiнилися та дiод буде мати перюд блимання 10 секунд [рисунок 7].

Рисунок 7

В якосп висновку варто зазначити, що за допомогою Wi - Fi модулю 8266 ESP-01S робиться обмш даними у Wi - Fi мереж1, що дозволяе робити конструкторсьш IoT ршення бшьш рiзноманiтнi-шими. Зважаючи на щну модулю 3 долари США [12], варто усввдомити, що така щна полегшуе ви-нахiд та розробку IoT пристро!в.

Лiтература

1. https://www.internetsociety.org/wp-content/uploads/2017/08/ISOC-IoT-Overview-20151221-en.pdf

2. https ://learn. sparkfun.com/tutorials/serial-communication/all

3. https://www.britannica.com/technology/radio -technology

4. https://www.sciencedirect.com/topics/engine ering/bluetooth

5. https://www.arduino.cc/

6. https ://doc.arduino .ua/ru/hardware/Uno

7. https://nurdspace.nl/ESP8266

8. https://www.espressif.com/sites/default/files/ documentation/4a-esp8266_at_instruction_set_en.pdf

9. https://www.putty.org/

10. https://www.arduino.cc/en/main/software

11. https://isocpp.org/

12. https://controller.in.ua/esp-01-esp8266-wi-fi

i Надоели баннеры? Вы всегда можете отключить рекламу.