CamperOnLine
  • Camper
    • Camper usati
    • Camper nuovi
    • Produttori
    • Listino
    • Cataloghi
    • Concessionari e rete vendita
    • Noleggio
    • Van
    • Caravan
    • Fiere
    • Rimessaggi
    • Le prove di CamperOnLine
    • Provati da voi
    • Primo acquisto
    • Area professionisti
  • Accessori
    • Accessori e Prodotti
    • Camping Sport Magenta accessori
    • Produttori
    • Antenne TV
    • Ammortizzatori
    • GPS
    • Pneumatici
    • Rimorchi
    • Provati da Voi
    • Fai da te
  • Viaggi
    • Diari di viaggi in camper
    • Eventi
    • Foto
    • Check list
    • Traghetti
    • Trasporti
  • Sosta
    • Cerca Strutture
    • Sosta
    • Aree sosta camper
    • Campeggi
    • Agriturismi con sosta camper
    • App Camperonline App
    • 10 Consigli utili per la sosta
    • Area strutture
  • Forum
    • Tutti i Forum
    • Sosta
    • Gruppi
    • Compagni
    • Italia
    • Estero
    • Marchi
    • Meccanica
    • Cellula
    • Accessori
    • Eventi
    • Leggi
    • Comportamenti
    • Disabili
    • In camper per
    • Altro Camper
    • Altro
    • Extra
    • FAQ
    • Regolamento
    • Topic attivi
    • Preferiti
    • Cerca
  • Community
    • COL
    • CamperOnFest
    • Convenzioni Convenzioni
    • Amici
    • Furti
    • Informativa Privacy
    • Lavoro
  • COL
    • News
    • Newsletter
    • Pubblicità
    • Contatto
    • Ora
    • RSS RSS
    • Video
    • Facebook
    • Instagram
  • Magazine
  • Italiano
    • Welcome
  • Accedi
CamperOnLine
Camping Sport Magenta
  1. Forum
  2. Tecnica
  3. Accessori
Galleria

Allarme con Arduino stepbystep per duri come me...

Nuovo
Cerca
Berger Camping
SostaGruppiCompagniItaliaEsteroMarchiMeccanicaCellulaAccessoriEventiLeggiComportamentiDisabiliIn camper perAltro CamperAltroExtra Attivi
1 20 8
13
georgatosat
georgatosat
14/05/2013 214
Inserito il 12/02/2015 alle: 21:05:05
Salve, è da un po' che cerco di cimentarmi in questa avventura grazie anche ai preziosi post su questo forum di camperos e gelax, ma nonostante i numerosi tentativi non riesco a venirne fuori...la difficolta maggiore visto che mi mancano le basi è il dover partire da progetti già avanzati, in compilazione mi da un saccco di errori e non ne vengo fuori...ecco quindi la mia idea di partire da zero nello sviluppo di un allarme che spero col tempo riesca a diventare "avanzato"! partiamo proprio dall'inizio: ho momentaneamente collegato arduino mega ad un display a due righe i2c e ho provato questo sketch per verificarne il funzionamento:
">
id="quote"> Questa per me è stata la base di partenza, una sorta di "messaggio all'accensione"... Adesso ho aggiunto un lettore rfid, questo è lo stato attuale del mio step: Ora bisogna integrare lo sketch per poterlo fare interagire, visto che ci siamo aggiungerei anche tre led per vedere lo stato ed un contatto magnetico ma qui dovete aiutarmi nei collegamenti... Spero che anche ad altri "duri" come me seguino questo post in modo da realizzare un bel progetto comune... Post in aggiornamento MATERIALE UTILIZZATO: Arduino mega 2650 ( http://store.arduino.cc/product/A000067?language=it ) Lettore rfid RCC ( http://www.miniinthebox.com/it/rfid-rc522-rf-ic-card-sensor-module-blu-argento_p617739.html) Display lcd i2c ( http://www.miniinthebox.com/it/arduino-iic-i2c-twi-1602-di-serie-modulo-display-lcd_p508937.html ) Breadboard ( http://www.miniinthebox.com/it/bread-board-830-point-solderless-breadboard-201211270080069_p478904.html )

Modificato da georgatosat il 12/02/2015 alle 21:11:56
16
macrocd
macrocd
19/01/2010 228
Inserito il 13/02/2015 alle: 20:18:41
Ciao, Gli Rfid sono memorie che contengo alcuni Byte nel tuo caso credo si tratti di 4 byte. devi quindi creare un codice che sia in grado di leggere la porta interessata di solito di tipo seriale e interpretare i dati letti. inizia da questo link: [url] http://ismanettoneblog.altervista.org/blog/lezione-11-come-utilizzare-rfid-reader-per-carte-magnetiche/ M.
13
georgatosat
georgatosat
14/05/2013 214
Inserito il 13/02/2015 alle: 21:03:39
quote:Risposta al messaggio di macrocd inserito in data 13/02/2015  20:18:41 (

Visualizza messaggio in nuova finestra

)
>
> Grazie Macrocd per il tuo interessamento, avevo già visto quel link ed ho anche già iniziato a giocarci... ho già letto i 4 byte identificativi dei due tag e della mastercard, non riesco però a compilare lo sketch in modo da gestire l'inserimento e il disinserimento dell'allarme, come base di partenza sto seguendo questo esempio:

https://www.youtube.com/watch?v...

Sono giorni che cerco di modificare il suo sketch per vedere di adattarlo al mio Hardware, ma non ne vengo fuori....
16
macrocd
macrocd
19/01/2010 228
Inserito il 13/02/2015 alle: 22:39:21
...anche io sto affrontando un progetto ambizioso con arduino... e ho diversi problemi in primis il tempo... affronta riga per riga confrontando il tuo sketch con quello del link. poi se vuoi lo vediamo ..
13
georgatosat
georgatosat
14/05/2013 214
Inserito il 13/02/2015 alle: 22:58:40
Attualmente sto lavorando su questo sketch e sembra compilarlo correttamente, l'unico problema è come inserire i 4 byte hex della mia carta, visto che in questo sketch chiede 5 numeri credo decimali: // Codice della mia chiave master da sostituire con il vostro. #define masnum0 70 #define masnum1 43 #define masnum2 191 #define masnum3 180 #define masnum4 102
quote:/** * Centrale antifurto costruita con Arduino. Materiali: * Arduino Mega, lettore RFID RC522, contatto magnetico, 3 led colorati, * un pulsante, un modulo relè. * Importante, collegare il lettore RFID ai pin di Arduino come segue: * MOSI: Pin 51 / ICSP-4 * MISO: Pin 50 / ICSP-1 * SCK: Pin 52 / ISCP-3 * SDA: Pin 53 * RST: Pin 5 */ #include <SPI.h> #include <RFID.h> #include <EEPROM.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #define SS_PIN 5 #define RST_PIN 53 // Codice della mia chiave master da sostituire con il vostro. #define masnum0 70 #define masnum1 43 #define masnum2 191 #define masnum3 180 #define masnum4 102 #define sensorePir1 5 // Ingresso sensore 1 #define releSirena 7 // A questo pin si può collegare ad esempio un relè che comanda una sirena esterna autoalimentata #define ledRosso 15 // E' il led che indica lo stato della centrale #define ledGiallo 14 // E' il led che indica lo stato del sensore 1 #define resetKey 6 // pulsante di reset e visualizzazione memoria di allarme #define dispositivo1 3 // Uscita dispositivo 1 #define pausa 5000 // Costante che definisce il tempo di ingresso, in questo caso 5 secondi. Il tempo di uscita è possibile modificarlo qualche istruzione più in fondo. RFID rfid(SS_PIN, RST_PIN); LiquidCrystal_I2C lcd(0x27,16,2); String readString = String(30); boolean statoAntifurto = 0; // Variabile antifurto attivo boolean statoAllarme = 0; // Variabile centrale in allarme boolean statoPir1 = 0; // Variabile di stato del sensore 1 boolean statoDispositivo1 = 0; // Variabile di stato on/off del dispositivo boolean cardMaster = 0; // Variabile modalità chiave master boolean memoriaAllarme = 0; // Variabile per gestire la memoria di allarme boolean tastoPremuto = 0; // Variabile che controlla la pressione prolungata del tasto reset int slave; // Contatore di chiavi salvate int lamp; // Variabile per il lampeggio nel tempo di uscita int sernum0; int sernum1; int sernum2; int sernum3; int sernum4; void setup() { lcd.begin(); SPI.begin(); rfid.init(); Serial.begin(9600); pinMode(ledRosso, OUTPUT); pinMode(releSirena, OUTPUT); pinMode(ledGiallo, OUTPUT); pinMode(dispositivo1, OUTPUT); pinMode(sensorePir1,INPUT); pinMode(resetKey, INPUT); digitalWrite(ledRosso, LOW); digitalWrite(ledGiallo, LOW); digitalWrite(dispositivo1, HIGH); standby(); } void loop() { // Inizio blocco per la gestione locale della centrale // Rileva un tag... if (rfid.isCard()) { // Legge il seriale... if (rfid.readCardSerial()) { sernum0 = rfid.serNum[0]; sernum1 = rfid.serNum[1]; sernum2 = rfid.serNum[2]; sernum3 = rfid.serNum[3]; sernum4 = rfid.serNum[4]; slave = EEPROM.read(0); // Se il seriale letto corrisponde con il seriale Master // attiva o disattiva la modalita Memorizzazione chiavi // e in più visualizza il numero di chiavi salvate... if (sernum0 == masnum0 && sernum1 == masnum1 && sernum2 == masnum2 && sernum3 == masnum3 && sernum4 == masnum4) { if (statoAntifurto == 0) { lcd.backlight(); if (cardMaster==0) { lcd.clear(); lcd.print("CARD MASTER"); delay(2000); lcd.clear(); lcd.print("GESTIONE CHIAVI"); cardMaster = 1; lcd.setCursor(0, 1); lcd.print("Chiavi slave: "); lcd.setCursor(15, 1); lcd.print(slave); delay(3000); } else { cardMaster = 0; lcd.setCursor(0, 1); lcd.print("Annullata "); delay(3000); standby(); } } } // Se invece il seriale letto corrisponde con uno dei tre gruppi // di chiavi memorizzate allora attiva o disattiva l'allarme. else if ((sernum0 == EEPROM.read(1) && sernum1 == EEPROM.read(2) && sernum2 == EEPROM.read(3) && sernum3 == EEPROM.read(4) && sernum4 == EEPROM.read(5)) || (sernum0 == EEPROM.read(6) && sernum1 == EEPROM.read(7) && sernum2 == EEPROM.read(8) && sernum3 == EEPROM.read(9) && sernum4 == EEPROM.read(10)) || (sernum0 == EEPROM.read(11) && sernum1 == EEPROM.read(12) && sernum2 == EEPROM.read(13) && sernum3 == EEPROM.read(14) && sernum4 == EEPROM.read(15))) { lcd.backlight(); if (cardMaster==0) { if (statoAntifurto == 0) { statoAntifurto = 1; lcd.clear(); lcd.print("CHIAVE VALIDA"); delay(2000); lcd.clear(); lcd.print("TEMPO DI USCITA"); lamp=1; for (lamp; lamp <= 10; lamp++) { //Sostituire il 10 con il numero di secondi che si desidera per il tempo di uscita. digitalWrite(ledRosso, HIGH); delay(500); digitalWrite(ledRosso, LOW); delay(500); } attiva(); } else { statoAntifurto = 0; statoAllarme = 0; lcd.clear(); lcd.print("CHIAVE VALIDA"); delay(2000); disattiva(); } } } // Se il seriale letto è diverso dal master e nemmeno presente in memoria, // e se è attiva la modalita Memorizzazione chiavi, salva il seriale in memoria // come slave1, slave2 o slave3. else if (cardMaster == 1 && slave == 0) { lcd.clear(); lcd.print("Chiave rilevata!"); EEPROM.write(0, 1); EEPROM.write(1, sernum0); EEPROM.write(2, sernum1); EEPROM.write(3, sernum2); EEPROM.write(4, sernum3); EEPROM.write(5, sernum4); cardMaster = 0; delay(1000); lcd.setCursor(0, 1); lcd.print("Slave 1 salvata!"); delay(3000); standby(); } else if (cardMaster == 1 && slave == 1) { lcd.clear(); lcd.print("Chiave rilevata!"); EEPROM.write(0, 2); EEPROM.write(6, sernum0); EEPROM.write(7, sernum1); EEPROM.write(8, sernum2); EEPROM.write(9, sernum3); EEPROM.write(10, sernum4); cardMaster = 0; delay(1000); lcd.setCursor(0, 1); lcd.print("Slave 2 salvata!"); delay(3000); standby(); } else if (cardMaster == 1 && slave == 2) { lcd.clear(); lcd.print("Chiave rilevata!"); EEPROM.write(0, 3); EEPROM.write(11, sernum0); EEPROM.write(12, sernum1); EEPROM.write(13, sernum2); EEPROM.write(14, sernum3); EEPROM.write(15, sernum4); cardMaster = 0; lcd.setCursor(0, 1); lcd.print("Slave 3 salvata!"); delay(3000); standby(); } } } rfid.halt(); // Se l'infrarosso rileva un movimento accende il led giallo if (digitalRead(sensorePir1) == HIGH) { digitalWrite(ledGiallo, HIGH); statoPir1=1; } else { digitalWrite(ledGiallo, LOW); statoPir1=0; } // Se l'infrarosso rileva un movimento e l'antifurto e attivo // e quindi non in allarme, attiva l'allarme e memorizza la zona corrispondente. if (digitalRead(sensorePir1) == HIGH && statoAntifurto == 1 && statoAllarme == 0){ allarme(); if (memoriaAllarme == 0) { memoriaAllarme = 1; EEPROM.write(16, 1); // Con questa istruzione salva la zona numero 1 in memoria, } } // Se è stata attivata con la card Master la modalità "Memorizzazione chiavi", // premendo il pulsante di reset si azzera il database // delle chiavi salvate fino a quel momento. if (digitalRead(resetKey) == HIGH && cardMaster == 1) { cardMaster = 0; for (int i=0; i<16; i++){ EEPROM.write(i, 0); } lcd.backlight(); lcd.clear(); lcd.print("Reset chiavi..."); delay(3000); standby(); } // Se si preme il tasto reset mentre la centrale e in standby si potrà visualizzare l'ultima memoria di allarme // se si mantiene premuto invece si effettua un reset if (digitalRead(resetKey) == HIGH && statoAntifurto == 0) { tastoPremuto=1; delay(1000); if (digitalRead(resetKey) == HIGH && statoAntifurto == 0 && tastoPremuto == 1) { tastoPremuto=0; EEPROM.write(16, 0); lcd.backlight(); lcd.clear(); lcd.print("Memoria Allarme:"); lcd.setCursor(0, 1); lcd.print("Reset"); delay(3000); standby(); } else { tastoPremuto=0; lcd.backlight(); lcd.clear(); lcd.print("Memoria Allarme:"); lcd.setCursor(0, 1); if (EEPROM.read(16) > 0) { lcd.print("Zona "); lcd.setCursor(5, 1); lcd.print(EEPROM.read(16)); } else { lcd.print("Nessuna Memoria"); } delay(3000); standby(); } } } void standby() { lcd.clear(); lcd.print("AllarmDuino 2.0"); delay(1000); lcd.noBacklight(); } void allarme() { delay(pausa); statoAllarme = 1; digitalWrite(releSirena,HIGH); lcd.backlight(); lcd.clear(); lcd.print(" ALLARME! "); delay(1000); lcd.noBacklight(); } void attiva() { statoAntifurto=1; digitalWrite(ledRosso, HIGH); lcd.backlight(); lcd.clear(); lcd.print(" ANTIFURTO "); lcd.setCursor(0, 1); lcd.print(" ATTIVO "); delay(1000); lcd.noBacklight(); } void disattiva() { statoAntifurto=0; statoAllarme=0; memoriaAllarme = 0; digitalWrite(ledRosso, LOW); digitalWrite(releSirena, LOW); lcd.backlight(); lcd.clear(); lcd.print(" ANTIFURTO "); lcd.setCursor(0, 1); lcd.print(" DISATTIVO "); delay(2000); standby(); }>
>

Modificato da georgatosat il 13/02/2015 alle 23:03:33
Tour dell'Arco Alpino: da ovest a est
Tour dell'Arco Alpino: da ovest a est
Finlandia in camper: il piccolo sentiero
Finlandia in camper: il piccolo sentiero
Finlandia in camper: Soiva Metsa
Finlandia in camper: Soiva Metsa
Camper Calimero alla Duna di Pilat
Camper Calimero alla Duna di Pilat
Il paradiso può attendere, la Sardegna
Il paradiso può attendere, la Sardegna
Previous Next
16
macrocd
macrocd
19/01/2010 228
Inserito il 13/02/2015 alle: 23:35:16
prendi un'altro sketch dove riesci a leggere i numeri di carta ad esempio nella cartella delle librerie rfid. leggi la tua carta master e sostituisci il codice letto in : #define masnumXX capisci cosa leggi in seriale e in che formato. vai su calcolatrice di windows, visualizza programmatore e traduci da dec a Hex o viceversa.
13
georgatosat
georgatosat
14/05/2013 214
Inserito il 14/02/2015 alle: 00:03:48
quote:Risposta al messaggio di macrocd inserito in data 13/02/2015  23:35:16 (Visualizza messaggio in nuova finestra)>
> Ho gia letto i numeri della carta, quindi per un ipotetico A1B2C3D4 dovrei mettere cosi?: #define masnum A1B2C3D4 oppure cosi?: #define masnum0 A1 #define masnum1 B2 #define masnum2 C3 #define masnum3 D4
16
macrocd
macrocd
19/01/2010 228
Inserito il 14/02/2015 alle: 08:53:05
Io scriverei: A1 hex = 161 dec B2 hex = 178 dec quindi #define masnum0 161; #define masnum1 178; ecc... perchè un byte in esadecimale ha solo 2 cifre quindi suppongo che sono letti in decimale. M.
15
gelax
gelax
28/11/2010 267
Inserito il 25/05/2015 alle: 22:37:06
In ritardo.... avrai già risolto ...;-)
Guarda se questo semplice codice ti può essere di aiuto...


/*  Connessione RFID
* Pin layout should be as follows (on Arduino Uno):
* MOSI: Pin 11 / ICSP-4
* MISO: Pin 12 / ICSP-1
* SCK: Pin 13 / ISCP-3
* SS: Pin 10
* RST: Pin 9
* VCC 3,3
* GND
Serial DEC 131 253 59 170 239   HEX 83 FD 3B AA EF  Chiave
Serial DEC 149 166 13 214 232   HEX 95 A6 D D6 E8  Tessara

*/

#include
#define RST_PIN 9
#define SS_PIN 10
RFID rfid(SS_PIN, RST_PIN);
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
int carta1[5] = { 131, 253, 59, 170, 239 };
int cartaOK = 0;
int cartaNOK = 0;

void setup() {
}

void loop() {
if (rfid.isCard()) {
    if (rfid.readCardSerial()) {
      if (rfid.serNum[0] == carta1[0] && rfid.serNum[1] == carta1[1] && rfid.serNum[2] == carta1[2] && rfid.serNum[3] == carta1[3] && rfid.serNum[4] == carta1[4])
      {
        cartaOK = 1;
      } else {
        cartaNOK = 1;
      }
    }
  }


  if (cartaOK == 1) {

     // Inserisci qui il codice da eseguire se la carta è riconosciuta
    }
 if (cartaNOK == 1) {
      Serial.println("Errore Carta");
      TonoNOK();
 // Inserisci qui il codice da eseguire in caso di errore
    }

    cartaOK = 0;
    cartaNOK = 0;
    rfid.halt();
    delay(500);
  }

Modificato da gelax il 25/05/2015 alle 22:57:11
SostaGruppiCompagniItaliaEsteroMarchiMeccanicaCellulaAccessoriEventiLeggiComportamentiDisabiliIn camper perAltro CamperAltroExtra Attivi
Argomenti recenti
Accessori
Giuntare cavo coassiale antenna
Ciao a tutti, Come da titolo sono a chiedere gentilmente informazioni a chi ne sa più di m...
erfiuma
Ieri alle: 23:30
Cellula abitativa
Summit 600l 2026 frigorifero rumorosissimo
Buona sera a tutti, siamo nuovissimi camperesti e felicissimi proprietari di un nuovo Poss...
Andreabot
Ieri alle: 21:21
Marchi
Acquisto primo Camper D’Epoca
Buonasera, piacere di conoscervi. Ho già letto diverse discussioni a riguardo però vi chi...
Frigox
Ieri alle: 21:15
Altro non sui camper
Scoperta l'acqua calda (anche per l'inverno)
Da Il Corriere della sera Addio ai caselli in autostrada: come funziona il «free flow», i...
marob
Ieri alle: 17:43
Cellula abitativa
Porta cellula Autostar Passion
Salve, qualcuno sa il tipo di attuatore inserito nella porta della cellula per la chiusura...
corsir
Ieri alle: 15:25
Cellula abitativa
Passaruota
Buongiorno a tutti, dopo l'ultimo viaggio non mi sono fatto mancare nulla ...anche lo scop...
salla
Ieri alle: 14:53
Accessori
Batteria litio autoriscaldata o no?
Buongiorno a tutti, anche questo anno vi scrivo per un consiglio sulle batterie. In Olanda...
salla
Ieri alle: 14:42
Accessori
Scheda inverter generatore Tec 29
Un saluto a tutti, sono riuscito a riparare la scheda inverter del mio Tec 29 se qualcuno ...
dotttubo
Ieri alle: 14:32
Compagni di viaggio
Natura, yoga e pace.
Salve, sono Carlo, molto piacere. Sono Dottore Ricercatore in Medicina Preventiva e Nutriz...
carlodavoli
Ieri alle: 12:00
Cellula abitativa
Problema parallelo batterie litio su Kea 74 160 cv
Buongiorno a tutti, Ho installato due batterie al litio sul mio Mobilvetta Kea74 2020 160...
SimiCamper
Ieri alle: 10:11
Accessori
Sosp. Aria Al-ko, problemino...
Buongiorno a tutti, dovrei partire fra poche ore e mi sono accorto che uno dei due manomet...
sport15
Ieri alle: 06:36
Marchi
Qualità costruttiva Van
Ciao a tutti, Avrei intenzione di sostituire il mio mansardato del 2000 con un van 540. Sa...
LucArm82
09/08/26 - 20:42
169k Facebook
342k Instagram
42,6k TikTok
74K Youtube
CamperOnLine - Copyright © 1998-2026 - P.Iva 06953990014
Informativa Privacy Sitemap
Caricamento...

Accedi

Recupera Password
Nuovo utente

Vuoi eliminare il messaggio?

Sottoscrizione

Anteprima

Preferenza

Il messaggio è in fase di inserimento.

loading

CamperOnLine

Buongiorno gentile utente,

da oltre 20 anni Camperonline offre gratuitamente tutti i suoi servizi
grazie agli inserzionisti che ci hanno dato la loro fiducia, permettici di continuare il nostro lavoro disattivando il blocco delle pubblicità.

Grazie della collaborazione.

Azione eseguita con successo

Azione fallita

Condividi

Condividi questa pagina:

O copia il link