Rele ovladane přes ethernet

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
BigSandy
Příspěvky: 894
Registrován: 28 črc 2015, 00:00

Rele ovladane přes ethernet

#1 Příspěvek 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.
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#2 Příspěvek od forbidden »

ESP32-WROOM-32 třeba, sice je to tak trochu kanón na vrabce, ale za tu cenu...
Uživatelský avatar
Mahoney
Příspěvky: 759
Registrován: 26 říj 2019, 00:00

#3 Příspěvek 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.
Uživatelský avatar
BigSandy
Příspěvky: 894
Registrován: 28 črc 2015, 00:00

#4 Příspěvek 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í.
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#5 Příspěvek 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.
Uživatelský avatar
BigSandy
Příspěvky: 894
Registrován: 28 črc 2015, 00:00

#6 Příspěvek 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
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#7 Příspěvek 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);
}
Uživatelský avatar
BigSandy
Příspěvky: 894
Registrován: 28 črc 2015, 00:00

#8 Příspěvek 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.
Uživatelský avatar
BigSandy
Příspěvky: 894
Registrován: 28 črc 2015, 00:00

#9 Příspěvek 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
Uživatelský avatar
Valdano
Příspěvky: 3117
Registrován: 01 led 2023, 00:00
Bydliště: Česká Lípa

#10 Příspěvek 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.
Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“