ESP8266 отключается после переключения реле

целью проекта, над которым я работаю, является автоматическая мойка бонсай, в зависимости от множества входов датчиков. Поэтому в основном у меня есть Arduino Nano с датчиком освещенности и освещенности, реле для переключения водяного насоса и модуля ESP8266 wifi, который я использую для проверки данных с датчиков в приложении Blynk на своем телефоне. Я использую две изолированные цепи. Первый используется только двигателем постоянного тока (водяной насос) и питается от источника питания 5 В 600 мА. Второй позаботится об остальном (arduino, ESP, датчики, реле), в то время как он снабжен источником питания 5 В 1А. Я использую это с плате ESP8266.

Как только я запускаю программу, он подключается к серверу Blynk, и я могу читать данные с датчиков на моем телефоне. Проблема возникает, когда я хочу переключить реле из приложения Blynk. Чем ESP8266 отключается (почти сразу или через несколько секунд). Я попробовал другой двигатель постоянного тока (не водяной насос), и он работал нормально. Я также попытался переключить насос без использования EPS8266, который тоже работал (так что код должен быть в порядке). Я думаю, что это имеет какое-то отношение к текущей тяге, вызванной водяным насосом, но это не имеет смысла - я использую две независимые цепи, насос потребляет максимально 300 мА от источника 600 мА, в то время как остальная электроника рисует не более 200 мА от источника питания 1 А. Ни разные источники питания, ни другое реле не работало.

Вот мой код:

#define BLYNK_PRINT Serial
#define BLYNK_DEBUG

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

#include <BH1750.h>
#include <Time.h>
#include <SoftwareSerial.h>

#define PUMP  10
#define SENSOR A0
#define BUTTON 2


char ssid[] = "XXXXX";
char pass[] = "XXXXXXXXXXXXXXXXXX";


SoftwareSerial EspSerial(11, 12);
ESP8266 wifi(&EspSerial);

BlynkTimer timer;
BH1750 lightMeter;
int humidity;
int light;
bool pressed = 0  ;
bool pump=1;
char auth[] = "XXXXXXXXXXXXXXXXXXXXXXXXXX";


void sendData(){
      humidity=analogRead(SENSOR);
      light=lightMeter.readLightLevel();
      Blynk.virtualWrite(V0,humidity);
      Blynk.virtualWrite(V1,light);  
//      Serial.print("humidity: ");  
//      Serial.println(humidity);  
//      Serial.print("light: ");  
//      Serial.println(light);  
}
void checkConnection(){  
  if(!Blynk.connected()){ 
    digitalWrite(PUMP,1);
    Blynk.begin(auth, wifi, ssid, pass);
  }
 }
void checkButton(){   
  if(digitalRead(BUTTON) && pressed){
     Blynk.virtualWrite(V3,digitalRead(BUTTON));
     pump=!pump;   
//      Serial.println("pump from button");          
     }
  else if(digitalRead(BUTTON) && !pressed){
    pressed=1;    
    }
  else{
    pressed=0;
    }      
}
BLYNK_WRITE(V2)
{
    Serial.println("switching pump"); 
    pump=!param.asInt();
    digitalWrite(PUMP,pump);
}
void setup() { 
  Serial.begin(9600);  
  delay(10);
  EspSerial.begin(9600);  
  delay(10);
  lightMeter.begin();    
  pinMode(PUMP, OUTPUT); 
  pinMode(BUTTON, INPUT);
  digitalWrite(PUMP, pump); 
  Blynk.begin(auth, wifi, ssid, pass);
  timer.setInterval(5000L, sendData);
  //timer.setInterval(5L, checkButton);  
//  timer.setInterval(2000L, checkConnection);
  }

void loop() {  
  if (Blynk.connected()) {
      Blynk.run();
      timer.run();
    }
}

и журнал Blynk:

[2631095] <[06|05|14|00|00]
[2631389] >[00|05|14|00|C8]
[2632112] <[14|05|15|00|08]vw[00]0[00]632
[2632280] <[14|05|16|00|07]vw[00]1[00]28
[2637109] <[14|05|17|00|08]vw[00]0[00]630
[2637214] <[14|05|18|00|07]vw[00]1[00]28
[2641393] <[06|05|19|00|00]
[2651445] Cmd error
[2656470] Cmd skipped:20
[2656471] Cmd skipped:20

[EDIT] и схема: цепь

2 голоса | спросил Matěj Boxan 14 AM000000120000003731 2017, 00:03:37

1 ответ


2

Проблема была скрыта в неправильной проводке реле. Когда я использую только COM и NO PIN, как показано в этой статье , а не только, что вся система стабильна, и ESP8266 больше не отключается, но я могу также включить питание только с одним источником питания 5 В 2А.

Вот мои обновленные схемы  введите описание изображения здесь>> </a> </p></body></html>

ответил Matěj Boxan 18 PM000000110000001231 2017, 23:18:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132