Vezje detektorja hitrosti vozila za prometno policijo

Vezje detektorja hitrosti vozila za prometno policijo

V tem prispevku bomo zgradili tokokrog, ki lahko meri hitrost katerega koli vozila na cestah in avtocestah. Predlagano vezje ne miruje na mestu, kjer obstaja sum, da vozila pretirano hitrosti. Če katero koli vozilo preseže omejitev hitrosti, tokokrog takoj opozori. Ogledali si bomo kodo, vezje in logiko, kako se meri hitrost vozila.



Cilj

Po poročanju leta 2015 v Indiji čezmerna hitrost povzroča 75% prometnih nesreč, kar je ogromno. Večina prometne policije poskuša zadržati voznike, ki nevarno vozijo svoje vozilo preko mestne hitrosti.

Vsakokrat prometna policija ne more ustaviti prehitrega vozila in jih obtožiti. Tako je nameščena naprava, imenovana hitrostna kamera, pri kateri domnevajo, da vozniki pretiravajo s hitrostjo, kot so pogosta območja, izpostavljena nesrečam, križišča itd.





Zgradili bomo nekaj podobnega hitrostni kameri, vendar na precej poenostavljen način, ki jo lahko namestimo v kampusu, kot so šole, fakultete ali IT parki, ali samo kot zabaven projekt.

Predlagani projekt je sestavljen iz LCD zaslona 16 x 2, ki prikazuje hitrost vsakega vozila, ki gre skozi dva laserska žarka, ki sta postavljena narazen natančno 10 metrov za merjenje hitrosti vozila ob prekinitvi teh laserskih žarkov.



Ko se vozilo pelje, se oglasi zvočni signal, ki označuje, da je vozilo zaznano in da bo hitrost vsakega vozila prikazana na LCD zaslonu. Ko vozilo preseže omejitev hitrosti, zvočni signal neprekinjeno zapiska in hitrost vozila se prikaže na zaslonu.

OPOMBA: Hitrost vozila bo prikazana na LCD-prikazovalniku, ne glede na to, ali vozilo vozi čez ali pod hitrostjo.

Zdaj pa poglejmo logiko za vezjem za merjenje hitrosti.

Vsi poznamo preprosto formulo, imenovano hitrost - razdalja - čas.
Hitrost = Razdalja / čas.

• Hitrost v metrih na sekundo,
• Razdalja v metrih,
• Čas v sekundah.

Da bi vedeli hitrost, moramo vedeti razdaljo, na primer 'x', ki jo je prevozilo vozilo, in čas, potreben za prehod te razdalje 'x'.

Da bi to naredili, nastavimo dva laserska žarka in dva LDR-ja z razdaljo 10 metrov na naslednji način:

ukrep hitrosti prometnega vozila

Vemo, da je razdalja 10 metrov, ki je fiksna, zdaj moramo vedeti čas v enačbi.

Čas bo izračunal Arduino, ko vozilo prekine 'začetni laser', začne se časovnik in ko vozilo prekine 'končni laser', se časovnik ustavi in ​​z uporabo vrednosti v enačbi Arduino najde hitrost vozila.

Prosimo, upoštevajte, da se bo hitrost vozila zaznala samo v eno smer, tj.Zagon laserja za zaustavitev laserja, za zaznavanje vozila v drugo smer pa mora biti enaka nastavitev v nasprotni smeri. Torej, to je idealno za kraje, kot so šola, kolaž itd., Kjer imajo IN in OUT vrata.

Zdaj pa si oglejmo shematski diagram:

Povezava med Arduino in zaslonom:

LCD prikaz hitrosti vozila

Tam zgoraj je vezje samoumevno in samo priključite ožičenje po vezju. Prilagodite 10K potenciometer za prilagajanje kontrasta zaslona.

Dodatne podrobnosti o ožičenju:

Vzpostavljena napeljava za merjenje razdalje vozila

Zgornje vezje sestavljajo Arduino, 4 potisni gumbi, dva 10K upogljiva upora (ne spreminjajte vrednosti uporov), dva LDR-ja in en zvočni signal. V kratkem bomo razložili delovanje 4 tipk. Zdaj pa poglejmo, kako pravilno namestiti LDR.

LDR utor za zaznavanje hitrosti vozila

LDR me mora pravilno zaščititi pred sončno svetlobo, le laserski žarek naj udari v LDR. Prepričajte se, da je vaš laserski modul dovolj močan, da deluje v močnem soncu.
Za zgornji namen lahko uporabite PVC cev in jo v cevi pobarvate v črno barvo, ne pozabite prekriti sprednjega dela, za to uporabite svojo kreativnost.

Koda programa:

// ----------- Developed by R.GIRISH ---------//
#include
#include
const int rs = 7
const int en = 6
const int d4 = 5
const int d5 = 4
const int d6 = 3
const int d7 = 2
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
const int up = A0
const int down = A1
const int Set = A2
const int change = A3
const int start = 8
const int End = 9
const int buzzer = 10
const float km_h = 3.6
int distance = 10 // In meters.
int variable = 0
int count = 0
int address = 0
int value = 100
int speed_address = 1
int speed_value = 0
int i = 0
float ms = 0
float Seconds = 0
float Speed = 0
boolean buzz = false
boolean laser = false
boolean x = false
boolean y = false
void setup()
{
pinMode(start, INPUT)
pinMode(End, INPUT)
pinMode(up, INPUT)
pinMode(down, INPUT)
pinMode(Set, INPUT)
pinMode(change, INPUT)
pinMode(buzzer, OUTPUT)
digitalWrite(change, HIGH)
digitalWrite(up, HIGH)
digitalWrite(down, HIGH)
digitalWrite(Set, HIGH)
digitalWrite(buzzer, LOW)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0, 0)
lcd.print(F(' Vehicle Speed'))
lcd.setCursor(0, 1)
lcd.print(F(' detector'))
delay(1500)
if (EEPROM.read(address) != value)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Speed Limit')
lcd.setCursor(0, 1)
lcd.print('km/h:')
lcd.setCursor(6, 1)
lcd.print(count)
while (x == false)
{
if (digitalRead(up) == LOW)
{
lcd.setCursor(6, 1)
count = count + 1
lcd.print(count)
delay(200)
}
if (digitalRead(down) == LOW)
{
lcd.setCursor(6, 1)
count = count - 1
lcd.print(count)
delay(200)
}
if (digitalRead(Set) == LOW)
{
speed_value = count
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Speed Limit is')
lcd.setCursor(0, 1)
lcd.print('set to ')
lcd.print(speed_value)
lcd.print(' km/h')
EEPROM.write(speed_address, speed_value)
delay(2000)
x = true
}
}
EEPROM.write(address, value)
}
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Testing Laser')
lcd.setCursor(0, 1)
lcd.print('Alignment....')
delay(1500)
while (laser == false)
{
if (digitalRead(start) == HIGH && digitalRead(End) == HIGH)
{
laser = true
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Laser Alignment')
lcd.setCursor(0, 1)
lcd.print('Status: OK')
delay(1500)
}
while (digitalRead(start) == LOW && digitalRead(End) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Both Lasers are')
lcd.setCursor(0, 1)
lcd.print('not Aligned')
delay(1000)
}
while (digitalRead(start) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Start Laser not')
lcd.setCursor(0, 1)
lcd.print('Aligned')
delay(1000)
}
while (digitalRead(End) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('End Laser not')
lcd.setCursor(0, 1)
lcd.print('Aligned')
delay(1000)
}
}
lcd.clear()
}
void loop()
{
if (digitalRead(change) == LOW)
{
change_limit()
}
if (digitalRead(start) == LOW)
{
variable = 1
buzz = true
while (variable == 1)
{
ms = ms + 1
delay(1)
if (digitalRead(End) == LOW)
{
variable = 0
}
}
Seconds = ms / 1000
ms = 0
}
if (Speed {
y = true
}
Speed = distance / Seconds
Speed = Speed * km_h
if (isinf(Speed))
{
lcd.setCursor(0, 0)
lcd.print('Speed:0.00')
lcd.print(' km/h ')
}
else
{
lcd.setCursor(0, 0)
lcd.print('Speed:')
lcd.print(Speed)
lcd.print('km/h ')
lcd.setCursor(0, 1)
lcd.print(' ')
if (buzz == true)
{
buzz = false
digitalWrite(buzzer, HIGH)
delay(100)
digitalWrite(buzzer, LOW)
}
if (Speed > EEPROM.read(speed_address))
{
lcd.setCursor(0, 0)
lcd.print('Speed:')
lcd.print(Speed)
lcd.print('km/h ')
lcd.setCursor(0, 1)
lcd.print('Overspeed Alert!')
if (y == true)
{
y = false
for (i = 0 i <45 i++)
{
digitalWrite(buzzer, HIGH)
delay(50)
digitalWrite(buzzer, LOW)
delay(50)
}
}
}
}
}
void change_limit()
{
x = false
count = EEPROM.read(speed_address)
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Speed Limit')
lcd.setCursor(0, 1)
lcd.print('km/h:')
lcd.setCursor(6, 1)
lcd.print(count)
while (x == false)
{
if (digitalRead(up) == LOW)
{
lcd.setCursor(6, 1)
count = count + 1
lcd.print(count)
delay(200)
}
if (digitalRead(down) == LOW)
{
lcd.setCursor(6, 1)
count = count - 1
lcd.print(count)
delay(200)
}
if (digitalRead(Set) == LOW)
{
speed_value = count
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Speed Limit is')
lcd.setCursor(0, 1)
lcd.print('set to ')
lcd.print(speed_value)
lcd.print(' km/h')
EEPROM.write(speed_address, speed_value)
delay(2000)
x = true
lcd.clear()
}
}
}
// ----------- Developed by R.GIRISH ---------//

Zdaj pa poglejmo, kako upravljati to vezje:

• Izpolnite krog in naložite kodo.
• Razdalja med dvema laserjema / LDR mora biti natanko 10 metrov, nič manj ali nič več, sicer bo hitrost napačno izračunana (prikazano na prvem diagramu).
• Razdalja med laserjem in LDR je lahko po vaši izbiri in okoliščinah.
• Vezje bo preverilo lasersko neusklajenost z LDR, če obstaja, ga popravite v skladu z informacijami, prikazanimi na LCD-prikazovalniku.
• Na začetku bo vezje zahtevalo, da vnesete omejitev hitrosti v km / h, nad katero vezje opozori, s pritiskom na gor (S1) in dol (S2) lahko spremenite številko na zaslonu in pritisnete na nastavitev (S3), to vrednost bo shranjena.
• Če želite spremeniti to omejitev hitrosti, pritisnite gumb S4 in lahko nastavite novo omejitev hitrosti.
• Zdaj zaženite motorno kolo s hitrostjo 30 km / h in prekinite laserske žarke, vezje naj vam pokaže številko zelo blizu 30 km / h.
• Končali ste in vaše vezje je pripravljeno, da služi vašemu kampusu.

Avtorjev prototip:

prototip zaznavanja hitrosti vozila

Če imate kakršna koli vprašanja v zvezi s tem vezjem detektorja hitrosti vozila prometne policije, vas prosimo, da vprašate v oddelku za komentarje, lahko prejmete hiter odgovor.




Prejšnji: Podatkovni list senzorja PIR, Specifikacije izrezov, Delo Naprej: Tester vezja daljinskega upravljalnika