Статьи

Управление светодиодной лентой с помощью ESP8266

ESP8266 подключение к Arduino


Компоненты:



Софт:


  • Telnet клиент (putty)
  • Arduino ide
  • Terminal (bray terminal)
  • Библиотека для L298N


1. Для подключения Arduino Uno и ESP8266 необходимо собрать компоненты по следующей схеме.


Подключение ESP8266

К L298N подключаем RGB светодиодную ленту.

К Arduino Uno подключаем ESP8266, FTF232RL, L298N. Питание для Arduino Uno будет подаваться с выхода 5V L298N. Питание ESP8266 подается с выхода 3.3V Arduino Uno. 

На макетной плате выполнен разветвитель шины питания 5V, 12V, 3.3V и GND. Питание для светодиодной ленты подается от шины 12V.


2. Скачиваем скетч и библиотеку для ESP8266. В библиотеке для ESP8266 в файле uartWIFI.h "раскоментируем" (удалить "//") строчку в зависимости от используемой Arduino: #define MEGA для MEGA2560 или #define UNO для Arduino UNO.

В скетче изменяем параметры WI-FI сети на ваши (SSID, PASS).


Исходный код для подключения ESP8266


/*
ESP8266 library

When you use with UNO board, uncomment the follow line in uartWIFI.h.
#define UNO

When you use with MEGA board, uncomment the follow line in uartWIFI.h.
#define MEGA

Connection:
When you use it with UNO board, the connection should be like these:
ESP8266_TX->D0
ESP8266_RX->D1
ESP8266_CH_PD->3.3V
ESP8266_VCC->3.3V
ESP8266_GND->GND

FTDI_RX->D3 //The baud rate of software serial can't be higher that 19200, so we use software serial as a debug port
FTDI_TX->D2

When you use it with MEGA board, the connection should be like these:
ESP8266_TX->RX1(D19)
ESP8266_RX->TX1(D18)
ESP8266_CH_PD->3.3V
ESP8266_VCC->3.3V
ESP8266_GND->GND

When you want to output the debug information, please use DebugSerial. For example,

DebugSerial.println("hello");


Note: The size of message from ESP8266 is too big for arduino sometimes, so the library can't receive the whole buffer because
the size of the hardware serial buffer which is defined in HardwareSerial.h is too small.

Open the file from \arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.h.
See the follow line in the HardwareSerial.h file.

#define SERIAL_BUFFER_SIZE 64

The default size of the buffer is 64. Change it into a bigger number, like 256 or more.
*/
#define GRBLED_PIN_R 9 // пин для канала R
#define GRBLED_PIN_G 10 // пин для канала G
#define GRBLED_PIN_B 11 // пин для канала B

int rgbled_r = 100, rgbled_g = 0, rgbled_b = 0;

#define SSID "test"
#define PASSWORD "123456789"

#include "uartWIFI.h"
#include <SoftwareSerial.h>
WIFI wifi;

extern int chlID; //client id(0-4)

void setup()
{
pinMode(A0, OUTPUT);
digitalWrite(A0, LOW);
wifi.begin();
bool b = wifi.Initialize(STA, SSID, PASSWORD);
if (!b)
{
DebugSerial.println("Init error");
}
delay(8000); //make sure the module can have enough time to get an IP address
String ipstring = wifi.showIP();
DebugSerial.println(ipstring); //show the ip address of module
delay(5000);
wifi.confMux(1);
delay(100);
if (wifi.confServer(1, 8080))
DebugSerial.println("Server is set up");
}
void loop()
{
char buf[100];
int iLen = wifi.ReceiveMessage(buf);
if (iLen > 0)
{
if (strcmp(buf, "0") == 0)
{
analogWrite(GRBLED_PIN_R, 0);
analogWrite(GRBLED_PIN_G, 250);
analogWrite(GRBLED_PIN_B, 250);
}
if (strcmp(buf, "1") == 0)
{
analogWrite(GRBLED_PIN_R, 250);
analogWrite(GRBLED_PIN_G, 0);
analogWrite(GRBLED_PIN_B, 250);
}
if (strcmp(buf, "2") == 0)
{
analogWrite(GRBLED_PIN_R, 250);
analogWrite(GRBLED_PIN_G, 250);
analogWrite(GRBLED_PIN_B, 0);
}
if (strcmp(buf, "3") == 0)
{
analogWrite(GRBLED_PIN_R, 255);
analogWrite(GRBLED_PIN_G, 255);
analogWrite(GRBLED_PIN_B, 255);
}
}
}


Прошиваем Arduino Uno.

3. Запускаем Bray terminal.

Bray terminal Перезагружаем Arduino Uno тактовой кнопкой.

В терминале выводится ip-адрес, его нужно скопировать.

Ваш компьютер и ESP8266 должны быть подключены к одной WI-FI сети.

4. Запускаем Putty. Указываем в настройках Putty скопированный IP-адрес, порт 8080, тип подключения: Telnet. 


Настройка Putty

Нажимаем: "Open".

Putty

В "окне" терминала доступны следующие команды установки цвета RGB ленты:

1 - красный

2 - зеленый

3 - отключено

0 - синий


kkv

А прошивать ESP8266 нужно? или можно непрошитым пользоваться, главное чтобы AT команды поддерживал

Комментировать
Student

здравствуйте, хотел использовать ваш код для управления машинки. Сделал все как написано только без Usb-uart переходник FT232RL (для отладки). выдало module have np response что это значит?

Комментировать
Prepod

Иди учи теорию!!!