Krug senzora za parkiranje vozila unatrag s alarmom

Krug senzora za parkiranje vozila unatrag s alarmom

U ovom ćemo postu izraditi alarmni krug senzora za parkiranje automobila unatrag pomoću arduina, ultrazvučnog senzora i primopredajnog modula od 2,4 GHz. Ovaj projekt može biti dodatna značajka za vaš automobil ako nema ugrađene parkirne senzore.



Uvod

Predloženi projekt ima sličnu funkcionalnost koju ima tradicionalni senzor za parkiranje automobila, kao što je udaljenost između automobila i prepreke na LCD zaslonu i zvučni signal.

Predloženi projekt može se koristiti kao stacionarni parking senzor, tj. Senzor postavljen na vas garažu ili mobilni parking senzor, tj. Senzor postavljen na stražnjoj strani vašeg automobila ako ste spremni na mali rizik povezivanja projekta električnim sustavom automobila.





Međutim, motivacija je ovog projekta izgraditi stacionarni senzor za parkiranje koja se može graditi s nula rizika.

Projekt alarma senzora za parkiranje automobila koji koristi Arduino sastoji se od dva dijela, odašiljača koji se sastoji od ultrazvučnog senzora, arduina, zujalice i primopredajnog modula od 2,4 GHz. Ovaj krug mjerit će udaljenost između automobila i prepreke.



Prijemnik se sastoji od primopredajnog modula od 2,4 GHz, arduina i LCD zaslona 16x2.

Sklop prijemnika bit će smješten unutar automobila s 9V baterijom kao napajanjem. Prijemnik će prikazati udaljenost između automobila i prepreke u metrima.

Odašiljač će prenositi podatke senzora na prijemnik unutar automobila putem veze od 2,4 GHz. Komunikacijska veza uspostavlja se pomoću modula NRF24L01.

Pogledajmo sada modul NRF24L01.

Ilustracija NRF24L01:

NRF24L01 modul

Ovaj je modul dizajniran za uspostavljanje dvosmjerne komunikacijske veze između dva mikrokontrolera. Radi na SPI komunikacijskom protokolu. Ima 125 različitih kanala i maksimalnu brzinu prijenosa podataka od 2Mbps. Ima teoretski maksimalni domet od 100 metara.

Konfiguracija pribadače:

Radi na 3.3V, tako da ga može ubiti 5 volti na Vcc terminalu. Međutim, može prihvatiti 5V podatkovne signale od mikrokontrolera.

Sada prijeđimo na odašiljač projekta.

Krug odašiljača alarma senzora za parkiranje automobila

Krug je ožičen modulom NRF24L01 s 5 žica spojenih na digitalne U / I pinove arduina, a ostale dvije na 3,3 V i masu. Pin # 2 povezan je s bazom tranzistora koji će napajati zujalicu.

Priključci za napajanje ultrazvučnog senzora spojeni su na 5V, a GND i A0 spojeni su na pin okidača, a A1 na eho-pin senzora.

Podaci o udaljenosti senzora prenose se putem modula NRF24L01 na prijemnik.

-------------------------------------------------- ----------------------------------------- Molimo preuzmite datoteku knjižnice sa sljedećeg linka: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

Program za odašiljač:

//----------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-------------//

To zaključuje odašiljač.

Prijamnik:

Prijemnik ima LCD zaslon 16x2 za prikaz mjerenja udaljenosti. Veza zaslona data je u nastavku:

Krug kruga LCD zaslona alarma senzora za parkiranje automobila

Podesite 10K potenciometar za bolji kontrast gledanja.

Gornja shema je ostatak kruga prijemnika. Gumb je dostupan za resetiranje arduina u slučaju da veza 2,4 GHz nije uspostavljena.

Sklop prijemnika smješten je unutar automobila, a može se napajati iz 9V baterije. Prijemnik se može smjestiti u smeće, zbog čega vaš automobil može izgledati dobro. Kutija za smeće može se postaviti u vaš automobil iznad instrument table ili na bilo koje prikladno mjesto koje želite.

Program za prijamnik:

//--------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-------//

Eto, to zaključuje prijamnik.

Kako postaviti senzor kao stacionarni parking senzor:

Kako postaviti senzor kao mobilni parking senzor:

U mobilnom senzoru za parkiranje ultrazvučni senzor odašiljača nalazi se na stražnjoj strani automobila, a napajanje se osigurava iz akumulatora automobila. Trebao bi biti ožičen na takav način da se, kada isključite kontakt, arduino mora isključiti iz napajanja.

Prijemnik se može postaviti iznutra kako je gore spomenuto.

Kako upravljati ovim projektom senzora za parkiranje automobila (stacionarni tip)

• Prvo uključite odašiljač, idite do svog automobila i uključite prijemnik. Ako se uspostavi veza između odašiljača i prijamnika, prikazat će se 'Connection: OK' i udaljenost između automobila i senzora.

• Ako se prikaže 'Veza nije uspostavljena', pritisnite tipku na prijemniku.

• Ako je limenka daleko od ultrazvučnog senzora, može se prikazati 'Automobil nije u dosegu'.

• Nježno vozite automobil unatrag ili naprijed do vašeg parkirališta.

• Kako udaljenost između automobila i senzora postaje manja od 1,0 metra, zujalo se oglašava.

• Kako se približavate senzoru, brzina zvučnog signala se povećava, kada automobil dosegne 1 metar ili 0,3 metra, na zaslonu se traži zaustavljanje automobila i morate se zaustaviti.

• Odašiljač će se resetirati i automatski preći u prazan hod. Isključite prijemnik u automobilu. Ako ste predajnik napajali baterijom, isključite i njega.

Kako upravljati ovim alarmnim krugom senzora za parkiranje automobila (mobilni parking senzor)

• Slična je prethodno navedena uputa ako prijemnik prikazuje 'Automobil nije u dometu' vaš je automobil daleko od prepreke.

• Kad isključite motor, krug odašiljača mora se isključiti. Ručno isključite krug prijemnika.

Autorski prototip:

Odašiljač:

Prijamnik:

Prototip alarma senzora za parkiranje automobila


Prethodno: Univerzalni ESC krug za BLDC i motore alternatora Dalje: Upravljački krug motora velike jačine pomoću Arduina