Rele ovladane přes ethernet
Moderátor: Moderátoři
Rele ovladane přes ethernet
Kdysi, před par lety jsem už dělal přes uno a W5100 R3.
Je dnes nějake lepši řešení?
Dik.
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í.
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
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);
}