Il sito per chi ama smanettare con Arduino, Raspberry Pi & Co.
Share:
Notifications
Clear all

bluetooth  

   RSS

0

ciao a tutti,volevo sapere come potevo inserire il modulo hc05 in questo sketch,in modo da far cambiare la variabile stato una volta che riceve un comando dal telefono,lo sketch che uso per l hc05 se preso singolarmente funziona,ma se messo nel seguente sketch no,uso un arduino mega,grazie comunque

#include <LiquidCrystal.h>

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
LiquidCrystal_I2C lcd1(0x27, 16, 2);
DHT dht(12, DHT11);

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
#define SS_PIN 53
#define RST_PIN 5

MFRC522 mfrc522(SS_PIN, RST_PIN);

LiquidCrystal lcd(11, 10, 9, 8, 7, 6);

int finestra1 = 45;
int porta = 47;
int statoreadfinestra1= LOW;
int statoreadporta = LOW;
int fin1porta = LOW;
int stato= LOW;
int ingresso= HIGH;
int buzzer = 22;
int led_allarme1= 24;
int led_allarme2= 26;
int buzzerF = LOW;
int buzzerP = LOW;
int buzzerFP = LOW;

 

void setup() {
servo1.attach(2);
servo2.attach(23);
servo3.attach(25);
servo4.attach(27);
servo5.attach(29);
SPI.begin();
mfrc522.PCD_Init();
servo1.write(180);
servo2.write(180);
servo3.write(180);
servo4.write(180);
servo5.write(180);
Serial.begin(9600);
lcd.begin(16, 2);
lcd1.init();
lcd1.backlight();
dht.begin();
pinMode(finestra1 ,INPUT);
pinMode(porta ,INPUT);
pinMode(buzzer,OUTPUT);
pinMode(led_allarme1,OUTPUT);
pinMode(led_allarme2,OUTPUT);

}

void loop() {

int readfinestra1=!digitalRead(finestra1);
int readporta=!digitalRead(porta);
int seta=digitalRead(35);
int t = dht.readTemperature();
int h = dht.readHumidity();

delay(200);
lcd1.clear();
lcd1.setCursor(0,0);
lcd1.print("Temperatura: " + String(t) + char(0xDF) + "C");
lcd1.setCursor(0,1);
lcd1.print("Umidita: " + String(h) + "%");

if(seta==HIGH){
stato=!stato;
delay(100);
}

if((stato==HIGH)and(readfinestra1==LOW)and(statoreadfinestra1==LOW)and(readporta==LOW)and(statoreadporta==LOW)and(fin1porta==LOW)){
delay(200);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ALLARME ");
lcd.setCursor(0,1);
lcd.print(" ATTIVATO ");
}
if(stato==LOW){
statoreadfinestra1=LOW;
statoreadporta=LOW;
fin1porta=LOW;
buzzerF = LOW;
buzzerP = LOW;
buzzerFP = LOW;
digitalWrite(buzzer,LOW);
digitalWrite(led_allarme1,LOW);
digitalWrite(led_allarme2,LOW);

delay(200);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ALLARME ");
lcd.setCursor(0,1);
lcd.print(" DISATTIVATO ");
}

if((stato==HIGH)and(readfinestra1==HIGH)and(fin1porta==LOW)){
statoreadfinestra1=HIGH;
}
if((statoreadfinestra1==HIGH)and(stato==HIGH)){
delay(200);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" FINESTRA 1 ");
buzzerF=HIGH;
}
if(buzzerF==HIGH){
digitalWrite(buzzer,HIGH);
digitalWrite(led_allarme1,HIGH);
digitalWrite(led_allarme2,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
digitalWrite(led_allarme1,LOW);
digitalWrite(led_allarme2,LOW);
delay(500);

}

 

 

if((stato==HIGH)and(readporta==HIGH)and(fin1porta==LOW)and(ingresso==HIGH)){
statoreadporta=HIGH;
}
if((statoreadporta==HIGH)and(stato==HIGH)){
delay(200);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PORTA ");
buzzerP=HIGH;
}
if(buzzerP==HIGH){
digitalWrite(buzzer,HIGH);
digitalWrite(led_allarme1,HIGH);
digitalWrite(led_allarme2,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
digitalWrite(led_allarme1,LOW);
digitalWrite(led_allarme2,LOW);
delay(500);

}

 

 

if((stato==HIGH)and(statoreadfinestra1==HIGH)and(statoreadporta==HIGH)){
finestre();
}

if(fin1porta==HIGH){
delay(200);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FINESTRA 1");
lcd.setCursor(0,1);
lcd.print("PORTA");
buzzerFP=HIGH;
}

if(buzzerFP==HIGH){
digitalWrite(buzzer,HIGH);
digitalWrite(led_allarme1,HIGH);
digitalWrite(led_allarme2,HIGH);
delay(500);
digitalWrite(buzzer,LOW);
digitalWrite(led_allarme1,LOW);
digitalWrite(led_allarme2,LOW);
delay(500);

}
if((t>18)and(stato==LOW)){

servo2.write(0);
servo3.write(0);
servo4.write(0);
servo5.write(0);
} else{

servo2.write(180);
servo3.write(180);
servo4.write(180);
servo5.write(180);
}

 

 

while(stato==HIGH)
{if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
stato=LOW;

}

 

 

 

if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}

apriporta();

}

void finestre(){
fin1porta=HIGH;
statoreadfinestra1= LOW;
statoreadporta = LOW;
}

 

 

void apriporta(){
servo1.write(0);

delay(10000);
servo1.write(180);

}

Questa discussione è stata modificata 2 mesi fa da Alessandro
Questa discussione è stata modificata 2 mesi fa 3 times da admin
Share:

Entra nel forum

Hai un nuovo progetto in mente ma hai dei dubbi su come realizzarlo? Vuoi condividere la tua conoscenza da maker con gli altri? Registrati nella nostra community e potrai chiedere fare la tua domanda o rispondere e condividere la tua conoscenza in internet.