Подключение Arduino UNO к Blynk через ESP01 c использованием UART
- Войдите на сайт для отправки комментариев
Пт, 11/02/2022 - 21:12
Привет знатокам!
Сделал проект с подключением к Blynk используя ESP01 через SoftwareSerial. Вот часть кода:
// Подключение библиотек
#include <BlynkSimpleShieldEsp8266.h> // Библиотека для работы с внешним модулем ESP8266 (ESP-01)
#include <SoftwareSerial.h> // Библиотека програмной реализации обмена по UART-протоколу
#include <OneWire.h> // Библиотека для работы с устройствами типа 1-Wire
// 3 - TX, 4 - RX, соответствует обозначениям на адаптере питания и сигналов модуля ESP-01
SoftwareSerial ESP01(3, 4); // Запуск протокола обмена Arduino c ESP-01
char auth[] = "******************"; // Идентификатор
char ssid[] = "******************"; // Точка доступа
char pass[] = "******************"; // Пароль
ESP8266 wifi(&ESP01); // Подключаем ESP через SoftwareSerial
...
void setup() // Установки
{
ESP01.begin(9600); // Подключаем модуль ESP8266(ESP-01) на заданной скорости
Blynk.begin(auth, wifi, ssid, pass); // Соединяемся с BLYNK
...
Но теперь хотел бы подключить ESP01 через UART, может кто подкинет идею, как это реализовать.
Проект работает, свои функции выполняет, но для расширения функционала не хватает 2-х цифровых выводов. Вот и задумал переключить ESP01 на UART...
Никто не ответил...
Кое-что нарыл, вот написал:
#define ser1 Serial #include <BlynkSimpleShieldEsp8266.h> // Библиотека для работы с внешним модулем ESP8266 (ESP-01) char auth[] = "*********************"; // Идентификатор char ssid[] = "*********************"; // Точка доступа char pass[] = "*********************"; // Пароль WidgetLED Led_A(V3); // Подключаем виртуальный светодиод V3 unsigned long A_Timer; // Значение миллисекунд bool B_Start = true; // Флаг первичной посылки состояния #define BLYNK_GREEN "#00FF00" // Определение цвета ЗЕЛЁНЫЙ #define BLYNK_YELLOW "#FFFF00" // Определение цвета ЖЁЛТЫЙ #define BLYNK_RED "#FF0000" // Определение цвета КРАСНЫЙ #define BLYNK_BLUE "#0000FF" // Определение цвета СИНИЙ void setup() // Установки { Serial.begin(9600); delay(10); // Задержка 10 mS Blynk.begin(auth, ser1, ssid, pass); // Соединяемся с BLYNK Led_A.on(); // Включаем виртуальный светодиод 2, чтобы видеть цвета A_Timer=millis(); } void loop() // Основная программа { Blynk.run(); // Запуск BLYNK if (millis() - A_Timer >= 1000) { if (B_Start) { Led_A.setColor(BLYNK_RED); // Индикатор КРАСНЫЙ } else { Led_A.setColor(BLYNK_GREEN); // Индикатор ЗЕЛЁНЫЙ } B_Start=not B_Start; } }Но ругается на этапе компиляции на HardwareSerial:
неправильно сделали, поэтому и ругается.
HardwareSerial надо передавать в метод строки 13 (по первому коду) - туда. где у вас был СофтСериал. А вы его зачем-то в строку 21 пихаете, оттого и ошибки
То есть примерно так
Надеюсь я Вас правильно понял?
нет, неправильно. Обьект Serial у вас уже есть, второй создавать не надо. И пины тоже не надо, там выбора нет.
Итого строка 1 не нужна вовсе, а в строке 5 просто меняете на указатель на Serial
Только имейте в виду, что теперь при заливке скетча вам надо будет каждый раз отключать ESP
То есть
Да уж, "Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам..."
То есть
Да уж, "Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам..."
опять нет. Вы что. Си совсем не знаете?
HardwareSerial - это имя класса, а вам надо передать ссылку на конкретный экземпляр.
давайте думайте, одну строчку-то в состоянии сами понять? Я за вас писать не буду.
И на гайвере вы какую-то чушь пишете...
Да, я таки и понял, что Вы мне на Гайвере отвечаете...
в основном тут. Там других советчиков хватает