Förbetalda Tollgate System! (3 / 3 steg)
Steg 3: kod!
/** RFID-anslutningar - RFID-tx---> rx(3) ardunio
*
* GSM - GSM rx---> 8 arduino
* GSM tx---> 7 arduino
*
* MOTOR - C2B---> 4 arduino
* C2A---> 5 ardunio
*
* RGB LED - A0--> röd
* A1--> grön
* Summer 6
*/
#include
SoftwareSerial rfidSerial (3, 2);
SoftwareSerial SIM900 (7, 8);
int aBAL = 1000;
int Jans = 1500;
int cBAL = 2000.
Sträng ett;
CONST int ledPin = 13.
void setup() {
pinMode (6, OUTPUT);
pinMode (A0, OUTPUT);
pinMode (A1, utgång);
pinMode (A2, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
digitalWrite (4, hög).
digitalWrite 5, hög,
digitalWrite (6, låg);
Serial.BEGIN(9600);
pinMode (ledPin, produktionen);
SIM900. börja (19200);
SIM900. skriva ut ("AT + CMGF = 1\r");
rfidSerial.begin(9600);
digitalWrite (A2, hög);
Delay(1000);
digitalWrite (A2, låg);
Serial.println ("vänta för ett fordon...");
}
void loop() {
digitalWrite (A2, hög);
Delay(1000);
digitalWrite (A2, låg);
digitalWrite (A0, hög);
While(rfidSerial.available()) {
en = rfidSerial.readString(); / / läsa inkommande data som sträng
rfidSerial.print ("fordonet RFID läsa");
rfidSerial.print(a);
Delay(1000);
digitalWrite (ledPin, hög);
Delay(1000);
SIM900. println ("AT + CMGS = \"8970220880\ ""); ÄNDRA NUMMER ATT VARA CHATTADE HÄR
Delay(1000);
//--------------------------------------------______________________________________________
IF(a=="03908807\r\n") {
Serial.println ("Detta är en");
aBAL = aBAL-30;
om (aBAL > = 30) {
void openGATE();---
digitalWrite (A0, låg);
digitalWrite (A1, hög);
digitalWrite (6, hög).
Delay(1000);
digitalWrite (4, låg).
Delay(750);
digitalWrite (4, hög).
Delay(2000);
//}
SIM900. skriva ut ("Hej, tack, för använda MG ROAD TOLL i Rs.30/ - har dragits ditt saldo är Rs.");
SIM900.Print(aBAL);
}
annat {
void closeGATE();
digitalWrite (A1, låg);
digitalWrite (6, låg);
digitalWrite (A0, hög);
Delay(1000);
digitalWrite (5, låg).
Delay(750);
digitalWrite 5, hög,
Delay(2000);
//-----------
SIM900. Skriv ut ("Hej, tack, för med hjälp av MG ROAD TOLL din balans är alltför låg Vänligen ladda!");
}
fördröjning (1000);
SIM900. println ((char) 26);
fördröjning (1000);
SIM900. println ();
digitalWrite (ledPin, låg);
}
//--------------------------------------------____________________________________________________________________________________________
annat if(a=="13703425\r\n") {
Serial.println ("Detta är B");
Jans = Jan-30;
om (Jan > = 30) {
void openGATE();
digitalWrite (A0, låg);
digitalWrite (A1, hög), digitalWrite (6, hög);
Delay(1000);
digitalWrite (4, låg).
Delay(750);
digitalWrite (4, hög).
Delay(2000);
//--------------------
SIM900. skriva ut ("Hej, tack b, för använda MG ROAD TOLL i Rs.30/ - har dragits ditt saldo är Rs.");
SIM900.Print(bBAL);
}
annat {//void closeGATE();
digitalWrite (A1, låg);
digitalWrite (A0, hög);
digitalWrite (6, låg);
Delay(1000);
digitalWrite (5, låg).
Delay(750);
digitalWrite 5, hög,
Delay(2000);
//-------------------
SIM900. skriva ut ("Hej, tack b, för med hjälp av MG ROAD TOLL din balans är alltför låg Vänligen ladda!");
}
fördröjning (1000);
SIM900. println ((char) 26);
fördröjning (1000);
SIM900. println ();
digitalWrite (ledPin, låg);
}
//-------------------------------------------________________________________________________________________________
annat if(a=="03908806\r\n") {
Serial.println ("Detta är C");
cBAL = cBAL-30;
om (cBAL > = 30) {
void openGATE();
digitalWrite (A0, låg);
digitalWrite (A1, hög); digitalWrite (6, hög).
Delay(1000);
digitalWrite (4, låg).
Delay(750);
digitalWrite (4, hög).
Delay(2000);
//---------------
SIM900. skriva ut ("Hej, tack c, för använda MG ROAD TOLL i Rs.30/ - har dragits ditt saldo är Rs.");
SIM900.Print(cBAL);
}
annat {
void closeGATE();
digitalWrite (A1, låg);
digitalWrite (A0, hög);
digitalWrite (6, låg);
Delay(1000);
digitalWrite (5, låg).
Delay(750);
digitalWrite 5, hög,
Delay(2000);
//---------------
SIM900. skriva ut ("Hej, tack c, för med hjälp av MG ROAD TOLL din balans är alltför låg Vänligen ladda!");
}
//-------------------
}
//-------------------------------------------
annat {/ / fel eller inga kort
digitalWrite (A0, hög);
Delay(1000);
digitalWrite (A0, låg);
Delay(2000);
}
fördröjning (1000);
SIM900. println ((char) 26);
fördröjning (1000);
SIM900. println ();
digitalWrite (ledPin, låg);
Delay(5000);
void closeGATE();
digitalWrite (A1, låg);
digitalWrite (A0, hög); digitalWrite (6, låg);
Delay(1000);
digitalWrite (5, låg).
Delay(750);
digitalWrite 5, hög,
Delay(2000);
}
}