Realizzazione di mini impianto domotico in una stanza

Ciao,
relativamente a quel modulino Ethernet, magari QUESTO tutorial potrà esserti di aiuto.

L'altro modulino è piuttosto semplice e direttamente pilotabile dai pin di Arduino (grazie ai driver che ha on-board) :wink:

Guglielmo

Per l'ENC28J60 ti suggerisco anche questo sito con numerosi tutorial in italiano:
http://www.lucadentella.it/category/enc28j60-arduino/

Grazie! :slight_smile: mentre aspetto i 2 pacchi mi guardo per bene i vostri 2 link. :wink:

Ah una cosa volevo chiedervi, nei relè che ho comprato per farli cambiare di stato c'è bisogno di un impulso di corrente o cambiano di stato solo nel momento in cui sono eccitati (corrente sempre attiva a quel pin)? Nel caso necessitassi di un impulso di correte come lo genero nello sketch?

Ogni relè dovrà essere associato ad un pin ...
... e a seconda di come metti il pin (HIGH o LOW) il relè si eccita o meno.

Non sono mica dei bistabili o passo-passo ... :roll_eyes:

Guglielmo

Ok quindi do impulso HIGH il relè si eccita e mi apre o chiude il circuito in base al moresetto utilizzato. Perfetto grazie. :slight_smile:

NO, non un impulso ... pin STABILMENTE in uno stato ... non un impulso e basta ... c'è una bella differenza ...
... usiamo i termini corretti !!!

Guglielmo

Si si si! Scusami ho sbagliato a scrivere. :sweat_smile:

Altra domanda: arduino posso lasciarlo acceso giorno e notte? che caratteristiche deve avere un alimentatore per arduino? 9V e quanti ampere? La mia idea sempre per il progetto di comandare le 4 prese è di attaccare una scatola elettrica alla ciabatta e inserici i 3 componenti (arduino, i relè e il modulo ethernet) poi fare i collegamenti.

Se prendi un alimentatore di qualità decente (... e non la cinesata da 5 €), a norme IMQ, non hai problemi a lasciare il tutto acceso H24 :wink:

Per le caratteristiche, calcola quanto assorbe il tutto e ... moltiplica x2 ... così vai sul sicuro.

Dato che vuoi fare una cosa che stia sempre in funzione, per sicurezza io attiverei un meccanismo di autorestart se il SW si blocca o ha un malfunzionamento. Studiati QUESTO articolo di Leo ed impara ad usare il WatchDog :slight_smile:

Guglielmo

Ciao a tutti sono tornato. :slight_smile: Oggi mi è arrivato enc28J60, l'ultimo componente che mi mancava. Ho provato a fare un po di test per imparare ad usarlo seguendo i tutorial che mi avevate lincato (http://www.lucadentella.it/category/enc28j60-arduino/). Ho riscontrato alcuni problemi, penso dovuti ad un'aggiornamento della libreria, vista la data dei post nel sito. Mi chiedevo se potevate darmi una mano nel creare un piccolo programma per pingare il mio enc28J60 con questa libreria (GitHub - njh/EtherCard: EtherCard is an IPv4 driver for the ENC28J60 chip, compatible with Arduino IDE) . Anche per vedere se funziona :sweat_smile:

Ma che errori ti dà l'IDE ?

Si scusa, in questo sketch

#include <EtherCard.h>
static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x00,0x01};
byte Ethernet::buffer[700];
 
void setup () {
 
  Serial.begin(57600);
  Serial.println("DHCP Demo");
 
  if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
    Serial.println( "Failed to access Ethernet controller");
 else 
   Serial.println("Ethernet controller initialized");
 
  if (!ether.dhcpSetup())
    Serial.println("Failed to get configuration from DHCP");
  else
    Serial.println("DHCP configuration done");
 
  ether.printIp("IP Address:\t", ether.myip);
  ether.printIp("Netmask:\t", ether.mymask);
  ether.printIp("Gateway:\t", ether.gwip);
}
 
void loop() {
 
  ether.packetLoop(ether.packetReceive());
}

l'IDE mi dice: "'class EtherCard has no member named ' mymask'"
evidenziandomi la riga:

  ether.printIp("Netmask:\t", ether.mymask);

Mentre nel monitor seriale viene scritto: "?þÊÈþ*B½iZ¤BlÐ0Vòð"

Provando invece questo sketch:

#include <EtherCard.h>
static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x00,0x01};
static byte myip[] = {192,168,1,20};
byte Ethernet::buffer[700];
 
void setup () {
 
  Serial.begin(57600);
  Serial.println("PING Demo");
 
  if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0) 
    Serial.println( "Failed to access Ethernet controller");
 
  if (!ether.staticSetup(myip))
    Serial.println("Failed to set IP address");
}
 
void loop() {
 
  ether.packetLoop(ether.packetReceive());  
}

nel monitor seriale mi da: "0"

quando provo a pingarlo dal pc mi dice:

Esecuzione di Ping 192.168.1.20 con 32 byte di dati:
Risposta da 192.168.1.11: Host di destinazione non raggiungibile.
Risposta da 192.168.1.11: Host di destinazione non raggiungibile.
Risposta da 192.168.1.11: Host di destinazione non raggiungibile.
Risposta da 192.168.1.11: Host di destinazione non raggiungibile.

Statistiche Ping per 192.168.1.20:
Pacchetti: Trasmessi = 4, Ricevuti = 4,
Persi = 0 (0% persi),

Ahh! Non sono sicuro di aver collegato bene il modulo ethernet.
Io l'ho collegato così:
VCC-3.3V
GND-GND
CS-10
SCK-13
SI-11
SO-12

ed ho lasciato "liberi" i pin: CLKOUT, WOL, INT e RESET

si, e' collegato giusto
Pero' vedo che codesto modulo ha anche il +5V
sarebbe meglio se tu usassi i +5V invece dei 3,3V, perche' l'uscita 3,3V di Arduino eroga 50mA e codesto modulo arriva a consumare 120mA

Boh, quello che dici non ha senso.
Se il primo sketch che hai postato ti dà errore, allora NON viene caricato su Arduino e quindi sul Monitor Seriale che stai vedendo ?
Poi, quel primo sketch a me lo compila tranquillamente senza errori con IDE 1.0.5r2

Per la rete, in che situazione sei ?
Hai un router con DHCP abilitato? Quei due sketch,

  • il primo richiede il DHCP abilitato infatti usa il comando ether.dhcpSetup()
  • il secondo cerca di assegnare un IP con ether.staticSetup(myip) ma io fossi in te assegnerei anche dns e gateway
static byte mygt[] =  { 192,168,1,1 }; // ip del router
static byte mydns[] = { 8,8,8,8 };   // ip di google
...
ether.staticSetup(myip,mygt,mydns);

Nel primo sketch ho provato a eliminare la riga e farlo partire lo stesso :sweat_smile:
Si ho anche io la tua stessa versione... :astonished: può essere un problema della libreria?

Per la rete si ho il DHCP attivo, proverò ad aggiungere anche il dns e il gateway. :frowning:

E quindi per l'alimentazione posso mettere i 5v sul pin dove ho i 3.3v?

E quindi per l'alimentazione posso mettere i 5v sul pin dove ho i 3.3v?

NO

se il modulo e' quello linkato all'inizio, dall'altra parte del connettore c'e' un pin marcato 5V
devi collegare li' il 5v di arduino e scollegare quello da 3,3v

:astonished: (http://dereenigne.org/wp-content/uploads/ENC28J60.jpg) dove è il pin dei 5v?

dove è il pin dei 5v?

non c'e'.
hai il vecchio modello

quella che avevi linkato nel primo post era diversa, piu' piccola e con un connettore a 12pin

An ok scusa.

Comunque ho appena fatto una altra prova nel primo sketch che ho postato, se inserisco la libreria da sketch--> importa libreria--> EtherCard mi aggiunge all'inizio dello sketch:
#include <enc28j60.h>
#include <EtherCard.h>
#include <net.h>

e se provo a caricarlo mi dice: 'byte ENC28J60::buffer [700]' is not a static member of class ENC28J60'
e mi evidenzia la riga: byte Ethernet::buffer[700];

Può aiutare a risolvere il problema?