Arduino Uno + ESP8266 12E + Blynk + Relay

时间:2017-06-24 11:43:21

标签: arduino-uno relay arduino-esp8266 blynk

我在2个月前开始使用arduino和编程进行冒险。所以,我是这个主题的新手。 到目前为止,我意识到很少有项目,包括Blynk与arduino相关联。最后一个与主题中描述的类似,但我使用的是ENC28j60而不是ESP8266模块,然后它工作正常。

问题始于ESP模块。

项目简述:

主要思想是使用Blynk App支持控制AC灯。 首先,我根据下图进行了连接: enter image description here 作为电源,我使用连接逐步电压转换器的USB手机充电器进入最​​终的3.3V电源。 我还将Arduino Uno连接到这样的继电器模块:

Arduino ====>中继模块

5V ====> VCC

GND ====> GND

针脚5 ====> IN1

你可以在下面的图片中看到(对不起质量)

enter image description here 而现在我几乎每一步都做了(有很多问题)。我的意思是: 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();

}

最后我在Blynk开始了新项目。我将Arduino uno设置为硬件型号,将WiFi设置为连接类型。然后我添加了Button并将Output设置为D5。

现在(接近项目结束)我遇到了一个问题。按下连接按钮(在右上角)后,我收到设备连接的信息(在线)。然后,当我尝试将按钮按到Active Relay时 - 没有任何反应。 更重要的是。我尝试使用不同的Arduino引脚,结果相同。而且我不知道为什么(可能是因为我还有小知识)但是当我将Button输出值设置为D2时 - 连接后我按下它然后ESP模块上的二极管关闭并打开。 我试图在这个论坛和其他许多地方找到最近3天的解决方案,但没有任何结果。这就是我决定向你寻求帮助的原因。你知道我错了什么,或者我应该在项目中添加什么来使Blynk和继电器之间的连接工作正确?

如果你需要更多或更详细的信息,请写一下。

2 个答案:

答案 0 :(得分:0)

为什么你同时使用uno和esp?您可以使用esp而不是组合,将使您的项目更少耗电和更小。如果你想知道只使用esp,你可以使用nodemcu板(在中国可以找到每个单元少于4欧元)。

我有一些示例草图(有温度和湿度),如果你想看看那些。

答案 1 :(得分:0)

当你看到你拍摄的照片和代码时,似乎你已经用一张Arduino草图闪过了ESP。如果您想直接使用ESP(没有Arduino UNO)激活继电器,这很好。 然后你只需要将继电器连接到ESP而不是连接到Arduino。不幸的是,并非所有的继电器板都可以使用ESP提供的3.3V逻辑电路,但也许你很幸运。

另一方面,如果您想使用带有ESP作为Wi-Fi的Arduino UNO,那么您必须使用原始AT固件重新刷新ESP。然后你可以将它连接到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();
}

你应该删除Arduino上RST和GND之间的连接