Arduino Uno + ESP8266 12E + Blynk + Реле
Я начал приключение с Arduino и программированием 2 месяца назад. Итак, я новичок в этой теме. До сих пор я реализовал несколько проектов, в том числе Blynk, связанных с Arduino. Последний был похож на описанный в теме, но я использовал ENC28j60 вместо модуля ESP8266, и тогда он работал нормально.
Проблема началась с модуля ESP.
Краткое описание проекта:
Основная идея состоит в том, чтобы управлять освещением переменного тока с поддержкой приложения Blynk. Прежде всего, я сделал соединение в соответствии с рисунком ниже: В качестве источника питания я использовал зарядное устройство USB для телефона, соединенное с пошаговым преобразователем напряжения, чтобы в итоге получить источник 3,3 В. Я дополнительно подключил Arduino Uno с релейным модулем так:
Arduino ====> Релейный модуль
5V ====> VCC
GND ====> GND
Пин 5 ====> IN1
Все, что вы можете увидеть на картинках ниже (извините за качество)
И на данный момент я сделал почти каждый шаг (с таким количеством проблем). Здесь я имею в виду:
1. Я проверил, связан ли arduino с модулем ESP через последовательный порт -> системный отчет "готов".
2. Я загружаю ниже (шаблон) эскиз Arduino IDE для своего проекта:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "***";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "***";
char pass[] = "***";
void setup()
{
// Debug console--
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
И вот наконец я запустил новый проект в Блынке. Я установил Arduino Uno в качестве аппаратной модели и WiFi в качестве типа подключения. Затем я добавил кнопку и установил для выхода значение D5.
И вот (ближе к концу проекта) я столкнулся с проблемой. После нажатия кнопки подключения (в правом верхнем углу) я получаю информацию о том, что устройство подключено (онлайн). Потом, когда я пытаюсь нажать кнопку Active Relay - ничего не происходит. Что еще Я пробовал с разными булавками на Arduino с одинаковыми результатами. И я не знаю почему (вероятно, потому что у меня все еще небольшой запас знаний), но когда я устанавливаю выходное значение кнопки на D2 - после подключения, когда я нажимаю его, тогда диод на модуле ESP выключается и включается. Я пытался найти решение на этом форуме и во многих других местах за последние 3 дня, но безрезультатно. Вот почему я решил попросить вас о помощи. Знаете ли вы, что я сделал не так или что я должен добавить в проект, чтобы соединение между Blynk и реле работало правильно?
Напишите, если вам понадобится более подробная информация с моей стороны.
2 ответа
Почему вы используете как uno, так и esp? Вы можете просто использовать esp вместо комбо, это сделает ваш проект менее энергоемким и меньшим. Если вам интересно использовать только esp, вы можете воспользоваться платами nodemcu (которые можно найти менее чем за 4 евро в Китае).
У меня есть несколько примеров эскизов для этого (с температурой и влажностью), если вы хотите взглянуть на них.
Когда вы смотрите на картинки и код, которые вы используете, вы заметили, что ESP высветил эскиз Arduino. Это хорошо, если вы хотите активировать реле напрямую с ESP (без Arduino UNO). Тогда вам просто нужно подключить реле к ESP вместо Arduino. К сожалению, не все релейные платы могут работать с логикой 3,3 В, которую обеспечивает ESP, но, возможно, вам повезет.
С другой стороны, если вы хотите использовать Arduino UNO с ESP в качестве Wi-Fi, вам придется перепрограммировать ESP оригинальной прошивкой AT. Затем вы можете подключить его к Arduino и использовать эскиз, который выглядит примерно так.
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
char auth[] = "YourAuthToken";
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(2, 3);
// pin 3 connected to ESP RX and pin 2 connected to ESP TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 115200
ESP8266 wifi(&EspSerial);
void setup()
{
// Debug console
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop()
{
Blynk.run();
}
И вы должны удалить связь между RST и GND на Arduino