অ্যালার্মের সাথে গাড়ি বিপরীত পার্কিং সেন্সর সার্কিট

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





এই পোস্টে আমরা আরডুইনো, অতিস্বনক সেন্সর এবং ২.৪ গিগাহার্টজ ট্রান্সসিভার মডিউল ব্যবহার করে একটি গাড়ি বিপরীত পার্কিং সেন্সর অ্যালার্ম সার্কিট তৈরি করতে যাচ্ছি। যদি এই বিল্ড-ইন পার্কিং সেন্সরগুলি খেলা না করে তবে এই প্রকল্পটি আপনার গাড়ির জন্য অ্যাড-অন বৈশিষ্ট্যযুক্ত হতে পারে।

ভূমিকা

প্রস্তাবিত প্রকল্পটির যেমন traditionalতিহ্যবাহী গাড়ি পার্কিং সেন্সর রয়েছে তেমন কার্যকারিতা রয়েছে যেমন এলসিডি ডিসপ্লেতে গাড়ি এবং বাধার মধ্যে দূরত্ব এবং অডিও বিপ সতর্কতা।



প্রস্তাবিত প্রকল্পটি স্থিতিশীল পার্কিং সেন্সর হিসাবে ব্যবহার করা যেতে পারে, যেমন আপনার গ্যারেজে রাখা সেন্সর বা মোবাইল পার্কিং সেন্সর অর্থ্যাৎ আপনি যদি গাড়ির বৈদ্যুতিক সিস্টেমের সাহায্যে প্রকল্পটি তারের ঝুঁকি নিতে প্রস্তুত থাকেন তবে আপনার গাড়ির পিছনে সেন্সর স্থাপন করা হয়েছে।

যাইহোক, এই প্রকল্পের অনুপ্রেরণাটি স্টেশনারি পার্কিং সেন্সর তৈরি করুন যা শূন্য ঝুঁকি নিয়ে তৈরি করা যেতে পারে।



আরডিনো ব্যবহার করে গাড়ি পার্কিং সেন্সর অ্যালার্ম প্রকল্পের দুটি অংশ রয়েছে, ট্রান্সমিটারটিতে আল্ট্রাসোনিক সেন্সর, আরডুইনো, বুজার এবং ২.৪ গিগাহার্টজ ট্রান্সসিভার মডিউল থাকে। এই সার্কিটটি গাড়ি এবং বাধার মধ্যে দূরত্ব পরিমাপ করবে।

রিসিভারটিতে 2.4 গিগাহার্টজ ট্রান্সসিভার মডিউল, আরডুইনো এবং 16x2 এলসিডি ডিসপ্লে রয়েছে।

রিসিভার সার্কিটটি বিদ্যুত সরবরাহ হিসাবে 9 ভি ব্যাটারি সহ গাড়ির ভিতরে স্থাপন করা হবে। রিসিভারটি মিটারে গাড়ি এবং বাধার মধ্যে দূরত্ব প্রদর্শন করবে।

ট্রান্সমিটারটি 2.4 গিগাহার্টজ লিঙ্কের মাধ্যমে গাড়ির অভ্যন্তরে রিসিভারে সেন্সর তথ্য প্রেরণ করবে। যোগাযোগ লিঙ্কটি NRF24L01 মডিউলটি ব্যবহার করে প্রতিষ্ঠিত।

এখন আসুন NRF24L01 মডিউলটির ওভারভিউটি দেখতে দিন।

NRF24L01 এর চিত্র:

NRF24L01 মডিউল

এই মডিউলটি দুটি মাইক্রোকন্ট্রোলারের মধ্যে দ্বি-দিকনির্দেশক যোগাযোগ লিঙ্ক স্থাপনের জন্য ডিজাইন করা হয়েছে। এটি এসপিআই যোগাযোগ প্রোটোকলে কাজ করে। এটিতে 125 টি আলাদা চ্যানেল রয়েছে এবং এটিতে 2Mbps সর্বোচ্চ ডেটা রেট রয়েছে। এটিতে তাত্ত্বিক সর্বোচ্চ 100 মিটার পরিসীমা রয়েছে।

পিন কনফিগারেশন:

এটি 3.3V তে কাজ করে, সুতরাং ভিসি টার্মিনালে 5 ভোল্ট এটি মেরে ফেলতে পারে। তবে এটি মাইক্রোকন্ট্রোলারদের 5 ভি ডেটা সংকেত গ্রহণ করতে পারে।

এখন প্রকল্পের ট্রান্সমিটারে এগিয়ে চলি।

গাড়ি পার্কিং সেন্সর এলার্ম ট্রান্সমিটার সার্কিট

সার্কিটটি এনআরএফ 24 ল01 মডিউল দিয়ে তারডযুক্ত 5 টি তারযুক্ত আর্দুইনোর ডিজিটাল আই / ও পিন এবং দুটি থেকে 3.3 ভি এবং গ্রাউন্ডের সাথে সংযুক্ত রয়েছে। পিন # 2 ট্রানজিস্টরের বেসের সাথে সংযুক্ত যা বুজারকে শক্তি দেবে।

অতিস্বনক সেন্সরের পাওয়ার টার্মিনালগুলি 5 ভি এবং জিএনডি এবং এ 0 টি ট্রিগার পিনের সাথে সংযুক্ত এবং এ 1 সেন্সরের ইকো পিনের সাথে সংযুক্ত রয়েছে।

সেন্সরের দূরত্বের ডেটা NRF24L01 মডিউলটির মাধ্যমে রিসিভারে স্থানান্তরিত হয়।

-------------------------------------------------- ----------------------------------------- অনুগ্রহ করে অনুসরণ করুন লিঙ্কটি থেকে লাইব্রেরি ফাইলটি ডাউনলোড করুন: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

ট্রান্সমিটারের জন্য প্রোগ্রাম:

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

এটি ট্রান্সমিটার সমাপ্ত করে।

রিসিভার:

দূরত্ব পরিমাপ প্রদর্শনের জন্য রিসিভারটিতে 16x2 এলসিডি ডিসপ্লে রয়েছে। প্রদর্শন সংযোগটি নীচে দেওয়া হয়েছে:

গাড়ি পার্কিং সেন্সর এলার্ম এলসিডি ডিসপ্লে সার্কিট

আরও ভাল বিপরীতে দেখার জন্য 10 কে পোটেন্টিওমিটার সামঞ্জস্য করুন।

উপরের স্কিম্যাটিকটি রিসিভার সার্কিটের বাকী অংশ। ২.৪ গিগাহার্টজ লিংক সংযোগ স্থাপন না করা হলে আরডুইনো রিসেট করার জন্য একটি পুশ বোতাম সরবরাহ করা হয়।

রিসিভার সার্কিটটি গাড়ীর অভ্যন্তরে স্থাপন করা হয়েছে এটি 9V ব্যাটারি থেকে পাওয়ার হতে পারে। রিসিভারটি একটি জাঙ্ক বাক্সে রাখা যেতে পারে যা আপনার গাড়ীটিকে দেখতে সুন্দর দেখাচ্ছে। জাঙ্ক বক্সটি আপনার গাড়িতে উপকরণের ক্লাস্টারের উপরে বা আপনার পছন্দসই কোনও সুবিধাজনক জায়গার উপরে স্থাপন করা যেতে পারে।

গ্রহীতার জন্য প্রোগ্রাম:

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

এখন, এটি রিসিভার শেষ করে।

স্টেশনারি পার্কিং সেন্সর হিসাবে সেন্সরটি কীভাবে রাখবেন:

সেন্সরটিকে মোবাইল পার্কিং সেন্সর হিসাবে কীভাবে রাখবেন:

মোবাইল পার্কিং সেন্সরে ট্রান্সমিটারের আল্ট্রাসোনিক সেন্সরটি গাড়ির পিছনের দিকে রাখা হয়, গাড়ির ব্যাটারি থেকে শক্তি সরবরাহ করা হয়। এটি এমনভাবে ওয়্যার করা উচিত যাতে আপনি যখন ইগনিশন বন্ধ করবেন তখন আরডুইনো অবশ্যই সরবরাহ থেকে সংযোগ বিচ্ছিন্ন করতে হবে।

প্রাপকটি পূর্বে উল্লিখিত হিসাবে অভ্যন্তরস্থ স্থাপন করা যেতে পারে।

এই গাড়ি পার্কিং সেন্সর প্রকল্পটি কীভাবে পরিচালনা করবেন (স্টেশনারি টাইপ)

The প্রথমে ট্রান্সমিটারটি চালিত করুন, আপনার গাড়িতে যান এবং রিসিভারটি চালু করুন। যদি ট্রান্সমিটার এবং রিসিভারের মধ্যে সংযোগ স্থাপন করা হয় তবে এটি 'সংযোগ: ঠিক আছে' প্রদর্শিত হবে এবং গাড়ি এবং সেন্সরের মধ্যে দূরত্ব দেখায়।

It যদি এটি প্রদর্শিত হয় 'সংযোগ স্থাপন করা হয়নি' রিসিভারের সরবরাহ করা পুশ বোতাম টিপুন।

Your এটি যদি আল্ট্রাসোনিক সেন্সর থেকে খুব দূরে থাকে তবে এটি 'গাড়িটি সীমার মধ্যে নয়' প্রদর্শন করতে পারে।

• আলতো করে আপনার গাড়ীটিকে বিপরীতে নিয়ে যান বা আপনার পার্কিং প্লটের দিকে এগিয়ে যান।

Car গাড়ি এবং সেন্সরের মধ্যকার দূরত্বটি 1.0 মিটারের চেয়ে কম হয়ে গেলে বুজার বিপগুলি।

You আপনি সেন্সরের কাছে যাওয়ার সাথে সাথে বীপের হার আরও বাড়বে, একবার গাড়ি 1 ফুট বা 0.3 মিমি পৌঁছে গেলে ডিসপ্লেটি গাড়ি থামানোর জন্য অনুরোধ জানায় এবং আপনাকে অবশ্যই থামতে হবে।

• ট্রান্সমিটারটি পুনরায় সেট হবে এবং স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় হয়ে যাবে। আপনার গাড়িতে রিসিভারটি বন্ধ করুন। আপনি যদি ব্যাটারি দ্বারা ট্রান্সমিটার চালিত করেন তবে এটিও বন্ধ করুন।

কীভাবে এই গাড়ী পার্কিং সেন্সর অ্যালার্ম সার্কিট (মোবাইল পার্কিং সেন্সর) পরিচালনা করবেন

• এটি অনুরূপ পূর্বের নির্দেশ অনুসারে যদি আপনার গ্রহণকারীর বাধা থেকে খুব দূরে থাকে তবে 'গাড়িটি সীমার মধ্যে নেই' প্রদর্শন করে।

You আপনি ইঞ্জিনটি বন্ধ করার সময় ট্রান্সমিটার সার্কিটটি অবশ্যই বন্ধ করতে হবে। ম্যানুয়ালি রিসিভার সার্কিটটি বন্ধ করুন।

লেখকের প্রোটোটাইপ:

ট্রান্সমিটার:

রিসিভার:

গাড়ি পার্কিং সেন্সর এলার্ম প্রোটোটাইপ


পূর্ববর্তী: বিএলডিসি এবং অল্টারনেটার মোটরগুলির জন্য ইউনিভার্সাল ইএসসি সার্কিট পরবর্তী: আরডুইনো ব্যবহার করে হাই কারেন্ট মোটর কন্ট্রোল সার্কিট