Bil omvendt parkeringssensorkrets med alarm

Prøv Instrumentet Vårt For Å Eliminere Problemer





I dette innlegget skal vi lage en alarmkrets for omvendt parkeringssensor ved hjelp av arduino, ultralydssensor og 2,4 GHz transceiver-modul. Dette prosjektet kan være tilleggsfunksjon for bilen din hvis den ikke har en innebygd parkeringssensor.

Introduksjon

Det foreslåtte prosjektet har lignende funksjonalitet som tradisjonell parkeringssensor har, for eksempel avstand mellom bil og hindring på LCD-skjerm og lydsignal.



Det foreslåtte prosjektet kan brukes som stasjonær parkeringssensor, dvs. sensoren som er plassert i garasjen eller mobil parkeringssensor, dvs. sensoren plassert på baksiden av bilen din hvis du er klar til å ta en liten risiko for å koble prosjektet til bilens elektriske system.

Motivasjonen dette prosjektet er til bygge en stasjonær parkeringssensor som kan bygges uten risiko.



Parkeringssensoralarmprosjektet ved bruk av Arduino har to deler, senderen som består av ultralydssensor, arduino, summer og 2,4 GHz transceiver-modul. Denne kretsen måler avstanden mellom bilen og hindringen.

Mottakeren består av 2,4 GHz transceiver-modul, arduino og 16x2 LCD-skjerm.

Mottakerkretsen plasseres inne i bilen med 9V batteri som strømforsyning. Mottakeren vil vise avstanden mellom bilen og hindringen i meter.

Senderen vil overføre sensordataene til mottakeren inne i bilen via 2,4 GHz-kobling. Kommunikasjonskoblingen opprettes ved hjelp av NRF24L01-modulen.

La oss nå se oversikten over NRF24L01-modulen.

Illustrasjon av NRF24L01:

NRF24L01 Modul

Denne modulen er designet for å etablere toveiskommunikasjonsforbindelse mellom to mikrokontrollere. Det fungerer på SPI-kommunikasjonsprotokoll. Den har 125 forskjellige kanaler og har en maksimal datahastighet på 2 Mbps. Den har en teoretisk maksimal rekkevidde på 100 meter.

Pin-konfigurasjon:

Den fungerer på 3,3 V, så 5 volt på Vcc-terminalen kan drepe den. Imidlertid kan den akseptere 5V datasignaler fra mikrokontrollere.

La oss nå gå videre til senderen av prosjektet.

Parkeringssensor Alarmsender Krets

Kretsen er kablet med NRF24L01-modul med 5 ledninger koblet til digitale I / O-pinner på arduino og resten av de to til 3.3V og jordet. Pinne nr. 2 er koblet til basen til transistoren som vil drive summeren.

Ultralydsensorens strømterminaler er koblet til 5V og GND og A0 er koblet til utløserpinnen, og A1 er koblet til ekkolappen til sensoren.

Sensorens avstandsdata overføres via NRF24L01-modulen til mottakeren.

-------------------------------------------------- ----------------------------------------- Last ned biblioteksfilen fra følg lenken: github.com/nRF24/RF24.git------------------------------------------------- -------------------------------------------------- ---

Program for sender:

//----------Program Developed by R.Girish-------------//
#include
#include
RF24 radio(7,8)
const byte address[][6] = {'00001', '00002'}
const int trigger = A0
const int echo = A1
const int buzzer = 2
float distance
float result
long Time
boolean state = false
boolean dummystate = 0
void setup()
{
pinMode(trigger, OUTPUT)
pinMode(buzzer, OUTPUT)
pinMode(echo, INPUT)
radio.begin()
radio.openWritingPipe(address[1])
radio.openReadingPipe(1, address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
while(!radio.available())
radio.read(&dummystate, sizeof(dummystate))
radio.stopListening()
if(dummystate == HIGH)
{
for(int j = 0 j <10 j++)
{
const char text[] = 'Connection:OK !!!'
radio.write(&text, sizeof(text))
delay(100)
}
}
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
delay(1000)
}
void(* resetFunc) (void) = 0
void loop()
{
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result > 2.00)
{
const char text[] = 'CAR NOT IN RANGE'
radio.write(&text, sizeof(text))
}
if(result 1.90)
{
const char text[] = 'Distance = 2.0 M'
radio.write(&text, sizeof(text))
}
if(result 1.80)
{
const char text[] = 'Distance = 1.9 M'
radio.write(&text, sizeof(text))
}
if(result 1.70)
{
const char text[] = 'Distance = 1.8 M'
radio.write(&text, sizeof(text))
}
if(result 1.60)
{
const char text[] = 'Distance = 1.7 M'
radio.write(&text, sizeof(text))
}
if(result 1.50)
{
const char text[] = 'Distance = 1.6 M'
radio.write(&text, sizeof(text))
}
if(result 1.40)
{
const char text[] = 'Distance = 1.5 M'
radio.write(&text, sizeof(text))
}
if(result 1.30)
{
const char text[] = 'Distance = 1.4 M'
radio.write(&text, sizeof(text))
}
if(result 1.20)
{
const char text[] = 'Distance = 1.3 M'
radio.write(&text, sizeof(text))
}
if(result 1.10)
{
const char text[] = 'Distance = 1.2 M'
radio.write(&text, sizeof(text))
}
if(result 1.00)
{
const char text[] = 'Distance = 1.1 M'
radio.write(&text, sizeof(text))
}
if(result 0.90)
{
state = true
const char text[] = 'Distance = 1.0 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(700)
digitalWrite(buzzer, LOW)
delay(700)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 1.0)
{
state = false
}
}
}
if(result 0.80)
{
state = true
const char text[] = 'Distance = 0.9 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(600)
digitalWrite(buzzer, LOW)
delay(600)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.90)
{
state = false
}
}
}
if(result 0.70)
{
state = true
const char text[] = 'Distance = 0.8 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer, LOW)
delay(500)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.80)
{
state = false
}
}
}
if(result 0.60)
{
state = true
const char text[] = 'Distance = 0.7 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(400)
digitalWrite(buzzer, LOW)
delay(400)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.70)
{
state = false
}
}
}
if(result 0.50)
{
state = true
const char text[] = 'Distance = 0.6 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(300)
digitalWrite(buzzer, LOW)
delay(300)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.60)
{
state = false
}
}
}
if(result 0.40)
{
state = true
const char text[] = 'Distance = 0.5M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(200)
digitalWrite(buzzer, LOW)
delay(200)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.50)
{
state = false
}
}
}
if(result 0.30)
{
state = true
const char text[] = 'Distance = 0.4 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(100)
digitalWrite(buzzer, LOW)
delay(100)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.40)
{
state = false
}
}
}
if(result <= 0.30)
{
const char text[] = ' STOP!!!'
radio.write(&text, sizeof(text))
digitalWrite(buzzer, HIGH)
delay(3000)
digitalWrite(buzzer, LOW)
resetFunc()
}
delay(200)
}
//----------Program Developed by R.Girish-------------//

Det avslutter senderen.

Mottaker:

Mottakeren har 16x2 LCD-skjerm for visning av avstandsmåling. Skjermforbindelsen er gitt nedenfor:

Parkeringssensoralarm LCD-skjermkrets

Juster 10K potensiometer for bedre visningskontrast.

Ovenstående skjema er resten av mottakerkretsen. En trykknapp er gitt for å tilbakestille arduino i tilfelle 2,4 GHz-koblingen ikke er etablert.

Mottakerkretsen er plassert inne i bilen, den kan strøm fra et 9V batteri. Mottakeren kan plasseres i en søppelboks som kan gjøre at bilen din ser bra ut. Søppelboksen kan plasseres i bilen din over instrumentklyngen eller et hvilket som helst praktisk sted du ønsker.

Program for mottaker:

//--------Program Developed by R.Girish-------//
#include
#include
#include
LiquidCrystal lcd(7, 6, 5, 4, 3, 2)
RF24 radio(9,10)
const byte address[][6] = {'00001', '00002'}
const int dummy = A0
boolean dummystate = 0
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
pinMode(dummy , INPUT)
digitalWrite(dummy, HIGH)
radio.begin()
radio.openReadingPipe(1, address[1])
radio.openWritingPipe(address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
dummystate = digitalRead(dummystate)
radio.write(&dummystate, sizeof(dummystate))
delay(10)
radio.startListening()
if(!radio.available())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Connection not')
lcd.setCursor(0,1)
lcd.print('established')
delay(50)
}
}
void loop()
{
if(radio.available())
{
char text[32] = ''
radio.read(&text, sizeof(text))
lcd.clear()
lcd.setCursor(0,0)
lcd.print(text)
lcd.setCursor(0,1)
lcd.print('----------------')
}
}
//--------Program Developed by R.Girish-------//

Nå avslutter mottakeren.

Hvordan plassere sensoren som parkeringssensor:

Hvordan plassere sensoren som mobil parkeringssensor:

I mobil parkeringssensor er senderens ultralydssensor plassert på baksiden av bilen, strømmen tilføres bilens batteri. Den skal kobles på en slik måte at når du slår av tenningen, må arduino koble fra strømforsyningen.

Mottakeren kan plasseres innvendig som nevnt tidligere.

Hvordan betjene dette parkeringssensorprosjektet (stasjonær type)

• Slå først på senderen, gå til bilen og slå på mottakeren. Hvis forbindelsen mellom sender og mottaker er opprettet, vil den vise 'Tilkobling: OK' og vise avstanden mellom bilen og sensoren.

• Hvis det vises 'Tilkobling ikke opprettet', trykker du på trykknappen på mottakeren.

• Det kan vise 'Bilen ikke innen rekkevidde' hvis boksen din er langt borte fra ultralydssensoren.

• Ta bilen forsiktig bakover eller frem til parkeringsplassen.

• Ettersom avstanden mellom bil og sensor blir mindre enn 1,0 meter, piper lyden.

• Når du nærmer deg sensoren nærmere, øker bipfrekvensen når bilen når en fot eller 0,3 meter, og displayet ber om å stoppe bilen, og du må stoppe.

• Senderen vil tilbakestilles og gå på tomgang automatisk. Slå av mottakeren i bilen din. Hvis du drev senderen med batteri, må du også slå av den.

Slik betjener du alarmkretsen til parkeringssensoren (Mobile Parking sensor)

• Det er lignende tidligere nevnte instruksjon hvis mottakeren viser 'Bilen ikke innen rekkevidde' bilen din er langt borte fra hindringen.

• Når du slår av motoren, må senderkretsen slå seg av. Slå av mottakerkretsen manuelt.

Forfatterens prototype:

Sender:

Mottaker:

Parkeringssensor Alarm prototype


Forrige: Universal ESC-krets for BLDC- og generatormotorer Neste: Motorstrømkrets med høy strøm ved bruk av Arduino