Stap 3:
Hier is de code van de mpide voor de mobiele bluetooth-telefoon app interface en gegevens output:
#include
#include
softserial definieert
#define rxPin 15
#define txPin 16
#define ledPin 13
char psw1 = ' o ';
char psw2 = ' o ';
int stat = 0;
int count = 0;
Servo definieert
#define servoPin 9
#define openVal 90
#define closeVal 0
deur sensor definieert
#define sensorPin 1
#define drempel 1000
Status led definiëren
#define ledPin 4
Servo spullen Servo DoorServo;
deur state-spullen
Boole lockState = waar;
Boole doorState = false;
Boole doorSensor = false;
deur meting spullen int meting = 0;
software seriële spullen
SoftwareSerial BT_Serial = SoftwareSerial (rxPin, txPin);
char buffchar = "A";
VOID Setup
{//set software seriële pin modi
pinMode (rxPin, INPUT);
pinMode (txPin, OUTPUT);
installatie hardware seriële poort
Serial1.begin(9600);
Serial.begin(9600);
Stel de gegevenssnelheid voor de SoftwareSerial-poort
Servo setup
DoorServo.attach (servoPin);
deur indicator led installatie
pinMode (ledPin, OUTPUT); }
VOID getdata()
{terwijl (Serial1.available() > 0)
{buffchar = Serial1.read();
terugkeer;
}
}
void loop
{//wait voor open opdracht
lezen van de seriële poort
Serial.println(buffchar);
terwijl (buffchar! = 'O')
{
buffchar = Serial1.read();
}
buffchar = "A";
Serial1.Print ("deur wordt ontgrendeld! \n");
lockState = false;
ontgrendelen van de deur DoorServo.write(openVal);
wachten voor de deur om te openen
terwijl (doorState == false)
{
meting = analogRead (sensorPin);
Als (meting > drempel)
{
doorState = true;
digitalWrite (ledPin, hoge);
}
}
buffchar = "A";
vertraging (500);
wachten voor de deur te sluiten
terwijl (doorState == true)
{stat = '1';
meting = analogRead (sensorPin);
Graaf ++;
Als (graaf == 210000)
{Serial.write(stat);
Graaf = 0;
}
Als (meting > drempel)
{
doorState = false;
Serial1.Print ("deur is vergrendeld! \n");
stat = ('0');
Serial.write(stat);
digitalWrite (ledPin, laag);
}
}
delay(500);
deur van het slot
DoorServo.write(closeVal);
buffchar = "A";
}