Introduzione

Si tratta di una rete CAN basata sul protocollo can J1939 modificato e semplificato.

La rete è formata da molti dispositivi di input e output che comunicano tra di loro attraverso un bus CAN.

QUI potete vedere lo schema generale.

QUI invece potete avere qualche nozione generale su CAN e J1939 e potete scaricare le routines che ho utilizzato nel mio progetto per tale comunicazione.

Il bus CAN prevede l'utilizzo di un doppino in rame per la trasmissione dei segnali. Io ho utilizzato un conduttore a 4 poli perchè oltre al segnale distribuisco anche l'alimentazione a 12 Volt. Ciascun dispositivo ha un alimentatore autonomo che attinge ai 12 Volt distribuiti.

Dove non è stato possibile cablare il bus CAN mi sono avvalso di dispositivi a radiofrequenza; sono moduli preassemblati facilmente interfacciabili con un microprocessore, molto affidabili e dal costo veramente basso.

I dispositivi più complessi prevedono anche una interfaccia USB che mi è stata utile per le fasi di test e debugging - questa interfaccia può essere anche ignorata nella realizzazione hardware definitiva.

Tutto ciò che presento è stato realmente costruito ed è "in produzione" a casa mia.

Ripeto comunque che:

I dispositivi sono ad uso amatoriale, non fornisco garanzie di nessun genere. Quanto è presentato non è utilizzabile se non per scopi amatoriali - è vietato utilizzare questo materiale per altri scopi senza il mio consenso.

Concetti generali

La rete CAN ha una potenziale velocità dell'ordine dei megabit/secondo. Tuttavia la scelta architetturale è stata quella di attestarla intorno ai 38Kbit/secondo; ciò consente di utilizzare dispositivi non quarzati e di non attenersi strettamente alla topologia lineare del bus CAN consentendo anche configurazioni ramificate.

L'indirizzo fisico di ciascun dispositivo va impostato nel firmware relativo - la possibilità di assegnazione automatica consentita dal protocollo can J1939 non viene utilizzata.

Gli indirizzi dei dispositivi e le tipologie di messaggio (pduformat) sono censiti in un unico file. I formati dei messaggi non sono stati censiti in un unico punto (pigrizia...) - consiglio a chiunque si cimenti in un progetto simile di farlo, o quantomeno di predisporsi un foglio excel con tali informazioni, tipo questo.

Ogni dispositivo è riprogrammabile direttamente da rete CAN senza necessità di utilizzare un programmatore (io uso pickit3) tranne che per la prima programmazione o in caso di programmazione errata bloccante.

QUI trovi ulteriori dettagli e le routines interessate.

Ogni dispositivo dispone anche di una comunicazione seriale con relativi menu - la comunicazione seriale è virtuale ed avviene sulla rete CAN medesima - può essere interfacciata con un PC tramite una interfaccia dedicata (dispositivo "monitor" can-usb) o tramite il server web (CAN132) e relativo software di comunicazione su PC.

ps Alcune foto non sono relative alle ultime versioni dei dispositivi.

I dispositivi

I dispositivi che presento sono i seguenti:

    CanLuce   serve per avere delle luci ad accesione e spegnimento manuale o automatico. L'interruttore originale va staccato datta rete e connesso a questo dispositivo consentendo ancora l'accensione manuale. 

    Il dispositivo è connesso però in rete CAN e quindi può prevedere accensioni temporizzate o condizionate.

    Io ho alcune luci sulle fioriere che si accendono e spengono in maniera temporizzata, altre luci (esterne) che si accendono solo se c'è buio e apro il cancellino o se qualcuno suona il campanello o se scatta l'allarme.

    CanTermo è un dispositivo in grado di gestire autonomamente fino a 4 pompe per il riscaldamento di un appartamento. Interfaccia 4 sensori di temperatura da disporre nei 4 locali. Agisce da cronotermostato gestendo fino a 16 programmi, con programmazione giornaliera o settimanale con risoluzione al minuto. Necessita del modulo CAN132 per poter essere gestita con le apposite pagine web.

    CanMeteo rileva e mette "in rete" una serie di parametri ambientali (temperatura, pressione, umidità, luce).

    Per questioni puramente pratiche (il dispositivo è collocato nel posto giusto) mi fa anche da input per rilevare e mettere in rete anche altre informazioni come consumo elettrico, produzione fotovoltaica, presenza o assenza di rete elettrica, stato della linea telefonica, stato degli apricancelli e del campanello di entrata.

    CanTlc fa da interfaccia con il radiocomando di casa ed ha in output l'apertura dei cancelli oltre che la rete CAN. Quindi con il telecomando posso accendere e spegnere l'allarme, aprire i cancelli, accendere le luci esterne, accendere gli irrigatori del giardino, alzare o abbassare le tende da sole, ...

    CanRF serve ad inviare e ricevere comandi dalla rete CAN a dispositivi fisicamente non raggiuti dalla rete tramite interfaccia radio a 2,4Ghz. In casa mia uso questi dispositivi per comandare attuatori esterni: la pompa di ricircolo della piscina e l'albero di natale.

    CanTende può essere usato per comandare / automatizzare la salita e la discesa di tende da sole.

    CanInnaffia si utilizza per comandare gli irrigatori del giardino da rete CAN, quindi da pannello web, oppure da telecomando, oppure da programmazione oraria, o come vi pare a voi.

    Can7segm è un dispositivo accessorio che utilizzo connesso alla rete CAN per evidenziare su un display a 7 segmenti led  la differenza tra consumo elettrico complessivo e produzione fotovoltaica. O quello che volete voi.

    CanClock è un orologio/sveglia connesso in rete CAN che si sincronizza (tramite CAN132) all'orario internet. La sveglia è attivabile localmente o da rete CAN. Tramite i pulsanti di setup locali posso anche accendere le luci notturne esterne. In caso di allarme il display indica anche la zona che ha fatto scattare l'allarme...

    canalarm.top

    CanAlarm: è una centralina di allarme a 32 zone/ingressi. Ogni zona è configurabile ed etichettabile separatamente. Gestisce inputs fissi o con disattivazione automatica. L'attivazione può essere effettuata da server web (CAN132) o da dispositivo lettore di iButton (CanButton) o da dispositivi in grado di inviare sulla rete CAN gli opportuni messaggi (CanCmd).

    CanMonitor è un dispositivo accessorio con una interfaccia CAN ed una interfaccia USB. Connesso ad un PC consente di monitorare il traffico CAN e di conversare tramite programma di comunicazione seriale con tutti i dispositivi in rete.

    CanPower consente di trasmettere in rete CAN i valori fisici di tensione e corrente utilizzati dal bus stesso consentendo quindi di monitorare lo stato delle batterie di backup.

    CanToEib è l'interfaccia che permette alla rete CAN di comunicare con la rete EIB di Vimar (by-me). L'interfaccia opportunamente configurata memorizza lo stato di ogni dispositivo e consente tramite il server CAN132 di interagire con pagine html. Tale per cui con pagine web possiamo accendere e spegnere le luci o regolare le tapparelle ad una determinata altezza.