Отже керуватимемо двома реверсивними (обертання в обидві сторони) двигунами: основним і кермовим. Живитимемо їх від акумулятора 3,7 В, але можна і до 12 В в принципі подавати, якщо погодити живлення контролера або організувати його окремим акумулятором.

У силовій частині використовуємо найпростіший мініатюрний драйвер крокового двигуна l9110s або можна використовувати збірку на L293\8 або будь-який не менш потужний, який ви знайдете. Загалом, я все намалював на картинці.

Придбати комплектуючі для проекту можна на аліекспрес:

WiFi контролер використаний мій улюблений NodeMCU 0.9 ESP8266, але можна використовувати менший розміром WeMos D1 mini.

Акумулятор можна зарядити через мікро-USB, після чого він живить драйвер двигунів безпосередньо та WiFi-контролер через підвищує перетворювач до 5 В.

Код програми:

#include
const char* ssid = "ім'я вашої мережі вайфай";
const char* password = "пароль вашої мережі";
int up = 2; //номера дискретних виходів
int down = 14;
int left = 4;
int right = 12;
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
void setup() (
Serial.begin(9600);
delay(10);
//підготовка виходів
pinMode(up, OUTPUT);
digitalWrite(up, 0);
pinMode(down, OUTPUT);
digitalWrite(down, 0);
pinMode(left, OUTPUT);
digitalWrite(left, 0);
pinMode(right, OUTPUT);
digitalWrite(right, 0);

// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to");
Serial.println(ssid);

WiFi.begin(ssid, password);

While (WiFi.status() != WL_CONNECTED) (
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

//Запуск сервера
server.begin();
Serial.println("Server started");
//виводимо IP адресу в монітор порту
Serial.println(WiFi.localIP());
}
void loop() (
//перевіряємо чи підключився клієнт
WiFiClient client = server.available();
if (!client) (
return;
}

//Чекаємо поки клієнт не надішле якісь дані
Serial.println("new client");
while(!client.available())(
delay(1);
}

//Читання першого рядка запиту
String req = client.readStringUntil("r");
Serial.println(req);
client.flush();

//обробка команди
if (req.indexOf("/gpio/up") != -1)(
digitalWrite(up, 1);
digitalWrite(down, 0);
delay(1000);
digitalWrite(up, 0);
digitalWrite(down, 0);
}
else if (req.indexOf("/gpio/down") != -1)(
digitalWrite(up, 0);
digitalWrite(down, 1);
delay(1000);
digitalWrite(up, 0);
digitalWrite(down, 0);
}
else if (req.indexOf("/gpio/left") != -1)(
digitalWrite(up, 1);
digitalWrite(down, 0);
digitalWrite(left, 1);
digitalWrite(right, 0);
delay(1000);
digitalWrite(up, 0);
digitalWrite(down, 0);
digitalWrite(left, 0);
digitalWrite(right, 0);
}
else if (req.indexOf("/gpio/right") != -1)(
digitalWrite(up, 1);
digitalWrite(down, 0);
digitalWrite(left, 0);
digitalWrite(right, 1);
delay(1000);
digitalWrite(up, 0);
digitalWrite(down, 0);
digitalWrite(left, 0);
digitalWrite(right, 0);
}
else (
Serial.println("invalid request");
}

Client.flush();
// підготовка до відповіді
String s = "HTTP/1.1 200 OK\nContent-Type: text/html\r\n\r\n\r\n \r\n";

S += "


UP
";
s += "
LEFT     ";
s += "RIGHT
";
s += "
DOWN";
s += "
\n";
// Send the response to the client
client.print(s);
delay(1);
Serial.println("Client disonnected");
) Програма написана в Arduino IDE. Як налаштувати Arduino IDE для роботи з контролером NodeMCU 0.9 ESP8266подивіться за посиланням. Після завантаження програми в контролер монітором порту можна прочитати IP-адресу, яку плата отримає після з'єднання з вашим WiFi-роутером. У браузері комп'ютера необхідно в адресному рядку прописати цю адресу та перейти на сторінку, яку згенерує програма контролера. Вона виглядатиме так:

DOWN

При натисканні на посилання UP машинка проїде вперед протягом 1сек і зупиниться. При натисканні на DOWN, машинка 1 секунду їхатиме назад. LEFT - двигун повороту поверне колеса вліво і машинка проїде 1 с вліво. Те саме і вправо при натисканні на RIGHT.

Вся ця система буде працювати тільки при налаштованій WiFi-точці доступу (WiFi-роутері), але в майбутньому мені цікаво погратися з контролером NodeMCU 0.9 ESP8266, який сам організовуватиме точку доступу і виконуватиме функцію WEB-сервера, тобто при заході на його айпі з браузера, будемо бачити web-сторінку з елементами управління. Так само цікаво організувати передачу даних з одного такого контролера до іншого за допомогою їхньої автономної WiFi-мережі.

Коли замислювалися про те, щоб керувати будь-якими електронними пристроями за допомогою смартфона? Погодьтеся, керувати роботом або будь-якими іншими пристроями з вашого смартфона було б дуже круто. Пропонуємо простий урок для початківців та чайників про те, як за допомогою Arduino через Bluetooth керувати смартфоном. Якщо вам після цього уроку захочеться познайомитися з Arduino ближче - ви можете знайти книги про нього.

Крок 1. Що нам потрібно

Пристрої

Модуль - Bluetooth Module HC 05/06
Плата - Arduino
Світлодіод (LED)
Резистор - 220Ω
Android-пристрій

Програмне забезпечення

Arduino IDE
Android Studio (насправді не потрібно, тому що додаток для Андроїда ви знайдете нижче)

Крок 2. Як це працює

Зазвичай ми робимо цей крок наприкінці, але щоб ви розуміли до чого ми повинні прийти - подивіться на результат на цьому проміжному кроці. Також нижче ми опублікували відео уроку за кроками.

Крок 3. Починаємо збирати схему

Ланцюг у нашому уроці настільки простий і малий, що нам потрібно зробити всього кілька з'єднань:

Arduino Pins___________Bluetooth Module Pins
RX (Pin 0)___________________TX
TX (Pin 1)___________________RX
5V_________________________VCC
GND_______________________GND

Підключіть мінус світлодіода до GND Arduino, а плюс до контакту 13 через опір 220 Ом - 1 кОм. В цілому, на малюнку нижче все досить наочно.

Не підключайте RX до RX і TX до TX виходи Bluetooth до виходів Arduino, ви не отримаєте жодних даних, тут TX означає "передача", RX означає "прийом".

Крок 4. Завантаження програми в Arduino

Тепер нам потрібно написати програму та завантажити її в наш Arduino. Якщо ви цього поки що не вмієте робити - завантажте книги. Код нижче саме те, що нам потрібно завантажити до Ардуїно.

/* Bluetooh Basic: LED ON OFF * Coder - Mayoogh Girish * Website - http://bit.do/Avishkar * Download the App: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * This program lets you для контролю LED на pin 13 arduino використовуючи bluetooth module */ char data = 0; //Variable for storing received data void setup() ( Serial.begin(9600); //Sets the baud for serial data transmission pinMode(13, OUTPUT); //Sets digital pin 13 as output pin ) void loop() ( if(Serial.available() > 0) // Send data on when you receive data: ( data = Serial.read(); //Read the incoming data and store it in variable data Serial.print(data); // Print Value inside data in Serial monitor Serial.print("\n"); Якщо значення 1 1 LED turns ON else if(data == "0") // Checks whether value of data is equal to 0 digitalWrite(13, LOW); //If value is 0 then LED turns OFF ) )

Крок 5. Як відбувається процес

Модуль HC 05/06 працює послідовним каналом зв'язку. Програма послідовно надсилає дані на модуль Bluetooth, коли ви натискаєте певну клавішу. Bluetooth на іншому кінці отримує дані та відправити на Arduino через TX-з'єднання модуля Bluetooth (RX-з'єднання Arduino) .

Код завантажений Arduino перевіряє отримані дані і порівнює їх. Якщо отримано "1" - світлодіод вмикається та вимикається при отриманні "0". Відкрийте монітор послідовного порту та спостерігайте отримані дані.

Крок 6. Додаток для Андроїд-пристроїв

У цьому уроці ми не будемо торкатися створення програм для пристроїв на основі Андроїда. Ви можете завантажити програму на GitHub.

Як використовувати програму?

Після того як ми підключилися через Bluetooth - нам потрібно завантажити та встановити програму, яка за допомогою смартфона 🙂 керуватиме нашим світлодіодом на відстані. Завантажити програму ви можете безкоштовно на сайті Амазон.ком. Підключаємо смартфон до модуля Bluetooth HC 05/06:

  1. Увімкніть модуль HC 05/0
  2. Шукаємо пристрій
  3. З'єднуємося з HC 05/06, ввівши дефолтний пароль "1234" або "0000" (чотири нуля).

Після цього ми встановлюємо програму на наш смартфон. Відчиняємо його. Вибираємо пристрій – вибираємо модуль Bluetooth зі списку (HC 05/06). Після успішного підключення натисніть кнопку ON для увімкнення світлодіода та кнопку OFF, щоб вимкнути світлодіод. Потім можна натиснути кнопку "Вимкнути", щоб вимкнутись від модуля Bluetooth.

Це був посібник для чайників та початківців з підключення модуля Bluetooth з Arduino. Цей проект можна поліпшити і підняти на більш високий рівень, наприклад, автоматизація будинку через управління смартфоном, керований робот і багато іншого.

Вирішив вивчити Ардуїно. Збудувати «розумний» будинок. З чогось треба починати.
На базі WI-FI модуля ESP8266 можна отримати бездротовий датчик температури, вологості, тиску, освітленості… Треба лише оновити прошивку модуля та підключити датчики. Додаткові мікроконтролери не потрібні.
Майже два роки тому на китайському ринку з'явилися дешеві WI-FI модулі ESP8266 китайського розробника. Це не просто WI-FI модуль, а повноцінний 32-бітний мікроконтролер зі своїм набором GPIO, у тому числі SPI, UART, I2C.

Технічні характеристики:
Процесор: одноядерний Tensilica L106 частотою до 160 МГц.
Підтримувані стандарти WI-FI: 802.11 b/g/n.
Типи шифрування, що підтримуються: WEP, WPA, WPA2.
Підтримувані режими роботи: Клієнт(STA), Точка доступу(AP), Клієнт+Точка доступу(STA+AP).
Напруга живлення 1.7..3.6 Ст.
Споживаний струм: до 215мА в залежності від режиму роботи.
Кількість GPIO: 16 (фактично до 11). Доступно на модулях: ESP-01 – 4, ESP-03 – 7+1, включаючи UART. Існують інші варіанти модулів.
Інтерфейси: 1 ADC, I2C. UART, SPI, PWM.
Зовнішня пам'ять Flash може бути встановлена ​​від 512кБ до 4МБ.
RAM даних 80 кБ, RAM інструкцій – 64 кБ.
Дивимося, як прислали.


Замовив одразу три модулі. Одного для «розумного» будинку буде обмаль.

Ці модулі незвичайні. Мають можливість підключення зовнішньої антени.


Технічна інформація на сторінці магазину відсутня повністю.
Тому орієнтуємось на те, що розташоване на платі та на те, що нарив.
Схема модуля складається з мінімальної кількості деталей: самого чіпа ESP8266,


flash пам'яті 25Q41BT (4M-bit Serial Flash, 512K-byte, 256 bytes per programmable page)

та кварцу на 26МГц.

Пам'яті для серйозних проектів обмаль. Спосіб збільшення нескладний. Достатньо перепаяти МС пам'яті більш ємну. Огляд на Мусьці нещодавно був:

Для простих проектів тієї, що вартує, цілком достатньо.
Для проектування своїх завдань було вирішено використовувати макетницю. Але виникла проблема.


Висновки для програмування модуля були «зайвими». Довелося трохи переробити.

Ліві знімки – оригінал, праворуч після переробки. Нікого не примушую так робити. Просто це моє рішення, мені так зручніше.
Тепер ніщо не заважає і програмувати зручно.


Як писав раніше, ці модулі можуть працювати як із внутрішньою (на печатці) антеною, так і із зовнішньою. Спочатку модуль «налаштований» на роботу із зовнішньою антеною. Для переналаштування доведеться перепаяти перемичку-опір.


Я вирішив перевірити, наскільки різниться коефіцієнт посилення внутрішньої та зовнішньої антени. Саме для цього на одному модулі перепаяв перемичку.
Але виникла ще одна складність: два модулі із трьох прийшли порожніми (не прошиті).
Заодно потренувався.
У нагоді кабель-конвертер (USB To RS232 TTL UART) з одного мого огляду про ВольтАмперВатметр з функцією лічильника PZEM-004.


Звичайний кабель-конвертер.

У мене є більш дешевий варіант. Але цей зручніший (для мене).
Встановлюю модуль на макетку та вганяю в нього скетч-приклад для ESP8266 за допомогою Arduino IDE. Є нюанси. Дивимося схему підключення.

Модуль запитав від зовнішнього джерела. У моєму випадку вузол живлення був у комплекті з макеткою.
При завантаженні скетчу GPIO 00 садимо на Gnd. Для запуску скетчу (після прошивки) GPIO 00 підключаємо на +3.3V.
Підключив, все працює. Залишилося перевірити, у якої антени коефіцієнт посилення вищий.
Встановив на макетку три модулі.
- ESP-201 із внутрішньою антеною.
- ESP-201 з "хвостиком" для зовнішньої антени (йшов у комплекті).
- І ж стандартний модуль на основі ESP8266, куплений за цим посиланням з рік тому:

Для харчування використав PowerBank. Для чистоти експерименту довелося вийти майже на поле. Тим не менш, один несанкціонований роутер все ж таки піймався :) Назва на графіку видалив. Мішатися не буде.
Оцінюватиму силу сигналу за допомогою програми Acrylic Wi-Fi. Програм існує безліч, у тому числі для смартфонів. Але це може відслідковувати всі зміни в динаміці.
У безпосередній близькості до модулів.


Wifi_int_ant - ESP-201 із внутрішньою антеною.
Wifi_ext_ant - ESP-201 з "хвостиком" для зовнішньої антени.
WeatStat - ESP8266,
Відійшов на 10 метрів.


Відійшов ще на 10 метрів.


Ще.


І ще.


Похибки виміру природно присутні. Але загальна картина зрозуміла.
Час оголошувати переможців.
1 місце: ESP-201 із внутрішньою антеною.
2 місце: стандартний модуль на основі ESP8266.
3 місце: ESP-201 з "хвостиком" для зовнішньої антени.
Підпаявся до банку з-під згущеного молока.


Картина реально змінилася.


Справа була не бабині… :)
З виносною антеною сигнал набагато сильніший. Навіть якщо як антена звичайна консервна банка.
Ось, загалом, і все. Для правильного висновку того, що написав, має вистачити. Комусь щось неясно, ставте запитання. Можливо, якісь моменти змарнував.
Сподіваюся, хоч комусь допоміг.
Успіхів!
Далі буде…

Товар надано для написання огляду магазином. Огляд опубліковано відповідно до п.18 Правил сайту.

Планую купити +34 Додати в обране Огляд сподобався +29 +58

Частина 1. Підготовка ESP8266

Навіщо ця стаття? На хабре вже є ряд статей про використання ESP у різних конфігураціях, але чомусь без подробиць про те, як саме все підключається, прошивається та програмується. Типу «я взяв ESP, дві пальчикові батарейки, DHT22, закинув у коробку, потряс годинник і термометр готовий!». У результаті виходить дивно: ті, хто вже працюють з ESP не бачать у зробленому нічого незвичайного, а ті, хто хоче навчитися - не розуміють з чого почати. Тому я вирішив написати докладну статтю про те, як підключається та прошивається ESP, як його пов'язати з Arduino та зовнішнім світом та які проблеми мені траплялися на цьому шляху. Посилання на Aliexpress наводжу лише для уявлення порядку цін та зовнішнього вигляду компонентів.

Отже, у мене було два мікроконтролери, сім різних сенсорів, п'ять джерел живлення, температурний датчик DHT22 і безліч проводків всіх сортів і кольорів, а також безліч опорів, конденсаторів і діодів. Не те щоб усе це було необхідно для термометра, але якщо вже почав займатися мікроелектронікою, то стає важко зупинитися.


живлення

Для роботи ESP8266 потрібна напруга 3.3В і струм не нижче 300мА. На жаль, Arduino Uno не в змозі забезпечити такий струм, як не в змозі забезпечити його і перехідники USB-UART (програматори) типу FT232RL – їхня межа близько 50мА. А отже, доведеться організувати окреме харчування. І краще б, щоб Arduino теж працював від 3.3В, щоб уникнути проблем на кшталт «я подав п'ятивольтовий сигнал на виведення RX модуля ESP, чому пахне паленою пластмасою?».

Є три рішення.

2. Купити готовий модуль із регулятором напруги, що знижує 5В до 3.3В. Мабуть, це найзручніший варіант.

3. Зібрати модуль самому із регулятора AMS1117 та одного танталового конденсатора на 22мкФ.

Я вибрав третій пункт, оскільки мені часто потрібно 3.3В, я жадібний, і я люблю вбудовувати регулятори прямо в блоки живлення.

З AMS1117 все просто: якщо покласти його текстом нагору, то напруга на ногах росте зліва направо: 0(Gnd), 3.3В (Vout), 5В (Vin).
Між нулем і виходом потрібен танталовий конденсатор на 22мкФ (так за інструкцією, що якщо поставити електролітичний - я не перевіряв). У танталового SMD-конденсатора плюс там, де смужка. Трохи жахливого паяння зовсім не призначених для такого варварства SMD-компонентів і:

Обов'язково перевіряйте вихідну напругу. Якщо воно значно менше 3.3В (наприклад, 1.17В) - дайте регулятору охолонути після паяння та перевірте контакти. Якщо поставите конденсатор більше, ніж 22мкФ, то мультиметр може показати вищу напругу.

Чому саме AMS1117? Він широко використовується. Його ви можете знайти майже скрізь, навіть у Arduino Uno, як правило, стоїть AMS1117-5.0.
Якщо ви знаєте щось подібних габаритів і ціни, ще простіше у використанні - напишіть, будь ласка.

Важливий момент. Не знаю вже чому, але AMS1117 вкрай примхливо ставиться до якості з'єднань. Контакти мають бути надійними. Краще – пропаяні. Інакше він на тестах видає 3.3В, але під навантаженням нічого не видає.

Підключення ESP8266

Я вибрав модель 07, оскільки має чудовий металевий екран, який працює як захист від наведень, механічних впливів і як радіатор. Останнє забезпечує різницю між модулем, що згорів, і просто нагрівся. Крім того є гніздо під зовнішню антену.

Щоб чіп запустився, потрібно з'єднати VCC і CH_P через резистор 10кОм. Якщо такого немає, то згодиться будь-який з діапазону 1-20кОм. Крім того, саме модель 07 ще вимагає, щоб GPIO15 (найближчий до GND) був «на землі» (цього на картинці не видно, тому що з'єднання з іншого боку).

Тепер беремо перехідник USB-UART, перемикаємо його на 3.3В та підключаємо RX до TX, TX до RX та GND до «землі» (у мене без цього передача нестабільна). Якщо ви не можете переключити на 3.3В, можна використовувати найпростіший резисторний дільник напруги: з'єднайте ESP RX з TX перехідника через опір в 1кОм, а ESP RX з «землею» через 2кОм. Існує маса складніших і надійніших способів зв'язати 3.3В і 5В, але в даному випадку і так зійде.

І з'єднуємося на швидкості 9600 за потрібним COM-портом (можна подивитися в диспетчері пристроїв).

Я використовую SecureCRT, Putty теж підійде, а поціновувачі Лінукса і так знають, що робити і де дивитися.

(AT+RST перезавантажує чіп)

Якщо нічого не відбувається – вимкніть – увімкніть живлення, якщо все одно нічого не відбувається – перевірте відповідність TX/RX, спробуйте переставити їх місцями або припаяти до чіпа.

Іноді чіп у ході знущань експериментів зависає і тоді його треба знеструмити, у тому числі відключивши і перехідник (наприклад, витягнувши його з USB), оскільки чіпу вистачає навіть крихта живлення, щоб вперто тупити і не працювати.

Іноді фокуси з перехідником вішають порт USB. Можна як тимчасове рішення використовувати інший USB-порт, але взагалі краще перезавантажити комп'ютер.

Іноді змінюється номер COM-порту. Під Linux це можна вирішити за допомогою udev.

Якщо замість тексту приходить сміття, перевірте налаштування швидкості. Деякі старі чіпи працюють на 115 200.

На старті чіп нагрівається, але якщо він реально гарячий і продовжує грітися – відключайте та перевіряйте всі з'єднання. Щоб на корпус не попадало +3.3В, щоб 5В до нього взагалі нікуди не приходили, щоб земля перехідника була з'єднана з землею чіпа. Моделі з металевим екраном дуже важко спалити (але немає нічого неможливого), а на моделі без екранів скаржаться, мовляв, навіть невелика помилка може стати останньою в житті чіпа. Але це я не перевіряв.

Прошивка

Мій вибір - NodeMCU. У неї проблеми з пам'яттю та підтримкою заліза, але це багаторазово окупається простотою коду та легкістю налагодження.

Також будуть потрібні NodeMCU flasher і LuaLoader (останнє - опціонально, є й інші клієнти для роботи з цією прошивкою).

Вимикаємо чіп. Підключаємо GPIO0 до землі та включаємо чіп:

Якщо нічого не відбувається і поля AP MAC/STA MAC порожні – перевірте ще раз, щоб GPIO0 був на землі.
Якщо прошивка почалася, але зависла - подивіться в закладці Log, у мене чомусь конкретно цей чіп відмовився прошиватися на FT232RL, зате без проблем прошився на PL2303HX на швидкості 576000. PL2303HX у вказаному варіанті не має перемикання на 3.3В, щоб ним користуватися потрібно відкрити пластиковий корпус і перепаяти провід з 5V на 3.3V, є варіанти з п'ятьма виходами: 3.3, 5, TX, RX, Gnd.


Зверніть увагу: STA MAC змінився. Підозрюю, що flasher його неправильно показував, але потрібна перевірка.

Для економії сил і нервів можна взяти готовий чи напівготовий варіант.

Є одноразові адаптери із зручним розведенням.
Є

Передавати прошивки, оновлення та інші дані шляхом паяльника та проводів – не найкраще рішення для Ардуїно. Однак мікроконтролери для arduino wi-fi коштують недешево, та й потреба в них є далеко не завжди, чому користувачі вважають за краще їх не використовувати у своїх проектах без потреби.

Але черговий китайський продукт захопив ринок, wi-fi jammer esp8266 своїми руками можна приєднати до плати Ардуїно або іншої системи, і ви отримаєте стабільне з'єднання з низкою інших переваг. Так давайте розберемося з arduino uno wi-fi, і чи варто купувати даний модуль, а також, що взагалі являє собою подібний мікроконтролер на wi-fi ардуїно.

Доступні Wi-Fi модулі для Arduino

Зараз більшість користувачів Ардуїно вже не турбується про ціну подібних девайсів, хоча ще 3 роки тому arduino wi-fi модуль вважався розкішшю. Все це завдяки wi-fi jammer esp8266, виробники якого ввели на ринок зовсім новий продукт, що вражає своєю функціональністю і, водночас є досить дешевим, що внесло вагомий внесок і створило конкуренцію в цьому напрямку.

Таким чином, arduino wi-fi esp8266 зараз вважається найдоступнішим модулем на ринку, як і всі його побратими. Так, ціна на закордонних майданчиках стартує від 2-х доларів, що дозволяє пачками закуповувати дані модулі та не перепрошувати їх тисячу разів, перепаюючи контакти, щоб зберегти працездатність.

Спочатку даний wi-fi модуль Ардуїно використовувався, в основному, як arduino wi-fi shield, так як був найбільш дешевим варіантом і нічим не поступався оригінальному. Пристрій справді практично легендарний, адже вагомих мінусів за його вартість не знайти. Є безліч бібліотек, у тому числі і користувацьких, а також підтримує роботу через Serial шини та найпростіші АТ та АТ+ команди. Завдяки цьому жодної семантики горезвісного С99, як це часто буває з іншими сторонніми мікроконтролерами, вивчати не потрібно.

Відповідно навіть новачок розбереться за секунди, а професіонал зможе застосувати вже заготовлені бібліотеки. Серед інших переваг відзначається:

  1. Процесор на 160 МГц, але він 32-бітний, що накладає певний відбиток на продуктивність. Але варто пам'ятати, що модуль все ж таки застосовується у зв'язці з платами Ардуїно, які самі по собі ріжуть високі частоти і з'їдають більшу частину ресурсів невідомо для чого.
  2. Виробник, що випустив wi-fi модуль esp8266, цікаві проекти на цьому не закінчив, і зараз є ціла лінійка перевіреної якості мікроконтролерів.
  3. Сучасні стандарти захисту. Звичайно, WPA і WPA2 вже давно не такі безпечні, як хотілося б, але їх наявність не може не тішити в такому дешевому контролері.
  4. 16 портів виведення, у тому числі 10-бітний, що дозволяє поекспериментувати із платою.

Що ще важливіше, з коробки на вас чекає постійна пам'ять до 4 мегабайт, залежно від типу плати, а це в рази полегшує роботу з великими бібліотеками і навіть деякими медіа-файлами. Адже на більшості плат Ардуїно і 1 мегабайт вважається недозволеною розкішшю.

Характеристики esp8266 wi-fi безумовно радують, особливо в порівнянні з його дорожчими конкурентами, але у користувача, який раніше не мав досвіду з даними платами, виникне питання про те, як його підключити. Справа в тому, що модуль має набагато більше пінів, ніж звикли бачити новачки, а відповідно, у тих починається паніка. Однак якщо розібратися в ситуації, то насправді в цьому немає нічого складного. Достатньо запастися припоєм та паяльником і просто почитати інструкцію.

Як підключити Wi-Fi модуль до Arduino

Давайте розглянемо підключення esp8266 esp 12e і що таке esp8266 міст wi-fi uart. Адже саме підключення та налаштування модуля викликають найбільше запитань.


Насамперед визначтеся, яка версія мікроконтролера у вас на руках. У першій вбудовуються світлодіоди біля пінів, а на другій, яку почали випускати нещодавно, сигнальні вогні знаходяться біля антени.

Перед підключенням варто підвантажити останню прошивку, що дозволяє збільшувати швидкість обміну пакетами до 9600 одиниць інформації на секунду. А перевіряти з'єднання ми через кабель usb-ttl і відповідний термінал від CoolTerm.


Піни для підключення вищеописаного кабелю стандартні, а ось живлення йде через 3.3 вольт пін з Ардуїно. Важливо пам'ятати, що максимальну силу струму, яку подає плата, неможливо поставити вище 150 мА, а esp8266 esp 07 та esp8266 witty cloud wi-fi модуль для arduino вимагають 240 Ма.

Однак, якщо іншого джерела струму немає, можете використовувати стандартний варіант від Ардуїно, але потужність плати постраждає. Хоча, при не сильному завантаженні, достатньо 70 мА, будьте готові до раптових перезавантажень мікроконтролера в пікові моменти навантаження і пишіть софт відповідно, щоб він фільтрував і розбивав файли, не перевантажуючи плату.


Ще один варіант підключення нижче. Важливо – контакти RX-TX з'єднуються перехрестям. Так як рівні сигналів модуля ESP8266 3.3В, а Arduino 5В нам потрібно використовувати резистивний дільник напруги для перетворення рівня сигналу.

Прописуємо Wi-Fi модуль в Arduino

Як відомо, при належному досвіді можна і шилд esp8266 ex 12e сполучити зі смартфоном, але у новачків і прописка esp8266 esp 12 у системі Ардуїно викликає труднощі. Насправді достатньо підключити модуль та перевірити його працездатність, скинувши кілька штатних команд АТ через меню налагодження.

Наприклад, можна додати миготіння штатним світлодіодом (для схеми підключення вище):

#define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000) ;)

Як тільки плата підтвердить, що бачить мікроконтролер у системі, можна розпочинати повноцінну роботу з ним. Однак варто відзначити, що якщо сама плата Ардуїно використовується в проекті лише для підключення даного контролера - це ірраціонально.

Достатньо USB-UART перетворювача, тому що esp8266 не використовує «мозки» ардуїно, а своєї флеш-пам'яті йому вистачить для зберігання пари базових бібліотек і прошивок. Відповідно, витрачатися зайвий раз на допоміжну плату немає сенсу, якщо ви можете просто підпаяти його до перетворювача і далі використовувати в проекті. При цьому, підключивши допоміжне джерело живлення і не турбуючись, що дані перестануть передаватися в найвідповідальніший момент через нестачу потужності системи.

Важливе зауваження! Для останньої схеми скетч завантажуємо Arduino як зазвичай, але так як модуль ESP8266 підключений до контактів 0 і 1, програмування стає неможливим. Компілятор показуватиме помилку. Від'єднайте дроти ESP8266 від контактів 0 і 1, зробіть програмування, а потім поверніть контакти на місце і натисніть кнопку скидання в Arduino.