Show Posts
Pages: 1 2 [3] 4 5 ... 18
31  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: September 03, 2013, 02:49:23 pm
 smiley-wink
Come promesso, ecco il primo sketch con connessione ETH e semplice gestione on/off antifurto.
Ho preso spunto da un esempio di sketch pubblicato da Gianni Favilli per testare la ETH.

Code:
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
 
/* ***
ArduoAlarmMega Rev.1.0-130904
By Giuseppe G.
Data di inizio :  04-09-2013

NB:COMPILARE CON IDE ARDUINO 1.0 o successive

Progetto : Supervisione, controllo e gestione di un antifurto via web e locale con ARDUINO Mega 2560 + ETHERNET SHIELD


SVILUPPO HW e SW.
_______________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________

Sviluppo hardware per il controllo di:

STATUS  DESRIZIONE
_______________________________________________________________________________________________________________________
OK      connessione ETH tramite shield Arduino ETH per supervisione e controllo antifurto via internet
work    display LCD di visualizzazione status e parametri 16 caratteri x 2 righe   (by JACK-VC09)
work    tastiera di programmazione a 16 tasti                                      (by JACK-VC09)
        -multi ingressi sensori antifurto con protezione manomissione
        -uscite per sirene, combinatori telefonici, videocamere e segnalatori
work    -buzzer audio

_______________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________

Sviluppo software per la gestione di:

STATUS  DESCRIZIONE
work    listato di partenza by giannifavilli per controllo via ETH e creazione pagina web modificato (by Giuseppe G.)
        -protezione via password a 2 livelli (administrator e operator)
        -programmazione parametri e tempi di configurazione
        -memorizzazione cambio di stato ed operazioni (cronologia) su memory card SD sotto forma di file TXT editabile anche via web
_______________________________________________________________________________________________________________________

Indirizzo di accesso al sever ArduoAlarmMega: http://192.168.1.177

Sketch compilato con IDE Arduino 1.5.3
*** */


 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac address
byte ip[] = { 192, 168, 1, 177 }; // ip arduino internet in
byte gateway[] = { 192, 168, 1, 178 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 
int outPin = 13;  // pin status
int inist = 11;   // pin input istantaneo
int inrit = 12;   // pin input ritardato

String readString; //string
boolean LEDON = false; // flag status antifurto

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(outPin, OUTPUT);
pinMode(inist, INPUT);
pinMode(outPin, INPUT);
Serial.begin(9600);

digitalWrite(inist, HIGH);  //pull up ingresso istantaneo
digitalWrite(inrit, HIGH);  //pull up ingresso ritardato

}
 
void loop(){
 
/*inizio client*/
EthernetClient client = server.available();
if (client) {
  boolean currentLineIsBlank = true;
  while (client.connected()) {
    if (client.available()) {
      char c = client.read();
        readString.concat(c); //store characters to string
      //if HTTP request has ended
      if (c == '\n' && currentLineIsBlank) {
         Serial.print(readString);
        if(readString.indexOf("L=1") > 0) {// lettura del valore se il LED si deve accendere
          // il led sarà acceso
          digitalWrite(outPin, HIGH); // accendo il led
          LEDON = true;
          Serial.print("ON  pin LED");
          Serial.println(outPin);
          }
          else
          {
          //il led sarà spento
          digitalWrite(outPin, LOW); //spengo il led
          LEDON = false;
          Serial.print("OFF pin LED");
          Serial.println(outPin);
        }
 
        // COSTRUZIONE PAGINA HTML
        client.println("HTTP/1.1 200 OK.....");
        client.println("Content-Type: text/html");
        client.println();
        // inizializzo pagina (da togliere se uso ajax)
        client.print("<html><head><title>ArduoAlarmMega WEB Rev. 1.0-130904</title><meta http-equiv=\"refresh\" content=\"5\"content='text/html; charset=iso-8859-1' ></head><body>");
        //iniza il body
        client.println("<div style='width:360px; height:640px;'>"); //risoluzione per nokia 5800 640x360
        client.println("<h1>STATUS SENSORI</h1><hr />");
       
        //Scrive sul browser il valore dell'ingresso Istantaneo
        client.println("<p>INGRESSO ISTANTANEO = ");
        client.print(digitalRead(inist));
        client.println("<br /></p>");
     
        //Scrive sul browser il valore dell'ingresso Ritardato
        client.println("<p>INGRESSO RITARDATO = ");
        client.print(digitalRead(inrit));
        client.println("<br /></p>");
     
        // link per aggiornare pagina e valori
        client.print("<h2>AGGIORNAMENTO SENSORI: <a href=''>CHECK</a></h2><hr />");
 
        client.println("<h1>CONTROLLO Antifurto via rete ETH</h1>");
        client.println("<hr />");
        client.print("<h1>PIN control n. ");
        client.print(outPin);
        client.println("</h1>");
        client.println("<br />");
        //scrivo il LED status
        client.print("<font size='5'>PIN status: ");
          if (LEDON) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
        client.print("<h2><a href='/?L=1'>ACCENDI</a> | <a href='/?L=0'>SPEGNI</a></h2>");
 
        // firma
        client.println("<hr />");
        client.print("<h4>Visita <a href='http://www.arduoalarmmega.blogspot.it' target='_blank' />www.arduoalarmmega.blogspot.it</a></h4>");
        client.println("<hr />");
 
        // chiudo il div
        client.println("</div>");
        // chiudo pagina da togliere se uso ajax
        client.println("</body></html>");
 
        // pulisco la stringa per la successiva lettura
        readString="";
        //fermo il client
        client.stop();
 
        } //if c == /n
    } // if client available
  } // while client connesso
} // FINE if client
 
     
 
} // fine loop

NB: Questa versione è solo di partenza e dimostrativa. Gli eventuali upgrade si HW che SW saranno decisi in base all' HW realizzato e testato.

Ho voluto iniziare da qui, semplicemente con la shield ETH già testata e funzionante.
Qualora gli upgrade HW e software saranno funzionali, diventeranno oggetto di discussione e miglioramento.

I riferimenti HW di partenza saranno quelli citati nel post precedente da "jack-vc09".

Sono ben accetti consigli di qualsiasi genere, puchè inerenti al progetto.

Buon lavoro a chi vorrà cimentarsi nel progetto.  smiley-lol
32  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: September 02, 2013, 05:34:55 am
 smiley-eek
Il C4 non in serie, ma in parallelo all' alimentazione degli integrati sul 5V !!!
33  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: September 02, 2013, 04:57:21 am
 smiley-roll
Il D1 lo devi inseire prima del 7805, mentre dovresti inserire un eventuale condensatore elettrolitico da 100 o 220 uF in uscita al 7805.

Poi un altro condensatore in parallelo all'alimentazione + e - del telecomando sempre di tipo elettrolitico da 100 o 220 uF 25V
34  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 31, 2013, 01:30:39 pm
Se riesci prova ad alimentarlo con 13,8v con la resistenza e abbassa la tensione fino a 11V.
Se così funziona ancora, allora non hai problemi.
Ho capito che quel telecomando è di un campanello che ti avvisa se l'antifurto interviene vero ?

Io sono riuscito a farlo funzionare anche con 9V, naturalmente la potenza diminuisce e quindi anche il raggio di azione.

Metti comunque un condensatore elettrolitico da 100-200 uF in parallelo all'alimentazione che aiuta a diminuire i picchi di assorbimento.

Altra cosa: lo schema del box và bene, ma anche li, inserisci qualche condensatore di filtro e di livello sia in ingresso che in uscita allo stabilizzatore, compreso un diodo in serie di polarizzazione all' alimentazione.
35  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 31, 2013, 10:46:46 am
 smiley-razz
Altro consiglio, se devi acquistare il cavo, prendi il 6 poli, potrebbe sempre tornarti utile un domani per eventuali modifiche al circuito. (la differenza di costo è relativamente bassa), 10-15% in più del 4 poli)

Non è obbligatorio, ma i cavi che non usi, li colleghi a massa nel punto di  partenza.
Nel caso ne avessi bisogno, lo golleghi dove necessita.
36  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 31, 2013, 10:40:09 am
 smiley-roll
Anche io toglierei la R3 e inserirei la R4 e R5 sul PCA9600 del display/tastiera per far un bel lavoro.

Queste due resistenze, si chiamano resistenze di fine linea e andrebbero montate sul dispositivo più distante.
 smiley-wink

I valori di R4 e R5 sono corretti, ma R3 creerebbe un caduta di circa 1,5V sulla linea + che potrebbe disturbare il segnale.
Tale accorgimento potrebbe essere utile nel caso i device non sono di tipo slave.
In questo modo si potrebbe verificare il + con un analog input, dove se il segnale scende almeno di 1v, vuol dire che il bus è occupato.
Nel nostro caso, al momento sono di tipo slave, dove il master è uno solo, la cenntrale.  smiley-draw
37  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 12:11:54 pm
 smiley
Ciao Bertu,

qualcuno con un po' di esperienza è sempre ben accetto.

Il progetto è open e sto cercando di renderlo il più professionale possibile, o per lo meno ci provo, estrapolando le cose migliori un pò da una parte ed un pò dall'altra, visto che anche io ho montato diversi antifurti di diverse marche ormai da 20 anni a questa parte.

Le basi HW le trovi qui: http://arduoalarmsimple.blogspot.it/

Buon lavoro.
38  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 12:00:41 pm
 smiley-razz
Mentre il bus per poter collegare ppiù device è questo.
39  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 11:59:35 am
 smiley-mr-green
Allora il collegamento tra i due PCA9600 è questo, diretto ponticellando RX con TX dello stesso verso l'altro e viceversa.
40  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 08:56:28 am
 smiley-cry
Credo ancora non vada bene.

Intanto hai collegato i driver PCA9600 a 4 fili come 485, io lo farei 422 a due fili.

Verifica anche se si devono intrecciare i segnali (il TX deve andare nell' RX e via dicendo) guarda il datasheet in PDF.  smiley-roll

Il PCA9600 di partenza si deve trovare vicino Arduino, mentre l'altro vicino al PCF8574 vicino al display, quindi devi rivedere lo schema.

In poche parole il cavo lungo si trova tra i due PCA9600.  smiley-wink

41  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 04:11:01 am
Ciao Testato,

Quote
Non so, probabilmente Giuseppe ha più esperienza di me in merito, se usare un 5 poli con schermo, e tenere la garza connessa solo lato arduino, aiuterebbe ulteriormente. Cioe gnd internamente al cavo e gnd lato garza non mi convince.
Cosa ne pensi Giuseppe ?

Il GND come cavo, permette di portare un bel pò di mA senza generare disturbi, mentre il GND su schermo, non deve portare alcun segnale di appoggio, ma deve essere utilizzato come semplice schermo (protezione, schermo dei cavi gabbia di Faraday).

In mancanza di altro, come ultima spiaggia lo si può utilizzare per portare il segnale, ma con assorbimenti relativamente bassi per non generare eventuali disturbi che potrebbere in questo caso entrare in tutti gli alri cavi.

Alle volte ci sono cavi schermati con la calza e un cavo spelato che sono a contatto, ma in questo caso il cavo spelato porterà i mA di alimentazione e segnali, mentre la calza servirà da schemo.

42  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 03:59:28 am
 smiley-roll

Userai semplicemente un cavo schermato a 6 fili per antifurto.

Normalmente è composto da:
cavo rosso da 0,25mm (+12V power)
cavo nero da 0,25mm (GND power)
cavo giallo da 0,15mm
cavo verde da 0,15mm
cavo bianco da 0,15mm
cavo blu da 0,15mm

Come vedi il +5v, il +12v, sono segnali che occorre proteggere se portati fuori dalla centrale.

Altra soluzione, quella di portare fuori solo il +12V ed inserire uno stabilizzatore es.LM7805 sul circuito di utilizzo.

Questi sono tutti accorgimenti da tener conto sulla realizzazione pratica di una centrale.

Se ci si vuole complicare ancora un pò, basterebbe utilizzare un doppino con gli eventuali circuiti convertitori, dove vengono generati ad esempio 4-20mA e trasformati in tensioni che a sua volta vengono sfruttati per alimentare il circuito.

Il sistema PoE ad esempio fà proprio questo e anche ad elevate velocità con segnali a 100Mbs per le schede ETH.

Ma alla fine quanto costa? ....... Forse è meglio portare fuori il +5V o per farla più pulita, inserire uno stabilizzatore a 5V nel dispositivo da pochi centesimi di euro.


Decidi tù. Normalmente, nelle centrali in commercio, utilizzano solo il 12V poi abbassato a 5V per le varie CPU distribuite.

 smiley-razz

43  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 03:07:45 am
 smiley-roll
Quote
Il PCA 9600 e i PCF8574 resteranno vicino ad arduino e partirò con un cavo di circa 10m dai PCF8574 che andranno a comandare il display, keypad, buzzer, retroilluminazione (anche qui credo di non avere problemi) l'unico problema è portare i 5v e il gnd al display ecc..mi sbaglio?

Credo non sia corretto !
Il PCA9600 ti permette di potenziare e filtrare il segnale I2C verso 422/485, ma attento , ne dovrai mettere 2, uno in partenza e uno in arrivo come descritto sul datasheet.
http://www.nxp.com/documents/data_sheet/PCA9600.pdf

I dispositivi non devono essere vicini, e poi l'utilizzo lontano, ma il contrario.  smiley-wink

Il collegamento corretto sarà:
1) Arduino collegato al PCA9600 di partenza
2) cavo lungo 10-20mt (preferibilmente schermato)
3) PCA9600 di arrivo
4) collegamento al PCF8574 che nella stessa scheda è collegato con il display
5) collegamento al PCF8574 che nella stessa scheda è collegato con la tastiera
e così via......


Guarda l'immagine allegata.
44  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 02:22:17 am
Il PCF8574 è una soluzione, anche perchè diminuisci i cavi da far girare, ma comunque usa cavo schermato come consigliato.
Il doppino non ti basta più, dorai portare anche l'alimentazione (GND e +5V ed eventualmente il +12V) e a questo punto se usi un'altro PCF8574 , o più, con 4-5 fili potrai andare dove vuoi, verso i vari sensori e contatti fino ad un massimo di 8  PCF8574.

Per ogni PCF8574 potresti collegare 8 ingressi !!!  Rimane comunque il problema della schermatura anche a 5V dei collegamenti ai contatti.

Questo credo sarà argomento di discussione nei prossimi post, in realtà dove ci si era arenati nel primo progetto arduoalarm.
45  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: August 30, 2013, 01:44:35 am
 smiley
Ciao jack, un saluto alla comunità,

come anticipato privatamente, rispondo anche qui alle tue richieste, anche perchè mi piacerebbe continuare il progetto nonostante ci siano diversi personaggi bastian contrari.

Quote
le resistenze per il keypad vanno bene da 10k?
SI.

Quote
inoltre posso collegare lcd + keypad + potenziometro + retroilluminazione + un led verde + scheda ingresso per i contatti direttamente al +5 dell'arduino oppure mi conviene utilizzare un'alimentatore esterno?
Certo che si può, basta non esagerare con la corrente da fornire al led della retroilluminazione del display, che solitamente non supera i 150mA.
Se preferisci il led è separato dal circuito, quindi potresti anche alimentarlo con 12V, ma attento ai consumi in sand-by.


Quote
se utilizzo un cavo tipo quello per i citofoni con 8 fili per collegare i pin di arduino all'lcd e keypad con una lunghezza di circa 10 metri ho problemi?

Un consiglio, con il digitale di questo tipo, per collegamenti superiori a 50cm, scordati il cavo dei citofoni, a meno che non utilizzi interfaccie dedicate per l'uso di tale cavo.
Usa sempre cavo schermato con GND collegato allo schermo nel punto di partenza (ES. Arduino) e non esagerare con la lunghezza, potresti avere brutte sorprese sul funzionamento dei device e di arduino stesso.
Se il cavo poi passa insieme al cavo di rete, ancora peggio.



Giuseppe G.
Pages: 1 2 [3] 4 5 ... 18