Круг сензора за паркирање уназад аутомобила са алармом

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту ћемо конструисати алармни круг сензора за паркирање уназад помоћу ардуина, ултразвучног сензора и примопредајног модула од 2,4 ГХз. Овај пројекат може бити додатна функција за ваш аутомобил ако нема уграђене паркинг сензоре.

Увод

Предложени пројекат има сличну функционалност коју има традиционални сензор за паркирање аутомобила, као што је удаљеност између аутомобила и препреке на ЛЦД дисплеју и звучни сигнал.



Предложени пројекат може се користити као стационарни сензор за паркирање, тј. Сензор постављен на вашој гаражи или мобилни сензор за паркирање, тј. Сензор постављен на задњој страни аутомобила, ако сте спремни да преузмете мали ризик да повежете пројекат електричним системом аутомобила.

Међутим, мотивација овог пројекта је изградити стационарни сензор за паркирање који се могу градити са нула ризика.



Пројекат аларма сензора за паркирање аутомобила који користи Ардуино има два дела, предајник који се састоји од ултразвучног сензора, ардуина, зујалице и примопредајног модула од 2,4 ГХз. Овај круг ће мерити удаљеност између аутомобила и препреке.

Пријемник се састоји од примопредајног модула од 2,4 ГХз, ардуина и ЛЦД екрана од 16к2.

Коло пријемника биће смештено у аутомобилу са 9В батеријом као напајањем. Пријемник ће приказати растојање између аутомобила и препреке у метрима.

Предајник ће преносити податке сензора на пријемник у аутомобилу путем везе од 2,4 ГХз. Комуникациона веза се успоставља помоћу модула НРФ24Л01.

Сада да видимо преглед модула НРФ24Л01.

Илустрација НРФ24Л01:

НРФ24Л01 Модул

Овај модул је дизајниран да успостави двосмерну комуникациону везу између два микроконтролера. Ради на СПИ комуникацијском протоколу. Има 125 различитих канала и има максималну брзину преноса података од 2Мбпс. Има теоретски максимални домет од 100 метара.

Конфигурација пин-а:

Ради на 3.3В, тако да 5 волти на Вцц терминалу могу да га убију. Међутим, може да прихвати 5В сигнал података од микроконтролера.

Пређимо сада на предајник пројекта.

Круг предајника аларма сензора за паркирање аутомобила

Коло је ожичено модулом НРФ24Л01 са 5 жица повезаних на дигиталне И / О пинове ардуина и остатак од два до 3,3 В и уземљење. Пин # 2 је повезан са базом транзистора који ће напајати зујалицу.

Терминали за напајање ултразвучног сензора повезани су на 5В, а ГНД и А0 су повезани на окидач, а А1 је повезан на ехо-пин сензора.

Подаци о удаљености сензора преносе се путем модула НРФ24Л01 до пријемника.

-------------------------------------------------- ----------------------------------------- Преузмите датотеку библиотеке са следећег линка: гитхуб.цом/нРФ24/РФ24.гит----------------------------------------- -------------------------------------------------- ---

Програм за предајник:

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

То закључује предајник.

Пријемник:

Пријемник има ЛЦД екран од 16к2 за приказ мерења удаљености. Веза екрана је дата у наставку:

Круг круга аларма сензора за паркинг аутомобила

Подесите 10К потенциометар за бољи контраст гледања.

Горња шема је остатак кола пријемника. Обезбеђен је тастер за ресетовање ардуина у случају да веза 2,4 ГХз није успостављена.

Коло пријемника је смештено унутар аутомобила, а може се напајати из 9В батерије. Пријемник се може ставити у смеће, због чега ваш аутомобил може изгледати добро. Смеће се може ставити у ваш аутомобил изнад инструмент табле или на било које погодно место које желите.

Програм за пријемник:

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

То је закључило пријемник.

Како поставити сензор као стационарни паркинг сензор:

Како поставити сензор као мобилни паркинг сензор:

У мобилном паркинг сензору ултразвучни сензор предајника је постављен на задњој страни аутомобила, а напајање се добија из акумулатора аутомобила. Требао би бити ожичен на такав начин да када искључите контакт, ардуино се мора искључити из напајања.

Пријемник се може поставити изнутра како је претходно поменуто.

Како управљати овим пројектом сензора за паркирање аутомобила (стационарни тип)

• Прво укључите предајник, идите до свог аутомобила и укључите пријемник. Ако се успостави веза између предајника и пријемника, приказаће се „Цоннецтион: ОК“ и приказана је удаљеност између аутомобила и сензора.

• Ако се прикаже „Веза није успостављена“, притисните тастер на пријемнику.

• Можда је приказано „Аутомобил није у домету“ ако је ваша лименка далеко од ултразвучног сензора.

• Нежно возите аутомобил уназад или унапред до паркинг места.

• Како растојање између аутомобила и сензора постаје мање од 1,0 метра, зујало се оглашава.

• Како се приближавате сензору, брзина звучног сигнала се повећава, када аутомобил достигне 1 метар или 0,3 метра, на екрану се тражи да зауставите аутомобил и морате се зауставити.

• Предајник ће се ресетовати и аутоматски прећи у стање мировања. Искључите пријемник у аутомобилу. Ако сте предајник напајали батеријом, искључите и њега.

Како се управља овим алармним кругом сензора за паркирање аутомобила (покретни сензор за паркирање)

• Слична је претходно наведена упутства ако пријемник приказује „Аутомобил није у домету“. Ваш аутомобил је далеко од препреке.

• Када искључите мотор, круг предајника мора се искључити. Ручно искључите круг пријемника.

Ауторски прототип:

Предајник:

Пријемник:

Прототип аларма сензора за паркирање аутомобила


Претходно: Универзални ЕСЦ круг за БЛДЦ и моторе алтернатора Следеће: Управљачки круг јаке струје помоћу Ардуина