OM/YL Online  

   

Login  

   

donazione  

 
   Donazione a sostegno e per lo
      sviluppo
del Club Italiano
                Modi Digitali
               Psktrentunisti

   

MultiTrans  

   
   
Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: Antifurto semplice con Arduino

Antifurto semplice con Arduino 4 Anni 2 Settimane fa #1112

  • iz8ifl
  • Avatar di iz8ifl
  • OFFLINE
  • Amministratore
  • Messaggi: 523
  • Ringraziamenti ricevuti 108
  • Karma: 20
vediamo se è questa
Attenzione: Spoiler! [Clicca per espandere]


Ci sono una serie di opzioni dire che sarebbero da testare ed ora non posso cmq ti faccio sapere Lanfranco

Devo guardare anche nella configurazione del forum in amministrazione

Uno è l'opzione code e l'altro è uno spoiler
Il secondo farebbe al caso tuo lo puoi nascondere quando vuoi
Ultima modifica: 4 Anni 2 Settimane fa da iz8ifl.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: IZ3ZLU

Antifurto semplice con Arduino 4 Anni 2 Settimane fa #1113

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 594
  • Ringraziamenti ricevuti 103
  • Karma: 44
Credo sia l'opzione CODE.... guardo su Arduino Forum...
Grazie
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Antifurto semplice con Arduino 4 Anni 1 Settimana fa #1116

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 594
  • Ringraziamenti ricevuti 103
  • Karma: 44
soulribel ha scritto:
:lol: è vero sono un pò latitante un'abitudine visto che sono Siciliano :lol:
Un Mito! :silly:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: soulribel

Antifurto semplice con Arduino 4 Anni 1 Settimana fa #1118

  • soulribel
  • Avatar di soulribel
  • OFFLINE
  • Moderatore
  • Messaggi: 100
  • Ringraziamenti ricevuti 22
  • Karma: 22
domani dovrebbe arrivare il tutto e possiamo iniziare, la cosa buona sono le ferie natalizie ;)
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: IZ3ZLU

Antifurto semplice con Arduino 4 Anni 1 Settimana fa #1120

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 594
  • Ringraziamenti ricevuti 103
  • Karma: 44
Il codice l'ho inserito nel topic del commutatore d'antenna.

www.psktrentunisti.it/psk/forum/7-autoco...o.html?start=30#1119
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Antifurto semplice con Arduino 4 Anni 1 Settimana fa #1121

  • IZ3ZLU
  • Avatar di IZ3ZLU
  • OFFLINE
  • Moderatore
  • Messaggi: 594
  • Ringraziamenti ricevuti 103
  • Karma: 44
Salve,
nel frattempo ho fatto i modo che i sensori e la parte display/buzzer siano separati e connessi tramite wi-fi.
In questo modo si avrà una scatoletta con un Arduino nano e un TX appena dentro alla porta, mentre il display (con un altro Nano) con un buzzer si potrà comodamente mettere dove ci si trova... sul comodino o in cucina.
Lo sketch del TX è il seguente:
#include <Wire.h> 
#include <VirtualWire.h>
int pirPin = 3;
int pirPin1 = 5;
int pinSpeaker= 10;
int ledPin = 13;
const int TX_DIO_Pin = 2;
unsigned int Data;

void setup(){
  Serial.begin(9600);
  pinMode(pirPin, INPUT);
  pinMode(pirPin1, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(pinSpeaker, OUTPUT);
  vw_set_tx_pin(TX_DIO_Pin);//imposto il pin di trasmissione
  vw_set_ptt_inverted(true); 
  vw_setup(1000); 
}
void loop(){
   uint8_t Buffer_Size = 2;
  

 unsigned int Data;
  

 uint8_t RxBuffer[Buffer_Size];


 if (vw_get_message(RxBuffer, &Buffer_Size)){

 Data = RxBuffer[0] << 8 | RxBuffer[1];
        }
  int pirVal = digitalRead(pirPin);
  int pirVal1 = digitalRead(pirPin1);
  Serial.println("Leggo i sensori di presenza");
  analogWrite(ledPin, 0);
  delay(1000);
  if(pirVal == HIGH) {
    analogWrite(ledPin, 255);
    Serial.println("Movimento Esterno");
      Data = 88;
    sendData(Data);
    Serial.println(Data);
    tone(10, 700, 100);
    delay(1000);}
   else if(pirVal1 == HIGH) {
    analogWrite(ledPin, 255);
    Serial.println("Movimento Interno");
      Data = 98;
    sendData(Data);
    Serial.println(Data);
    tone(10, 700, 100);
    delay(500); 
  }
}


void tone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker,HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
  }
  void sendData(int Data){
  byte TxBuffer[2];
  TxBuffer[0] = Data >> 8;
  TxBuffer[1] = Data;
  digitalWrite(13, HIGH); 
  vw_send((byte *)TxBuffer, 2);
  vw_wait_tx(); 
  digitalWrite(13, LOW); 
  delay(1000);
}

Mentre quello dell'RX (display/Buzzer) è il seguente:
#include <VirtualWire.h>
#include <Wire.h>
#include <RTClib.h> 
#include <PCF8574_HD44780_I2C.h>
#include <dht.h>
#define dht_dpin A0 
PCF8574_HD44780_I2C lcd(0x27,20,4);
dht DHT;
RTC_DS1307 RTC;
const int setpin = 6;
boolean statepin = 0;
char buffer1[20];
char buffer2[20];
int ledPin1 = 12; 
int ledPin = 11;
int relePin = 10;
int RX_DIO_Pin = 5;
unsigned int Data;
void setup(){
  
  Serial.begin(9600);
    pinMode (6, INPUT);
      digitalWrite (6, HIGH); 
 Wire.begin();
      RTC.begin();
       lcd.init();     
  lcd.backlight(); 
    lcd.setCursor(0,0);
  lcd.print("  Antifurto IZ3ZLU ");
    lcd.setCursor(0,2);
     lcd.print("Data - ");
      lcd.setCursor(0,3);
     lcd.print("Ora  - ");
      if (! RTC.isrunning()) {
        RTC.adjust(DateTime(__DATE__, __TIME__)); 
      }

  delay(300);//Let system settle
  Serial.println("Humidity and temperature\n\n");
  delay(700);//Wait rest of 1000ms recommended delay before


  pinMode(ledPin, OUTPUT);
  pinMode(ledPin1, OUTPUT);
  pinMode(relePin, OUTPUT);
  vw_set_rx_pin(RX_DIO_Pin);
  vw_setup(1000);
  vw_rx_start(); 

}
void loop(){

      statepin = digitalRead (setpin);
      if (statepin == LOW)
      RTC.adjust(DateTime(__DATE__, __TIME__));


 DateTime now = RTC.now();
      sprintf(buffer1,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
      lcd.setCursor(0,2);
      lcd.print( buffer1 );
      sprintf(buffer2,  "%02d/%02d/%d", now.day(), now.month(), now.year());
      lcd.setCursor(0,3);
      lcd.print( buffer2 );
      delay(1000);
        DHT.read11(dht_dpin);
  lcd.setCursor(0,0);
  lcd.print("Umidita':          %");
  lcd.setCursor(13,0);
  lcd.print(DHT.humidity);
  lcd.setCursor(0,1);
  lcd.print("Temperatura:       C");
  lcd.setCursor(13,1);
  lcd.print(DHT.temperature);
  Serial.print("Current humidity = ");
  Serial.print(DHT.humidity);
  Serial.print("%  ");
  Serial.print("temperature = ");
  Serial.print(DHT.temperature); 
  Serial.println("C  ");
  delay(800);
  
  uint8_t Buffer_Size = 2;
  

  unsigned int Data;
  

  uint8_t RxBuffer[Buffer_Size];


 if (vw_get_message(RxBuffer, &Buffer_Size)){

        Data = RxBuffer[0] << 8 | RxBuffer[1];

 }


   if(Data==88){ 
   Serial.println(Data);
   lcd.setCursor(10,2);
   lcd.print(" ALLARME 1");
   digitalWrite(ledPin, HIGH);   //Accendiamo il LED
   digitalWrite(relePin, HIGH);
   delay(4000);
   lcd.setCursor(10,2);
   lcd.print("          ");
   digitalWrite(ledPin, LOW);
   delay(2000);
   digitalWrite(relePin,LOW);
}

   if(Data==98){ 
   Serial.println(Data);
    lcd.setCursor(10,3);
    lcd.print(" ALLARME 2");
    digitalWrite(ledPin1, HIGH);   //Accendiamo il LED
    digitalWrite(relePin, HIGH);
    delay(4000);
    lcd.setCursor(10,3);
    lcd.print("          ");
    digitalWrite(ledPin1, LOW);
    delay(2000);
    digitalWrite(relePin,LOW);
 
}
 }



Stanotte lo testo.... nel caso parta al passare di uno dei tanti gatti presenti nel mio vicolo, i sensori hanno dei trimmer per regolare l'area che coprono... basterà diminuire un po la portata....
Ultima modifica: 4 Anni 1 Settimana fa da IZ3ZLU.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.920 secondi
Powered by Forum Kunena
   
   
© PSKTRENTUNISTI ITALIAN CLUB (PIC)