Krog avtomobilskega senzorja za vzvratno vožnjo z alarmom

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali alarmno vezje avtomobila za vzvratno parkiranje z uporabo arduina, ultrazvočnega senzorja in oddajnega modula 2,4 GHz. Ta projekt je lahko dodatna funkcija za vaš avto, če nima vgrajenih parkirnih senzorjev.

Uvod

Predlagani projekt ima podobno funkcionalnost kot tradicionalni senzor za parkiranje, na primer razdaljo med avtomobilom in oviro na LCD zaslonu in zvočni signal.



Predlagani projekt se lahko uporablja kot stacionarni parkirni senzor, tj. Senzor, nameščen na vas v garaži, ali mobilni parkirni senzor, tj. Senzor, nameščen na zadnji strani vašega avtomobila, če ste pripravljeni na majhno tveganje, da projekt povežete z električnim sistemom avtomobila.

Vendar je motivacija tega projekta zgradite stacionarni parkirni senzor ki jih je mogoče zgraditi z ničelnim tveganjem.



Projekt alarma senzorja za parkiranje avtomobilov z uporabo Arduina ima dva dela, oddajnik, ki je sestavljen iz ultrazvočnega senzorja, arduina, brenčača in modula oddajnika 2,4 GHz. To vezje bo izmerilo razdaljo med avtomobilom in oviro.

Sprejemnik je sestavljen iz oddajnega modula 2,4 GHz, arduina in LCD zaslona 16x2.

Vezje sprejemnika bo nameščeno v avtomobilu z 9V baterijo kot napajalnikom. Sprejemnik bo prikazal razdaljo med avtomobilom in oviro v metrih.

Oddajnik bo podatke o senzorjih prenašal na sprejemnik v avtomobilu prek povezave 2,4 GHz. Komunikacijska povezava se vzpostavi z uporabo modula NRF24L01.

Zdaj pa si oglejmo pregled modula NRF24L01.

Prikaz NRF24L01:

Modul NRF24L01

Ta modul je zasnovan za vzpostavitev dvosmerne komunikacijske povezave med dvema mikrokrmilnikoma. Deluje na komunikacijskem protokolu SPI. Ima 125 različnih kanalov in ima največjo hitrost prenosa 2 Mb / s. Ima največji teoretični domet 100 metrov.

Konfiguracija zatiča:

Deluje na 3.3V, zato ga lahko 5 voltov na terminalu Vcc ubije. Sprejema pa lahko 5V podatkovne signale od mikrokrmilnikov.

Zdaj pa pojdimo na oddajnik projekta.

Krog alarmnega oddajnika senzorja za parkiranje avtomobila

Vezje je ožičeno z modulom NRF24L01 s 5 žicami, povezanimi z digitalnimi vhodno / izhodnimi zatiči arduino in ostalimi dvema do 3,3 V in ozemljitvijo. Pin # 2 je povezan z dnom tranzistorja, ki bo napajal brenčalo.

Napajalni terminali ultrazvočnega senzorja so priključeni na 5 V, GND in A0 pa na sprožilni zatič, A1 pa na eho zatič senzorja.

Podatki o razdalji senzorja se prek modula NRF24L01 prenesejo v sprejemnik.

-------------------------------------------------- ----------------------------------------- Prenesite datoteko knjižnice s spodnje povezave: github.com/nRF24/RF24.git ------------------------------------------- -------------------------------------------------- ---

Program za oddajnik:

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

S tem je oddajnik zaključen.

Sprejemnik:

Sprejemnik ima LCD zaslon 16x2 za prikaz merjenja razdalje. Povezava zaslona je podana spodaj:

Circuit LCD zaslona alarma senzorja za parkiranje avtomobila

Za boljši kontrast gledanja prilagodite potenciometer 10K.

Zgornja shema je preostanek vezja sprejemnika. Na voljo je gumb za ponastavitev arduina, če povezava 2,4 GHz ni vzpostavljena.

Vezje sprejemnika je nameščeno v avtomobilu, napaja pa ga lahko 9V baterija. Sprejemnik je lahko nameščen v smeti, zaradi česar bo vaš avto videti dobro. Škatlo za smeti lahko postavite v svoj avto nad instrumentno ploščo ali kjer koli, kjer želite.

Program za sprejemnik:

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

To zaključuje sprejemnik.

Kako postaviti senzor kot mirujoči parkirni senzor:

Kako postaviti senzor kot mobilni parkirni senzor:

V mobilnem parkirnem senzorju je ultrazvočni senzor oddajnika nameščen na zadnji strani avtomobila, napajanje pa zagotavlja avtomobilska baterija. Ožičen mora biti tako, da se mora arduino, ko izklopite vžig, odklopiti od napajanja.

Sprejemnik se lahko postavi v notranjost zgoraj omenjenega.

Kako upravljati s tem projektom senzorja za parkiranje vozil (stacionarni tip)

• Najprej vklopite oddajnik, pojdite do avtomobila in vklopite sprejemnik. Če je povezava med oddajnikom in sprejemnikom vzpostavljena, se prikaže “Connection: OK” in prikaže razdaljo med avtomobilom in senzorjem.

• Če se prikaže 'Povezava ni vzpostavljena', pritisnite gumb na sprejemniku.

• Če je vaša pločevinka daleč od ultrazvočnega senzorja, se lahko prikaže napis »Car not in range«.

• Nežno zapeljite avto nazaj ali naprej do parkirišča.

• Ko razdalja med avtomobilom in senzorjem postane manjša od 1,0 metra, se oglasi zvočni signal.

• Ko se bližate senzorju, se stopnja piska poveča, ko avtomobil doseže 1 meter ali 0,3 metra, se na zaslonu prikaže poziv za ustavitev avtomobila in ustaviti se morate.

• Oddajnik se bo ponastavil in samodejno preklopil v stanje mirovanja. Izklopite sprejemnik v avtu. Če ste oddajnik napajali z baterijo, ga tudi izklopite.

Kako upravljati s tem alarmnim vezjem senzorja za parkiranje avtomobila (Mobile Parking Sensor)

• Podobno prej omenjeno navodilo je, če sprejemnik prikaže “Car not in range”, da je vaš avto daleč stran od ovire.

• Ko ugasnete motor, se mora oddajniško vezje izklopiti. Ročno izklopite vezje sprejemnika.

Avtorjev prototip:

Oddajnik:

Sprejemnik:

Prototip alarmnega alarmnega senzorja za parkiranje


Prejšnja: Univerzalno vezje ESC za BLDC in alternatorje Naprej: Krmilno vezje močnega motorja z uporabo Arduina