Wifi zásuvka

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
Kony
Příspěvky: 394
Registrován: 09 dub 2020, 11:43

Re: Wifi zásuvka

Příspěvek od Kony » 28 dub 2020, 21:23

Tak nahrávám kód do dalšíhu NodeMCU (a ještě další a další kusy) a ani zaboha mi nechce spínat D1,D2 a ani D3... pokud vytáhnu kablík z toho pinu, tak rele sepne a nebo rozepne, ale jakmile to chci aby to udělal NODEMCU tak ani prd

Uživatelský avatar
pavel1tu
Příspěvky: 2065
Registrován: 26 říj 2017, 08:28
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Wifi zásuvka

Příspěvek od pavel1tu » 29 dub 2020, 07:06

Tak to máš v programu chybu ;)
dej si po seriové lince sledovat co to dělá,
hlavně tu proměnnou co ti spíná výstup na to relé.

Možná bude příště dobré, když nefunguje nějaký program, ho sem nahodit ;)
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Kony
Příspěvky: 394
Registrován: 09 dub 2020, 11:43

Re: Wifi zásuvka

Příspěvek od Kony » 29 dub 2020, 07:44

Nahrál jsem tam přesně to stejné co mi na druhé desce funguje :

Kód: Vybrat vše

#include <ESP8266WiFi.h>

// Nazev Wi-Fi site, do ktere se mam pripojit
const char* ssid = "Kony";

// Heslo Wi-Fi site, do ktere se mam pripojit
const char* password = "*********";

// Je rele sepnute?
bool rele = false;

// Webovy server pobezi na portu 80 (HTTP komunikace)
WiFiServer server(80);

// Promenna s HTTP pozadavkem z prohlizece
String request;

void setup() {
 // Nastartuj seriovou linku, do ktere budu vypisovat provozni informace
 Serial.begin(9600);

 // Na pin D1 je pripojene rele, nastavim jej tedy na vystup
 // Zaroven nastavim nizkée napeti, aby se rele po startu nesepnulo
 pinMode(D1, OUTPUT);
 digitalWrite(D1, LOW);

 // Pripojeni k Wi-Fi
 Serial.println();
 Serial.print("Pripojuji k ");
 Serial.println(ssid);
 WiFi.begin(ssid, password);

 // Dokud nejsem pripojeny k Wi-Fi,zapisuj do seriove linky tecky progressbaru
 while (WiFi.status() != WL_CONNECTED) {
 delay(100);
 Serial.print(".");
 }

 // Jsem pripojeny k Wi-Fi a mohu pokracovat
 Serial.println();
 Serial.println("WiFi pripojena!");

 // Spusteni serveru
 server.begin();
 Serial.println("Server spusten");

 // Napis IP adresu, kterou mikropocitac dostal
 Serial.print("Pouzij k pripojeni tuto adresu: ");
 Serial.print("http://");
 Serial.println(WiFi.localIP());
}

// Smycka loop se opakuje stale dokola
void loop() {
 // Pokud ma promenna rele hodnotu pravda, posli na pin D1 vyssi napeti a sepni rele
 if (rele == true) digitalWrite(D1, HIGH);
 else digitalWrite(D1, LOW);

 // Cekej, dokud se nepripoji nejaky klient
 WiFiClient client = server.available();
 if (!client) {
 return;
 }

 // Cekej, dokud klient neposle nejaka data
 Serial.println("Novy klient!");
 while (!client.available()) {
 delay(1);
 }

 // Precti a vypis prvni radek od klienta s URL dotazem
 request = client.readStringUntil('\r');
 Serial.println(request);
 client.flush();

 // Pokud je v radku vyraz ON, nastav promennou rele na pravdu
 if (request.indexOf("ON") > -1) rele = true;
 // Pokud je v radku vyraz OFF, nastav promennou rele na nepravdu
 if (request.indexOf("OFF") > -1) rele = false;

  // Posli pripojenemu klientu HTML kod stranky s tlacitky
 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println("");
 client.println("<!DOCTYPE html>");
 client.println("<html><body>");
 client.print("<h1>Muj Wi-Fi spinac pro 230V</h2>");
 // Tlacitko pro sepnuti rele vede na adresu /ON
 client.println("<a href=\"/ON\"><button>Sepnout rele</button></a>");
 // Tlacitko pro odpojeni rele vede na adresu /OFF
 client.println("<a href=\"/OFF\"><button>Vypnout rele</button></a><br />");
 client.println("</body></html>"); 
  
 // To je vse, ted jeste 1 ms pockam a cela smycka se muze zopakovat
 delay(1);
 Serial.println("Klient odpojen");
 Serial.println("");
}
dal jsem tam i obyč na přepínání a taky to udělá přesně to stejný, takže nespíná:

Kód: Vybrat vše

void setup() {
  // put your setup code here, to run once:
  pinMode(D1, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(D1, LOW);
delay(500);
digitalWrite(D1, HIGH);
delay(500);
}

KamilV
Příspěvky: 484
Registrován: 03 dub 2018, 15:27
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 29 dub 2020, 08:14

Proč najednou zase čip s relátkem vrací v response nějaká tlačítka? Proč se nedržíš návrhu, který sis udělal?

Pokud nefunguje ani druhý kód, tak bude chyba v zapojení. Prověř zadrátování, zkus i jiné propojováky.

Nebo zkus jiný pin než D1.

Kony
Příspěvky: 394
Registrován: 09 dub 2020, 11:43

Re: Wifi zásuvka

Příspěvek od Kony » 29 dub 2020, 08:48

To jsem jen vyzkoušel abych věděl, že to běží co se týče stránek a odpovídání...

Jiný pin než D1 jsem zkoušel, zkoušel i jiné nepájevé pole. zkoušel jsem i jiné kabely, i napřímo zapojené...

KamilV
Příspěvky: 484
Registrován: 03 dub 2018, 15:27
Bydliště: Olomouc

Re: Wifi zásuvka

Příspěvek od KamilV » 29 dub 2020, 09:20

Kód: Vybrat vše

void setup() {
  pinMode(D1, OUTPUT);
  digitalWrite(D1, HIGH);
}

void loop() {
}
Tak zkus tohle a připojit k pinu třeba ledku, nebo změřit voltmetrem. Pokud se ani tohle nechytne, tak máš nějaký odvařený čip a poslal bych ho do koše.

Kony
Příspěvky: 394
Registrován: 09 dub 2020, 11:43

Re: Wifi zásuvka

Příspěvek od Kony » 29 dub 2020, 09:24

Teď jse mto vyzkoušel na Arduino UNO a tam to ve běží jak má. Ale na NodeMCU jen bliká dioda, ale rele se nesepína, jako by přes ten čip neprotýkalo 5V do rele, zkusím ještě napájení pro rele vytáhnout ze zdroje 5 V

Takže výsledek :

Arduino -> LED -> Relé = vše funkční
NodeMCU -> LED = funkční
NodeMCU -> LED -> Relé = LED bliká jak má, ale relé nespíná
Jestliže na NodeMCU připojím napájení na 3.3V tak se na Relé rozbliká zelená dioda, ale relé necvaká.

Kony
Příspěvky: 394
Registrován: 09 dub 2020, 11:43

Re: Wifi zásuvka

Příspěvek od Kony » 29 dub 2020, 10:04

NodeMCU :
Mezi + a NodeMCU teče -> 3,2V-4,2V (to se střídá)
Mezi D1 a NodeMCU teče -> 0,8V - 3,9V (to se střídá)

Jestliže kontakty od D1 rozpojím a spojím okamžitě relé sepne(rozepne)

Uživatelský avatar
pavel1tu
Příspěvky: 2065
Registrován: 26 říj 2017, 08:28
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Wifi zásuvka

Příspěvek od pavel1tu » 29 dub 2020, 10:32

No, napětí neteče, teče proud.
Já nevím jistě, jaké máš relé ? Není na 5V ?
Dál jsou jen mé doměnky, ESP nemám .... nemám jak otestovat ...

1) NodeMCU funguje na 3,3V, takže log."1" na výstupu by měla být 3,3V
2) relé jsou na 5V, takže ti to na UNO funguje, na NodeMCU ne - pokud tam je optočlen, lze to upravit změnou odpůrku.
3) některé moduly relé vyžadují pro vybuzení (i když tam je optočlen) 15-20mA - dá to NodeMCU ?
4) hodně relé má "obrácenou" logiku, na log"1" (HIGH) je relé rozepnuté, na log"0" je sepnuté (při nefunkčním/vypnutém NodeMCU) jsou relé seplé pokud je destička s relé napájena

více mne nenapadá ...
Naposledy upravil(a) pavel1tu dne 29 dub 2020, 10:37, celkem upraveno 1 x.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Kony
Příspěvky: 394
Registrován: 09 dub 2020, 11:43

Re: Wifi zásuvka

Příspěvek od Kony » 29 dub 2020, 10:35

NodeMcU a ma Vcc pinu 5V, ostatni nevim :) zkusim vyfotir to rele, je to nejaky cinsky sajrajt

Tou zmenou odpurku myslis co ??? Co bych mel zkusit ?

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů