Stránka 1 z 1

Rele ovladane přes ethernet

Napsal: 08 srp 2023, 10:43
od BigSandy
Zdravím Vás.
Kdysi, před par lety jsem už dělal přes uno a W5100 R3.
Je dnes nějake lepši řešení?
Dik.

Napsal: 08 srp 2023, 10:47
od forbidden
ESP32-WROOM-32 třeba, sice je to tak trochu kanón na vrabce, ale za tu cenu...

Napsal: 11 srp 2023, 08:37
od Mahoney
Nejsem si jist, zda je odpověď typu "ESP32" odpovědí na tazatelovu otázku. Otázka zněla na Ethernet, tedy na metalické připojení, a tam je Wiznet pořád nejlepší, kdežto ESP32 se týká WiFi/WLAN, a tam by měl tazatel upřesnit, jestli WiFi může být, nebo je to úplně mimo.

Napsal: 07 zář 2023, 08:42
od BigSandy
Se omlouvám, ale nějak nebyl čas. :oops:
Potřebují jen 1 rale, ktere mužu ovladat přes internet s RJ45.
Arduino nano + ENC28J60 Ethernet Shield V1.0 Network Module + 1 rele.
https://github.com/killergeek/enc28j60_ARPspoofer

Je jine, lepši řešení nebo jednodušší?

Děkují.

Napsal: 07 zář 2023, 10:20
od Valdano
Řekl bych, že pro tak jednoduchou aplikaci to bude asi ta nejlepší volba. Arduino NANO, ethernet modul přímo pro NANO plus třeba tento modul relé pro spínání nějakých drobnějších zátěží nebo výkonnější modul relé. Pro bezkontaktní spínání třeba levný SSR modul pro 230V AC a proudy do 2A. Pro častější spínání a také pro vyšší proudy použít kvalitnější samostatné relé či stykač podle způsobu určení, popřípadě vhodné výkonnější SSR relé v případě potřeby třeba se spínáním v nule.

Napsal: 07 zář 2023, 11:27
od BigSandy
Tak nano, modul i rele vyhrabane ze skřině a už jsem i testoval a funguje.
Nějakou tu web stranku, kde bude tlačitko na reset asi zvladnu.

Ale přece bych potřeboval poradit - pomoct.
Je to do prace pro hlidaní IP kamer. Rele bude na napajecím zdroji 12V.
Pokud kamera zamrzne, tak chtějí, aby to mohli vzdaleně restartovat.

Jestli je kamera zamrzla, se ale da zjistit i přes ping, nebo web rozhraní.
Tak mi připada rozumnější to uplně zautomatizovat.
Jak ma to?
Ta je 13 roku stara.
https://github.com/BlakeFoster/Arduino- ... g/Ping.ino

Napsal: 07 zář 2023, 16:49
od Valdano
Třeba takto. Na příslušné číslo pinu na Arduinu viz PIN_PRO_RELE napojit ovládací vstup relé s jedním přepínacím kontaktem. Pro rozpínání napájení webové kamery použít kontakt na relé v klidu sepnutý. Zdroják programu viz níže.

Kód: Vybrat vše

#include <SPI.h>         
#include <Ethernet.h>
#include <ICMPPing.h>

// zde je použit digitální pin číslo 3 tj. D3 na Arduinu
#define PIN_PRO_RELE 3

byte citac = 0;
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC adresa ethernet shieldu

// IP adresy ethernet shieldu a kamery si samozřejmě upravte dle toho
// v jaké síti obě tato zařízení v reálu budou.

// IP adresa ethernet shieldu
// ethernet shield s Arduinem a relé modulem by měly být někde
// poblíž napájecího zdroje kamery takže ethernet shield by měl být
// v případě lokální ethernet sítě ve stejné podsíti jako kamera
// ale musí mít samozřejmě unikátní IP adresu, aby nedošlo ke konfliktu IP adres
// zde má shield na konci 99 zatímco kamera níže má na konci 98
// žádné jiné zařízení ve stejné podsíti by nemělo mít stejnou IP adresu
byte ip[] = {192,168,1,99};

// IP adresa webové kamery
IPAddress pingAddr(192,168,1,98);

SOCKET pingSocket = 0;
ICMPPing ping(pingSocket, (uint16_t)random(0, 255));

void setup()
{
  pinMode(PIN_PRO_RELE, OUTPUT);
  digitalWrite(PIN_PRO_RELE, LOW);
  Ethernet.begin(mac, ip);
}

void loop()
{
  ICMPEchoReply echoReply = ping(pingAddr, 4);
  if (echoReply.status == SUCCESS)
  {
    // je-li odpoveď OK, vynulovat čítač
    citac = 0;
  } else {
    // bez odpovědi nebo chybná odpověď
    if (citac < 5) {
      // zvyšovat čítač
      citac++;
    } else {
      // šestý po sobě neúspěšný pokus
      // vynulovat čítač
      citac = 0;
      // sepnout relé
      // přes rozpínací kontakt se rozpojí napájení webové kamery
      digitalWrite(PIN_PRO_RELE, HIGH);
      // počkat třeba vteřinu
      delay(1000);
      // relé zase vypnout
      // čímž se spojí rozpínací kontakt a napájení kamery se obnoví
      digitalWrite(PIN_PRO_RELE, LOW);
    };
  };
  // počkat 10 vteřin
  delay(10000);
}

Napsal: 07 zář 2023, 17:37
od BigSandy
Děkují. Toto už mám vyřešene.
Akorat mám ping co 15 vteřin a při každem neuspěšnem přičitam a když jích je 20 neúspěšných tak rozepnu rele na kratkou dobu.

Napsal: 08 zář 2023, 07:01
od BigSandy
Tak efunguje to. :?
Jsem včera zkoušel v praci na uno a W5100 R3.
Dnes chtěl vyzkoušet doma přes nano s ENC28J60 a knihovna ICMPPing.h knihovnu Ethernet.h

Napsal: 08 zář 2023, 13:47
od Valdano
Ať neřešíme obdobnou záležitost ve dvou různých tématech tak další pokračování k tomu je v tématu viz tento odkaz.