Nodemcu ile 4 Kanal Role Sorunu

anfield

Üye
Katılım
26 Nis 2009
Mesajlar
113
Puanları
1
Yaş
42
İyi günler. Youtube da bulduğum bir video yardımı ile Nodemcu 4 Kanal Role Devresi yaptım. Blynk üzerinden wifi erişimini yapıyorum. Şöyle bir sorun ile karşı karşıyayım; Devreye beslemeyi ne zaman versem wifi ağına bağlanca role çekerek başlıyor. Uygulama üzerinde ise çekmediğini gösteren switchlere ait kapalı konumları görünüyor. Kapalı durumlara dokunduğumda tek tek kapatıyor. Sonrasında istediğim konumlara dönüyor. Video linki

( Şemalarda D1 D2 D3 D4 Görünse de Kod ve uygulamada D5 D6 D7 D8 kullanılmış)
 
Kendi kullandığınız röle grubunun fotoğrafını ve bağlantınızın şemasını, setup kodlarını yollayın.
Normal şartlarda giriş kısmında GND kullanılmaz. Bağlantınız hatalı muhtemelen. Opto katotu mcu pinlerine girecek.
İkinci nokta da pin tanımlaması esnasında; pull-up/down konusuna dikkat edin.
 
Bu tür röleler LOW (0) da tetiklenir HIGH (1) ile tetik kapanır (NO, normalde açık konumu). İlk başta 4 pini de HIGH yapın.
 
#define BLYNK_TEMPLATE_ID "TMPLJ_O10zBs"
#define BLYNK_DEVICE_NAME "HOME AUTOMATION"
#define BLYNK_AUTH_TOKEN "UOVc82UBQkh3-APVZqPAAJLji0bIqejG"

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = BLYNK_AUTH_TOKEN;

char ssid[] = "Imtiaz";
char pass[] = "Haider010";

BLYNK_WRITE(V0)
{
int value = param.asInt();
Serial.println(value);
if(value == 1)
{
digitalWrite(D5, LOW);
Serial.println("LED ON");
}
if(value == 0)
{
digitalWrite(D5, HIGH);
Serial.println("LED OFF");
}
}

BLYNK_WRITE(V1)
{
int value = param.asInt();
Serial.println(value);
if(value == 1)
{
digitalWrite(D6, LOW);
Serial.println("LED ON");
}
if(value == 0)
{
digitalWrite(D6, HIGH);
Serial.println("LED OFF");
}
}

BLYNK_WRITE(V2)
{
int value = param.asInt();
Serial.println(value);
if(value == 1)
{
digitalWrite(D7, LOW);
Serial.println("LED ON");
}
if(value == 0)
{
digitalWrite(D7, HIGH);
Serial.println("LED OFF");
}
}

BLYNK_WRITE(V3)
{
int value = param.asInt();
Serial.println(value);
if(value == 1)
{
digitalWrite(D8, LOW);
Serial.println("LED ON");
}
if(value == 0)
{
digitalWrite(D8, HIGH);
Serial.println("LED OFF");
}
}


void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(D5,OUTPUT);
pinMode(D6,OUTPUT);
pinMode(D7,OUTPUT);
pinMode(D8,OUTPUT);
}

void loop()
{
Blynk.run();
}


Kodlar bu şekilde .
Bu tür röleler LOW (0) da tetiklenir HIGH (1) ile tetik kapanır (NO, normalde açık konumu). İlk başta 4 pini de HIGH yapın.
Pinoutlardan sonra
// Turn OFF the relay
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);

bunu mı eklemem gerekiyor
 

Ekli dosyalar

  • 20241006_195007.jpg
    257 KB · Görüntüleme: 4
Son düzenleme:
/*New Blynk app with Home Automation
https://srituhobby.com
*/
#define BLYNK_TEMPLATE_ID "**************"
#define BLYNK_TEMPLATE_NAME "************"
#define BLYNK_AUTH_TOKEN "*****************"

//Include the library files
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

//Define the relay pins
#define relay1 D0
#define relay2 D1
#define relay3 D2
#define relay4 D3

#define BLYNK_AUTH_TOKEN "*******************" //Enter your blynk auth token

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "**************";//Enter your WIFI name
char pass[] = "****************";//Enter your WIFI password

//Get the button values
BLYNK_WRITE(V0) {
bool value1 = param.asInt();
// Check these values and turn the relay1 ON and OFF
if (value1 == 1) {
digitalWrite(relay1, LOW);
} else {
digitalWrite(relay1, HIGH);
}
}

//Get the button values
BLYNK_WRITE(V1) {
bool value2 = param.asInt();
// Check these values and turn the relay2 ON and OFF
if (value2 == 1) {
digitalWrite(relay2, LOW);
} else {
digitalWrite(relay2, HIGH);
}
}

//Get the button values
BLYNK_WRITE(V2) {
bool value3 = param.asInt();
// Check these values and turn the relay3 ON and OFF
if (value3 == 1) {
digitalWrite(relay3, LOW);
} else {
digitalWrite(relay3, HIGH);
}
}

//Get the button values
BLYNK_WRITE(V3) {
bool value4 = param.asInt();
// Check these values and turn the relay4 ON and OFF
if (value4 == 1) {
digitalWrite(relay4, LOW);
} else {
digitalWrite(relay4, HIGH);
}
}

void setup() {
//Set the relay pins as output pins
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);

// Turn OFF the relay
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);

//Initialize the Blynk library
Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
}

void loop() {
//Run the Blynk library
Blynk.run();
}




Bu Şekilde bir düzenleme yaptım. Şuan için sorun yok. Sizler de kontrol ederseniz sevinirim. İlgi ve alakalarınızdan dolayı çok teşekkür ederim.
 
Çıkışta kullanılacak malzemeleri; mcu olmadan, direkt 3.3V veya 5V uygulayarak çalışmasını öğrenmemiz gerekmekte.
Mcu ile sürüleceği belli olacaktır.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…