Realizzazione di mini impianto domotico in una stanza

Salve a tutti sono nuovo nel forum, mi scuso già per eventuali errori. Ho acquistato Arduino uno e vorrei provare a realizzare un piccolo impianto domotico solo su una stanza della mia casa, giusto per provare. La mia idea è di comandare 4 prese di una ciabatta e 1 luce della stanza(4 relè SainSmart 5v 2 Channel Relay Module With Optocoupler for Pic AVR DSP Arm Arduino | Acquisti Online su eBay) , fino a qui tutto ok, il problema che riscontro è nell'interfacciare tutto o a un programma sul pc in visuale basic o via browser con l'acquisto di un modulo ethernet (http://www.ebay.it/itm/121267849958). In caso dell'opzione ethernet dovrei procurarmi un modem che mi trasferisca il wifi in ethernet.

Dimenticato di dirvi che sono abbastanza ignorante sull'argomento e non ho idea di come collegare il modulo ethernet e come configurarlo. Ho visto questo link (Webduino costruire una scheda rele remota con Arduino ethernet). Potrei implementare a questo codice dei pulsati esterni per modificare lo stato dei relè quando non posso usare il computer.

Benvenuto. :slight_smile:
Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! (Part 1) - Generale - Arduino Forum
e a leggere il regolamento: [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum

Questo potrebbe esserti utile: http://forum.arduino.cc/index.php?topic=105189.0

Si grazie. :slight_smile: Avevo già visto programmi così... Ma sono più puntato a realizzare il tutto via browser (quindi con un modulo ethernet) anche perchè altrimenti sarei vincolato al cavo USB da arduino a pc. Comunque ho già acquistato un modulo ethernet (http://www.ebay.it/itm/121267849958?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649 ) e 4 relè (SainSmart 5v 2 Channel Relay Module With Optocoupler for Pic AVR DSP Arm Arduino | Acquisti Online su eBay ).
Possono andare bene?

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?