Stránka 1 z 1
ESP8266 a rele modul.
Napsal: 13 úno 2024, 11:15
od Le_Ze
Dobrý den.
ESP8266 NodeMcu V3 a 4 rele modul.
https://www.aliexpress.com/item/33038634587.html
4 rele modul na 3,3V jsem na ali nenašel, a 3,3V jsou o dost dražši než 5V.
V šupliku jsem vyhrabal 5V.
ESP napajim trafem přes VIN a u rele jsem oddělal tu žlutou propojku a rele take napajím 5V.
Logiku ovladam přes GPIO 3,3V a funguje jak ma.
Při zapnutí ESP, mi však rele procvaknou.
Je nějake řešení?
Děkují.
Napsal: 13 úno 2024, 12:17
od pocitujlasku
pozriet si, v datasheete, v akom stave su piny na esp. A pouzit tie, ktore ti budu vyhovovat. lebo niektore su pocas startu v low, ine v high a niektore dokonca len tak v lufte.
Kód: Vybrat vše
Pins HIGH at Boot
There are certain pins that output a 3.3V signal when the ESP8266 boots. This may be problematic if you have relays or other peripherals connected to those GPIOs. The following GPIOs output a HIGH signal on boot:
GPIO16
GPIO3
GPIO1
GPIO10
GPIO9
Kód: Vybrat vše
Pins used during Boot
The ESP8266 can be prevented from booting if some pins are pulled LOW or HIGH. The following list shows the state of the following pins on BOOT:
GPIO16: pin is high at BOOT
GPIO0: boot failure if pulled LOW
GPIO2: pin is high on BOOT, boot failure if pulled LOW
GPIO15: boot failure if pulled HIGH
GPIO3: pin is high at BOOT
GPIO1: pin is high at BOOT, boot failure if pulled LOW
GPIO10: pin is high at BOOT
GPIO9: pin is high at BOOT
Napsal: 13 úno 2024, 12:39
od Le_Ze
Ano, to první. Použivat tyto GPIO.
https://randomnerdtutorials.com/esp8266 ... nce-gpios/
Pins HIGH at Boot.
Ty rele se ale spinají, když je na GPIO LOW. Při HIGH jsou rozeple.
Napsal: 13 úno 2024, 13:40
od Valdano
Zde je článek popisující chování různých GPIO při spouštění. Jsou tam i záznamy z logického analyzátoru a osciloskopu.
Po startu v programu použitém při těch testech nastavuje GPIO na LOW. Z toho co je tam vidět zkuste za účelem odstranění cvaknutí při zapnutí použít pro daný účel GPIO tam označený jako D2 a k tomu použijte relé, které bude spínat když bude GPIO ve stavu HIGH a ve stavu LOW bude rozepnuté. V setup části programu nastavte zmíněný GPIO na LOW což bude implicitně rozepnutý stav relé.
Pokud používáte relé, které je ve stavu LOW sepnuté tak vám to vždy při zapnutí cvakne, protože relé zřejmě zareaguje dříve než na GPIO naběhne stav HIGH. Některá relé jako třeba
tyto mají propojky jimiž lze zvolit zda mají reagovat na HIGH nebo LOW.
Napsal: 13 úno 2024, 13:45
od bu2520
Nevím jestli to souvisí, ale podobnou věc mi dělal bootloader u arduina. Až po jeho vynechání a nahrávání programu přes SPI problém ustal.
Napsal: 13 úno 2024, 14:29
od Valdano
Le_Ze píše:Při zapnutí ESP, mi však rele procvaknou.
Ty relé se ale spínají, když je na GPIO LOW. Při HIGH jsou rozeplé.
Ještě mne napadá spínat 5V napájení relé přes tranzistor z pinu D2 na ESP, a to se zpožděním. Až naběhne ESP a piny z nichž ovládáte jednotlivá relé budou v setup části programu bezpečně nahozeny do implicitního stavu HIGH tak za to vložit zpoždění třeba
delay(500); tj. 500ms a teprve pak nahodit do stavu HIGH i pin D2 a tím zapnout 5V napájení relé. Pak už by relé při zapínání procvaknout neměly, protože v době přechodných stavů na ostatních pinech ESP budou relé bez napájení jelikož pin D2 na ESP je po zapnutí ve stavu LOW.
Napsal: 13 úno 2024, 14:41
od pocitujlasku
bu2520 píše:Nevím jestli to souvisí, ale podobnou věc mi dělal bootloader u arduina. Až po jeho vynechání a nahrávání programu přes SPI problém ustal.
pri klasickom arduine musis dat pull_up odpory, lebo po zapnuti su nastavene ako vstupne bez internerneho pull_up. a ten bootloader tam ma nejaky maly delay, ktory caka na pripadne data zo serioveho portu a az potom startuje program. to je o.i. spominane aj v arduino dokumentacii.
Napsal: 18 dub 2024, 08:36
od Le_Ze
By byl dotaz.
https://randomnerdtutorials-com.transla ... _x_tr_hl=c
Jak docilim toho, aby se web stranka překreslovala třeba každou vteřinu?
Už jsem to jednou řešil, ale marně hledam
Děkují.
Napsal: 19 dub 2024, 02:31
od Valdano
Tady je ukázka použití meta tagu refresh, který by měla podporovat většina současných webových prohlížečů. Vkládá se to do hlavičky v rámci celého HTML, který posílá ESP32 nebo ESP8266. Nicméně perioda 1s je příliš krátká a může to způsobovat problém s dostupností různých funkcionalit pro uživatele pokud budou ve stránce nějaké prvky k ovládání uživatelem. Potenciální problém s tím je zmíněn i v odkazovaném popisu zmíněného meta tagu na w3schools.com. Takže doporučují raději delší periodu třeba 5s.
Kód: Vybrat vše
<html>
<head>
<title>Titulek stranky</title>
<meta http-equiv="refresh" content="5">
</head>
<body>
... tady budou data pro zobrazení ve stránce ...
</body>
</html>
Napsal: 19 dub 2024, 07:37
od Le_Ze
Děkují, už vyřešene takto.
client.println("<meta http-equiv=\"refresh\" content=\"1\">");
Kde je problem u tohoto?
client.println("<meta http-equiv="refresh" content="30">");
Compilation error: unable to find string literal operator 'operator""refresh' with 'const char [27]', 'unsigned int' arguments
Napsal: 19 dub 2024, 08:06
od Dumitru
Le_Ze píše:Děkují, už vyřešene takto.
client.println("<meta http-equiv="refresh" content="1">");
Kde je problem u tohoto?
client.println("<meta http-equiv="refresh" content="30">");
Compilation error: unable to find string literal operator 'operator""refresh' with 'const char [27]', 'unsigned int' arguments
Kód: Vybrat vše
client.println("<meta http-equiv="refresh" content="30">");
skús takto
Edit : úvodzovky je špeciálny znak medzi ktorého s vkladá string a ked je ich tam viac kompilátor nevie kde je začiatok a kde koniec
Napsal: 19 dub 2024, 17:56
od Valdano
Další možnost je použít uvnitř řetězce tj. mezi klasickými uvozovkami pouze apostrofy, u kterých překladač předcházející lomítko nepotřebuje a webové prohlížeče to podporují.
Kód: Vybrat vše
client.println("<meta http-equiv='refresh' content='30'>");