Controllo pulsante/rele impianto

Salve a tutti, sto facendo casa e facendo la canalizzazione. Volevo controllare tutti i punti luminosi da arduino via ethernet shield e pulsanti attuati da i classici interruttori.utilizzo un arduino mega 2560 r3 con 4 moduli da 8 rele (5v 10a)connessi a 32 pin Il mio problema è a livello di programmazione in cui non sono per niente portato. Al momento ho fatto una semplice pagina web che mi permette di accendere un rele tramite un pulsante cambiando leggermente il programma link led.
A livello procedurale dovrebbe essere che se fisicamente spengo/accendo la luce 1 collegata al rele a sua volta collegato al pin 1 da un interruttore , dovrei registrare la informazione da qualche parte che dovrebbe essere letta poi dalla pagina web che conoscendo lo stato che così può segnalarmelo in modo tale che sia posizionato su on oppure off e possa agire di conseguenza.Non so se sono stato abbastanza chiaro, avrei bisogno di un aiuto col codice. Non tanto a livello web server al momento mi basterebbe già normalmente. Grazie tantissimo a tutti

Se non ho capito male. i punti luce sono comandati da pulsanti collegati a relè passo passo.

Se è così, i relè di Arduino sono in parallelo ai pulsanti e vengono azionati in modo impulsivo.

Arduino deve avere anche degli ingressi digitali che forniscano l'informazione se la luce è spenta o accesa, in quanto essa può essere stata accesa o spenta manualmente.

Ricapitolando, per ogni punto luce devi avere una uscita digitale collegata ad un relè collegato a sua volta ad un relè passo passo, ma anche un ingresso digitale che rilevi se passa corrente nel circuito controllato.

Ciao, sto affrontando la tua solita casistica, al momento sono in fase di studio teorico per capire la soluzione migliore.
Il mio progetto prevede l'utilizzo di relè passo passo a due contatti, uso lo uso per pilotare il carico, l'altro per poter interrogare da arduino lo stato del carico.
In questo posto http://forum.arduino.cc/index.php?topic=264310.msg1864043#msg1864043 ho affrontato la parte circuitale dell'output dei relè.
Con il circuito così costruito ho virtualmente infinite uscite con l'uso di pochi pin semplicemente mettendo in cascata più 74HC595.
Per l'ingresso sto ancora pensando alla soluzione migliore, in prima battuta ho pensato di utilizzare un multiplexer 4067N che con 4 pin + uno analogico mi permette di leggere 16 ingressi analogici, mettendo più multiplexer in parallelo e andando a leggere di volta in volta il pin analogico desiderato averi fino a 64 ingressi (utilizzando un arduino uno). Da questo "limite" sono partito a pensare se non fosse meglio utilizzare un MCP23017 che mi permetterebbe di espandere gli I/O fino a 128 che per uso domestico dovrebbe andare più che bene, ma è un'idea di stamattina e quindi la sto ancora verificando.
Per completezza d'informazione all'inizio pensavo di utilizzare l'interfaccia di rete montata su arduino ma mi mangerebbe troppi pin e sarebbe molto limitata, quindi sto seriamente pensando di passare all'uso di raspberry pi con apache+php+mysql installato e farlo dialogare via seriale (pin su GPIO di raspberry -> Convertitore di livelli -> pin 0 e 1 di arduino) con arduino.
Questa soluzione mi permetterebbe un web server più decente, con possibilità di ssl ecc.
Se vuoi posso condividere anche l'altra parte dello schema e valutare la soluzione migliore anche con l'aiuto tuo e del forum.

Non comprendo perché non passare ad una MEGA: oltre a più I/O, avresti maggiore SRAM utile per il programma.

cyberhs:
Non comprendo perché non passare ad una MEGA: oltre a più I/O, avresti maggiore SRAM utile per il programma.

Devo ancora documentarmi percè non sono molto esperto, ma da quello che ho trovato fin’ora è che la mega ha un formato che io non sono in grado di trattare per fare uno stand-alone come invece riesco a fare con la uno.
In passato ho visto che in generale il consiglio è quello di non usare un arduino intero per il progetto finale in quanto si eliminano un sacco di componenti innutili, comunque a parte il fatto che la uno l’ho già a disposizione non ho vincoli relai pen non passare ad una mega se è meglio in senso generale. Il mio progetto è ancora “sulla carta” in quanto spero di riuscire a realizare l’impianto di casa che ancora non è stato realizzato, il mio intento è quello di avere meno vincoli possibili sull’espandibilità, facilità di sostituzione dei singoli componenti del sistema (stavo pensando di mettere le uscite su una scehda, gli ingressi su un’altra) in caso di guasti si cambia solo una parte e il resto continua a funzionare e infine una complessità generale più bassa possibile (Es. vorrei lavorare solo in bassa tensione in modo che l’impianto di caso non sia sottoposto a rischi), i vostri consigli sono per me preziosissimi quindi mi documenterò meglio e vedrò se la mega sia la soluzione più adatta. In base a quanto espresso secondo te la mia idea è vantaggiosa o resta comunque meglio la mega?
Grazie ancora

Nel tuo caso, hai già bisogno in partenza di un numero elevato di I/O e devi progettare anche un software opportuno, quindi la sperimentazione la farei con una MEGA.

Fai sempre in tempo poi a passare alla UNO nel caso di stand alone e/o commercializzazione del prodotto.

Grazie mille cyberhs, mi doterò di una mega e poi alla fine vedrò se poter passare alla uno o meno per lo stand alone, in passato ho già realizzato piccoli progettini con uno stand alone su millefori e è anadta alla grande, per questo invece essendo un poco più serio e duraturo pensavo di far fare ad un service un pcb due facce (con tutti i problemi che ne conseguiranno per inviare dei file corretti essendo la mia prima esperienza con un service) in modo che non si ossidi e abbia un aspetto più professionale e con maggior durata.
Da piccolo hobbista non credo che un mio progetto verrà mai commercializzato :grin:
Quello che farò di sicuro (e che in passato ho già fatto) sarà mettere qui tutto il lavoro svolto (schemi, board, sketch, ecc.)

Per quanto riguarda il problema file EAGLE da passare al service, ti posso aiutare: ho una discreta esperienza in merito.

cyberhs:
Per quanto riguarda il problema file EAGLE da passare al service, ti posso aiutare: ho una discreta esperienza in merito.

Quando avrò terminato lo sbroglio ecc. posterò il materiale e chiederò consigli/verifiche, e se mi aiuterai te ne sarò veramente grato!
Per il momento grazie di nuovo

cyberhs:
Se non ho capito male. i punti luce sono comandati da pulsanti collegati a relè passo passo.

Se è così, i relè di Arduino sono in parallelo ai pulsanti e vengono azionati in modo impulsivo.

Arduino deve avere anche degli ingressi digitali che forniscano l’informazione se la luce è spenta o accesa, in quanto essa può essere stata accesa o spenta manualmente.

Ricapitolando, per ogni punto luce devi avere una uscita digitale collegata ad un relè collegato a sua volta ad un relè passo passo, ma anche un ingresso digitale che rilevi se passa corrente nel circuito controllato.

Avevi capito perfettamente solo che questo era il progetto in origine a dire il vero.
Ora ho optato per controllare tutto tramite arduino (mega 2560)-----scheda relè e luci comandate direttamente da quest’ultima visto il modesto assorbimento, mentre per le prese delle quali a priori non conosco il carico metterò un rele finder da almeno 16A al quale collego il relè della scheda collegata all’arduino.

Ora: i pulsanti che ho in giro per casa a cui daro i 5v dovranno andranno a una entrata arduino e condivideranno la massa con lo stesso giusto?

questo è un estrappolato del mio programma: Avrei bisogno di capire dove aggiungere l’interruttore “fisico” come input in modo che poi riesca a visualizzare correttamente lo stato nella pagina.
Ringrazio tantissimo tutti per l’aiuto

//---------------------------------------------------------

#include <Ethernet.h>
#include <SPI.h>
#include <WebServer.h> // webduino
 
//variabili statiche per il mac address e lìip address
static byte mac_Add[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//cambiare l'ip in funzione della propria rete
static byte ip_Add[] = {
  192, 168, 1, 220 };
//creazione Webduino
WebServer webserver("", 80);
 
//Variabili per la memorizzazione uscite relè
boolean Rele_Camera= false;

//=============================================================================
//funzione pagina Start
void Start(WebServer &server, WebServer::ConnectionType type,
           char *url_param, bool param_complete)
{
  //restituisce al browser l'intestazione http 200 OK
  server.httpSuccess();
 
  //gestisco il tipo di richiesta HEAD
  if (type != WebServer::HEAD)
  {
    String s = "";
 
     if (param_complete == true)
    {
      s = url_param;
 
      if ( s == "R1=ON")
      {
       Rele_Camera = true;
        digitalWrite(22, LOW);
      }
      else if ( s == "R1=OFF")
      {
       Rele_Camera = false;
        digitalWrite(22, HIGH);
      }
 P(htmlHead) =
    "<html>"
    "<head>"
    "<title>Controllo Rele</title>"
    "</head>"
    "<body>";
 
    server.printP(htmlHead);
 
    server.print("<table border=\"1\">");
    server.print("<tr><td>Stato Rele</td><td>Comandi</td></tr>");
 
    if(Rele1 == true)
      server.print("<tr><td style=\"color: purple;\">CAMERA ON</td><td>");
    else
      server.print("<tr><td style=\"color: black;\">CAMERA  OFF</td><td>");
 
    if(Rele1 == false)
      server.print("<input type=\"button\" value=\"clicca qui\""
                    "onclick=\"location.href='index.htm?R1=ON'\">");
    else
      server.print("<input type=\"button\" value=\"clicca qui\""
                    "onclick=\"location.href='index.htm?R1=OFF'\">");
 
    server.print("</td></tr>");
  server.print("</table></body></html>");
 
  }
}
//=============================================================================
 
void setup()
{
  //inizializzo l'ethernet shield con il mac e il address
  Ethernet.begin(mac_Add, ip_Add);
 
  //definisci l'azione di default che verrà eseguita quando l'utente
  //naviga nella root del sito
  webserver.setDefaultCommand(&Start);
  webserver.addCommand("index.htm", &Start);
 
  //avvia il web server
  webserver.begin();
 
  delay(100);


 //definisci  pin 22
  pinMode(22, OUTPUT);
//inizializza i le uscite
  digitalWrite(22, HIGH);

}
 
void loop()
{
  webserver.processConnection();
}
//END

Avevi capito perfettamente solo che questo era il progetto in origine a dire il vero.
Ora ho optato per controllare tutto tramite arduino (mega 2560)-----scheda relè e luci comandate direttamente da quest'ultima visto il modesto assorbimento, mentre per le prese delle quali a priori non conosco il carico metterò un rele finder da almeno 16A al quale collego il relè della scheda collegata all'arduino.

Supponiamo che la MEGA smetta di funzionare: come farai ad accendere manualmente le luci?

prevede l'utilizzo di relè passo passo a due contatti

Puoi mostrare un link di quei relays?

ciao

Se la Mega smettesse di funzionare ho un'altra Mega di scorta. Questo da un punto di vista economico.
Una mega mi costa 13 euro un rele shield da 8 3.50...E' Comunque super conveniente.
Per quanto riguarda il mio problema riusciresti ad aiutarmi? Grazie mille della disponibilità

Una mega mi costa 13 euro un rele shield da 8 3.50...E' Comunque super conveniente.

Sisi superconveniente eccome ! .... Con quel principio di risparmio e dei componenti che intendi usare darai lavoro a molte persone

  • Vigili del fuoco - infermieri - polizia municipale (questi però li paghiamo noi!)
  • muratori
  • Imbianchini
  • Serramentisti
  • Arredatori
  • Elettricisti
  • ci sarebbe un altra impresa (ma solo se c'è qualcuno in casa)

Ti consiglio vivamente di non toccare l'impianto e di lasciare perdere, per la tua sicurezza e quella degli altri, parti col piede sbagliato.

RIngrazio vivamente per i consigli e l'apprensione alla mia incolumità, ma la mia domanda non era inerente alla mia sicurezza personale o dei miei familiari dei quali chiaramente credo di sapermi occupare, ma ad un aiuto inerentemente al programma per poter gestire sia via ethernet shield che tramite pulsante uno stesso punto luce, potreste darmi una mano? Ringrazio nuovamente

pablos:

prevede l’utilizzo di relè passo passo a due contatti

Puoi mostrare un link di quei relays?

ciao

Io li ho trovati qui http://it.farnell.com/finder/20-22-8-230-0000/rele-a-gradini-modulare-230-vca/dp/1169288
e qui http://it.rs-online.com/web/p/rele-bistabili/5111010/
Non ho ancora acquistato e non so se poi saranno davvero questi o se li trovo da un distributore locale.
Mi piacerebbe trovarne di compatibili magari SSR ma già questi costano una tombola e non oso immaginare il costo di un SSR doppio contatto (sempre che esista).
Per completezza devo ancora informarmi se a livello di sicurezza/regolamenti è possibile sfruttare un cantatto con 240V AC e l’altro con 5V CC o 24V AC o simile

La battuta di Pablos sembra ti abbia urtato un po' e me ne dispiace, ma sono sicuro che non era detta in senso offensivo.

Tuttavia la mia sensazione è che tu non conosca i pericoli a cui vai incontro.
Già solo la scelta dei materiali è preoccupante: una MEGA originale costa sui 50 euro e se quella da te scelta ne costa 13 vuol dire che è "cinese".
Personalmente non affiderei la mia vita e quella dei miei familiari a dei prodotti che non siano di prima qualità.

Dal punto di vista legale, le attuali normative prevedono una certificazione dell'impianto elettrico di casa redatta da un professionista abilitato e dubito che possa firmare un documento che si basi sul tuo progetto, almeno quello che sembra tu voglia affrontare.

Ascolta il mio consiglio: parla con un elettricista esperto del tuo progetto e ascolta il suo parere prima di andare avanti.

Allora, ricominciamo e spero con questo di ottenere l'aiuto da me richiesto. Non voglio essere polemico ma cavolo.
Capisco ogni cosa, ma secondo me qui siete voi a sottovalutare le persone.
Io sono seguito da un elettricista per quanto riguarda l'impianto ci mancherebbe.
A dirla tutta l'idea di interfacciare direttamente al "PLC" sarebbe sua. i relè sono della sainsmart che non sarà il top ma danno una certificazione e l'arduino è effettivamente originale con tanto di serigrafia bianca con l'italia disegnata dietro.( come io ce l'abbia a 13 euro non credo sia importante no?)
Ma a prescindere dalla mia componentistica io vorrei tanto che qualcuno mi aiutasse per la parte di programmazione se poi mi dite che siccome spendo troppo poco non sono degno di avere la risposta al mio problema allora passo e chiudo scusandomi di averVi fatto perdere tempo. Ma da quanto sapevo io il forum è una condivisione di sapere dove qualcuno fa una richiesta e altri cercano di aiutare. Come ho detto apprezzo il vostro interessamento per la mia incolumità ma allo stesso dovreste essere preoccupati per le gomme che monto o peggio per i freni o l'usura della macchina, se faccio un incidente grave del resto sempre i pompieri pagati da Voi e la Polizia esce.
Comunque ditemi Voi, in qualche modo vorrei avanzare col mio progetto che è sotto la mia responsabilità, non sentiteVi in colpa di aiutarmi.
Grazie

Luca non ti agitare va, io parlo come proffesionista e faccio questo lavoro e solo questo da 22 anni, le mie non sono battute, quindi se ti va a fuoco la casa perchè ci hai messo le mani con le cineserie sono affari tuoi, se ti vanti di spendere 3,50 euro per 8 relays è giusto che ti venga fatto notare. Poi vuoi vuoi sostituire i normali comandi 230VAc con i 5v (5v su una rete elettrica sono troppo pochi) e questa è un’altra ennesima porcata.

In sintesi … ci sono imprese, artigiani che passano giornate davanti a burocrazie, disegni, progetti, relazioni, permessi, certificazioni, controlli e tutti i caxxi, poi arriva uno fresco che si fa 2 vanti modificando un impianto con 4 porcate dicendo che è vantaggiosissimo, questo mi ha dato fastidio non la tua incolumità.

allora passo e chiudo scusandomi di averVi fatto perdere tempo

Ma ciao!

c’è anche questa … prendila subito http://www.ebay.it/itm/Ethernet-W5100-Module-Shield-For-Funduino-2009-UNO-Mega-1280-2560-/371140093653?pt=Componenti_elettronici_attivi&hash=item5669ac66d5

Guarda,la mia più che agitazione è sorpresa: per l'atteggiamento di chi si arroga il diritto di commentare senza nemmeno sapere che cosa ha davanti. Tu saprai tutto e sarai un mega professionista ma 1 non devo modificare l'impianto ma farlo da 0 e 2 non mi vanto proprio di un cavolo visto che l'aspetto economico è uscito solo per giustificare un non acquisto di altri relè.
Quindi se non intelligi ciò che leggi non puoi poi permetterti di giudicare.
Detto questo ho chiesto un pelino di aiuto informatico, anzi l'ho richiesto e poi ancora, ma qui sembra che fosse più importante parlare di come non fare. Il punto è che tu non rappresenti il forum quindi sto ancora sperando che qualcuno mi dia il famoso aiuto