Automatisk parkering System (6 / 11 steg)
Steg 6: Arduino kod
I detta steg kommer vi att titta på arduino koden för projektet Smart parkering. Koden kommer att få data från ultraljudssensorer och det kommer att publicera det till webbsidan. Här är koden:
< p > #include #include
#include < /p >< p > Servo servo;
deklarera variabler för att få rätt data
int available1;
int available2;
int available3;
int available4;
int available5;
avstånd för ultrasonic sensor
långa distance1;
lång distance2;
lång distance3;
lång distance4;
lång distance5;
varaktighet för sensorn överföra ultraljudsvågor
lång varaktighet 1;
långa Företagsvaraktighet 2;
lång duration3;
lång duration4;
lång duration5;
Öppna servo för bilar att ange
lång servoduration;
lång servodistance;
utgångsstift för sensorn
#define trig1 26
#define trig2 28
#define trig3 30
#define trig4 32
#define trig5 34
ingående stiften för sensorn
#define echo1 27
#define echo2 29
#define echo3 31
#define echo4 33
#define echo5 35
ute och i stift för sensorn
#define servotrig 38
#define servoecho 39
Ethernet-datapins
char server [] = "192.168.137.1";
EthernetClient klient;
standardadressen dator
byte [mac] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
}; < /p >< p > int svar; < /p >< p > void setup() {< /p >< p > Ethernet.begin(mac);
Serial.BEGIN (9600);
Delay(100); < /p >< p > / / svar = client.connect (server, 80);
//
om (svar) {
Serial.println("Connected");
} annat {
/ / Om du inte får en anslutning till servern:
Serial.println ("Anslutning misslyckades");
// }
definiera former av stiften för sensorn
pinMode(trig1,OUTPUT);
pinMode(trig2,OUTPUT);
pinMode(trig3,OUTPUT);
pinMode(trig4,OUTPUT);
pinMode(trig5,OUTPUT);
pinMode(echo1,INPUT);
pinMode(echo2,INPUT);
pinMode(echo3,INPUT);
pinMode(echo4,INPUT);
pinMode(echo5,INPUT);
pinMode(servotrig,OUTPUT);
pinMode(servoecho,INPUT); < /p >< p > servo.attach(37);
} < /p >< p > void loop() {
att hitta avståndet för var och en av sensorerna
digitalWrite (trig1, låg);
delayMicroseconds(2);
digitalWrite (trig1, hög);
delayMicroseconds(10);
digitalWrite (trig1, låg);
varaktighet 1 = pulseIn (echo1, hög);
Distance1 = (varaktighet 1/2) / 29,1; < /p >< p >
digitalWrite (trig2, låg);
delayMicroseconds(2);
digitalWrite (trig2, hög);
delayMicroseconds(10);
digitalWrite (trig2, låg);
Företagsvaraktighet 2 = pulseIn (echo2, hög);
distance2 = (Företagsvaraktighet 2/2) / 29,1; < /p >< p > digitalWrite (trig3, låg);
delayMicroseconds(2);
digitalWrite (trig3, hög);
delayMicroseconds(10);
digitalWrite (trig3, låg);
duration3 = pulseIn (echo3, hög);
distance3 = (duration3/2) / 29,1; < /p >< p > digitalWrite (trig4, låg);
delayMicroseconds(2);
digitalWrite (trig4, hög);
delayMicroseconds(10);
digitalWrite (trig4, låg);
DURATION4 = pulseIn (echo4, hög);
distance4 = (duration4/2) / 29,1; < /p >< p >
digitalWrite (trig5, låg);
delayMicroseconds(2);
digitalWrite (trig5, hög);
delayMicroseconds(10);
digitalWrite (trig5, låg);
duration5 = pulseIn (echo5, hög);
distance5 = (duration5/2) / 29,1; < /p >< p > Serial.print ("avstånd 1:");
Serial.Print(Distance1);
Serial.println("cm"); < /p >< p > Serial.print ("avstånd 2:");
Serial.Print(distance2);
Serial.println("cm"); < /p >< p > Serial.print ("avstånd 3:");
Serial.Print(distance3);
Serial.println("cm"); < /p >< p > Serial.print ("avstånd 4:");
Serial.Print(distance4);
Serial.println("cm"); < /p >< p > Serial.print ("avstånd 5:");
Serial.Print(distance5);
Serial.println("cm"); < /p >< p > delay(100); < /p >< p > //getting det faktiska värdet som krävs för att göra projektet framgångsrikt
IF(Distance1<6)
{
available1 = 0;
}
annat {
available1 = 1;
} < /p >< p > if(distance2<6)
{
available2 = 0;
}
annat {
available2 = 1;
} < /p >< p > if(distance3<6)
{
available3 = 0;
}
annat {
available3 = 1;
}
IF(distance4<6)
{
available4 = 0;
}
annat {
available4 = 1;
}
IF(distance5<6)
{
available5 = 0;
}
annat {
available5 = 1;
} < /p >< p >
digitalWrite (servotrig, låg);
delayMicroseconds(2);
digitalWrite (servotrig, hög);
delayMicroseconds(10);
digitalWrite (servotrig, låg);
servoduration = pulseIn (servoecho, hög);
IF(servodistance<10)
{
servo.write(90);
}
annat
{
servo.write(-90);
} < /p >< p > //passing variabler till php sidan. < /p >< p > om (! client.connected())
{
Serial.Print("Available1=");
Serial.println(available1);
Serial.Print("Available2=");
Serial.println(available2);
Serial.Print("Available3=");
Serial.println(available3);
Serial.Print("Available4=");
Serial.println(available4);
Serial.Print("Available5=");
Serial.println(available5);
client.stop();
Delay(100);
om (client.connect (server, 80))
{
Serial.println("Connected");
Göra en HTTP-begäran:
client.Print "(GET /UpdateAvailability.php? Läge = ");
client.Print("1");
client.Print ("& &");
client.Print("available=");
client.Print(available1);
client.println ("HTTP/1.1");
client.println ("Host: 192.168.137.1");
client.println ("anslutning: Stäng");
client.println();
client.stop();
}
annat
{
Om du inte få en anslutning till servern:
Serial.println ("Anslutning misslyckades");
} < /p >< p > om (client.connect (server, 80))
{
Serial.println("Connected");
Göra en HTTP-begäran:
client.Print "(GET /UpdateAvailability.php? Läge = ");
client.Print("2");
client.Print ("& &");
client.Print("available=");
client.Print(available2);
client.println ("HTTP/1.1");
client.println ("Host: 192.168.137.1");
client.println ("anslutning: Stäng");
client.println();
client.stop();
}
annat
{
Om du inte få en anslutning till servern:
Serial.println ("Anslutning misslyckades");
}
om (client.connect (server, 80))
{
Serial.println("Connected");
Göra en HTTP-begäran:
client.Print "(GET /UpdateAvailability.php? Läge = ");
client.Print("3");
client.Print ("& &");
client.Print("available=");
client.Print(available3);
client.println ("HTTP/1.1");
client.println ("Host: 192.168.137.1");
client.println ("anslutning: Stäng");
client.println();
client.stop();
}
annat
{
Om du inte få en anslutning till servern:
Serial.println ("Anslutning misslyckades");
}
om (client.connect (server, 80))
{
Serial.println("Connected");
Göra en HTTP-begäran:
client.Print "(GET /UpdateAvailability.php? Läge = ");
client.Print("4");
client.Print ("& &");
client.Print("available=");
client.Print(available4);
client.println ("HTTP/1.1");
client.println ("Host: 192.168.137.1");
client.println ("anslutning: Stäng");
client.println();
client.stop();
}
annat
{
Om du inte få en anslutning till servern:
Serial.println ("Anslutning misslyckades");
}
om (client.connect (server, 80))
{
Serial.println("Connected");
Göra en HTTP-begäran:
client.Print "(GET /UpdateAvailability.php? Läge = ");
client.Print("5");
client.Print ("& &");
client.Print("available=");
client.Print(available5);
client.println ("HTTP/1.1");
client.println ("Host: 192.168.137.1");
client.println ("anslutning: Stäng");
client.println();
client.stop();
}
annat
{
Om du inte få en anslutning till servern:
Serial.println ("Anslutning misslyckades");
}
}
} < /p >