இந்த இடுகையில், ஆர்டுயினோ, மீயொலி சென்சார் மற்றும் 2.4 ஜிகாஹெர்ட்ஸ் டிரான்ஸ்ஸீவர் தொகுதியைப் பயன்படுத்தி கார் ரிவர்ஸ் பார்க்கிங் சென்சார் அலாரம் சுற்று ஒன்றை உருவாக்க உள்ளோம். இந்த திட்டம் உங்கள் காருக்கு உள்ளமைக்கப்பட்ட பார்க்கிங் சென்சார்களைக் கொண்டிருக்கவில்லை என்றால், அது கூடுதல் அம்சமாக இருக்கலாம்.
அறிமுகம்
எல்.சி.டி டிஸ்ப்ளேவில் கார் மற்றும் தடையாக உள்ள தூரம் மற்றும் ஆடியோ பீப் எச்சரிக்கை போன்ற பாரம்பரிய கார் பார்க்கிங் சென்சார் போன்ற முன்மொழியப்பட்ட திட்டம் இதேபோன்ற செயல்பாட்டைக் கொண்டுள்ளது.
முன்மொழியப்பட்ட திட்டத்தை நிலையான பார்க்கிங் சென்சாராகப் பயன்படுத்தலாம், அதாவது உங்கள் கேரேஜ் அல்லது மொபைல் பார்க்கிங் சென்சார் மீது வைக்கப்பட்டுள்ள சென்சார், அதாவது காரின் மின் அமைப்புடன் திட்டத்தை வயரிங் செய்வதற்கான சிறிய ஆபத்தை நீங்கள் எடுக்கத் தயாராக இருந்தால், உங்கள் காரின் பின்புறத்தில் வைக்கப்படும் சென்சார்.
இருப்பினும், இந்த திட்டத்தின் உந்துதல் ஒரு நிலையான பார்க்கிங் சென்சார் உருவாக்க இது பூஜ்ஜிய ஆபத்துடன் உருவாக்கப்படலாம்.
அர்டுயினோவைப் பயன்படுத்தும் கார் பார்க்கிங் சென்சார் அலாரம் திட்டம் இரண்டு பகுதிகளைக் கொண்டுள்ளது, இது டிரான்ஸ்மிட்டர் மீயொலி சென்சார், அர்டுயினோ, பஸர் மற்றும் 2.4 ஜிகாஹெர்ட்ஸ் டிரான்ஸ்ஸீவர் தொகுதி ஆகியவற்றைக் கொண்டுள்ளது. இந்த சுற்று காருக்கும் தடையுக்கும் இடையிலான தூரத்தை அளவிடும்.
ரிசீவர் 2.4 ஜிகாஹெர்ட்ஸ் டிரான்ஸ்ஸீவர் தொகுதி, அர்டுயினோ மற்றும் 16 எக்ஸ் 2 எல்சிடி டிஸ்ப்ளே ஆகியவற்றைக் கொண்டுள்ளது.
ரிசீவர் சர்க்யூட் காருக்குள் 9 வி பேட்டரியுடன் மின்சாரம் வழங்கப்படும். ரிசீவர் காருக்கும் தடையுக்கும் இடையிலான தூரத்தை மீட்டரில் காண்பிக்கும்.
டிரான்ஸ்மிட்டர் 2.4 ஜிகாஹெர்ட்ஸ் இணைப்பு வழியாக காருக்குள் இருக்கும் ரிசீவருக்கு சென்சார் தரவை அனுப்பும். தொடர்பு இணைப்பு NRF24L01 தொகுதியைப் பயன்படுத்தி நிறுவப்பட்டுள்ளது.
இப்போது NRF24L01 தொகுதியின் கண்ணோட்டத்தைப் பார்ப்போம்.
NRF24L01 இன் விளக்கம்:
இந்த தொகுதி இரண்டு மைக்ரோகண்ட்ரோலர்களுக்கிடையில் இரு திசை தொடர்பு இணைப்பை நிறுவ வடிவமைக்கப்பட்டுள்ளது. இது SPI தொடர்பு நெறிமுறையில் செயல்படுகிறது. இது 125 வெவ்வேறு சேனல்களைக் கொண்டுள்ளது மற்றும் அதிகபட்ச தரவு வீதத்தை 2Mbps கொண்டுள்ளது. இது கோட்பாட்டு அதிகபட்ச வரம்பு 100 மீட்டர்.
முள் உள்ளமைவு:
இது 3.3V இல் இயங்குகிறது, எனவே Vcc முனையத்தில் 5 வோல்ட் அதைக் கொல்லும். இருப்பினும், இது மைக்ரோகண்ட்ரோலர்களிடமிருந்து 5 வி தரவு சமிக்ஞைகளை ஏற்க முடியும்.
இப்போது திட்டத்தின் டிரான்ஸ்மிட்டருக்கு செல்லலாம்.
இந்த சுற்று NRF24L01 தொகுதிடன் 5 கம்பிகளுடன் டிஜிட்டல் I / O ஊசிகளான அர்டுயினோவுடன் இணைக்கப்பட்டுள்ளது மற்றும் மீதமுள்ள இரண்டு முதல் 3.3V மற்றும் தரை வரை இணைக்கப்பட்டுள்ளது. முள் # 2 டிரான்சிஸ்டரின் தளத்துடன் இணைக்கப்பட்டுள்ளது, இது பஸருக்கு சக்தி அளிக்கும்.
மீயொலி சென்சாரின் சக்தி முனையங்கள் 5V மற்றும் GND உடன் இணைக்கப்பட்டுள்ளன மற்றும் A0 தூண்டுதல் முள் உடன் இணைக்கப்பட்டுள்ளது மற்றும் A1 சென்சாரின் எதிரொலி முள் உடன் இணைக்கப்பட்டுள்ளது.
சென்சாரின் தூரத் தரவு 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 எல்சிடி டிஸ்ப்ளே கொண்டுள்ளது. காட்சி இணைப்பு கீழே கொடுக்கப்பட்டுள்ளது:
சிறந்த பார்வைக்கு 10K பொட்டென்டோமீட்டரை சரிசெய்யவும்.
மேலே உள்ள திட்டமானது ரிசீவர் சுற்றுகளின் மீதமுள்ளதாகும். 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-------//
இப்போது, அது பெறுநரை முடிக்கிறது.
நிலையான பார்க்கிங் சென்சாராக சென்சார் வைப்பது எப்படி:
மொபைல் பார்க்கிங் சென்சாராக சென்சார் வைப்பது எப்படி:
மொபைல் பார்க்கிங் சென்சாரில் டிரான்ஸ்மிட்டரின் மீயொலி சென்சார் காரின் பின்புறத்தில் வைக்கப்படுகிறது, மின்சாரம் காரின் பேட்டரியிலிருந்து வழங்கப்படுகிறது. நீங்கள் பற்றவைப்பை அணைக்கும்போது, ஆர்டுயினோ விநியோகத்திலிருந்து துண்டிக்கப்பட வேண்டும்.
ரிசீவர் முன்பு குறிப்பிட்டபடி உள்ளே வைக்கப்படலாம்.
இந்த கார் பார்க்கிங் சென்சார் திட்டத்தை எவ்வாறு இயக்குவது (நிலையான வகை)
First முதலில் டிரான்ஸ்மிட்டரை இயக்கவும், உங்கள் காரில் சென்று ரிசீவரை இயக்கவும். டிரான்ஸ்மிட்டர் மற்றும் ரிசீவர் இடையேயான இணைப்பு நிறுவப்பட்டால், அது “இணைப்பு: சரி” என்பதைக் காண்பிக்கும் மற்றும் கார் மற்றும் சென்சாருக்கு இடையிலான தூரத்தைக் காட்டுகிறது.
”இது” இணைப்பு நிறுவப்படவில்லை ”என்பதைக் காண்பித்தால், ரிசீவரில் வழங்கப்பட்ட புஷ் பொத்தானை அழுத்தவும்.
Can உங்கள் மீயொலி மீயொலி சென்சாரிலிருந்து வெகு தொலைவில் இருந்தால், அது “கார் வரம்பில் இல்லை” என்பதைக் காண்பிக்கும்.
Car மெதுவாக உங்கள் காரை தலைகீழாக அல்லது உங்கள் பார்க்கிங் சதித்திட்டத்திற்கு எடுத்துச் செல்லுங்கள்.
Car கார் மற்றும் சென்சாருக்கு இடையிலான தூரம் 1.0 மீட்டருக்கும் குறைவாக இருப்பதால், பஸர் பீப் செய்கிறது.
The நீங்கள் சென்சாரை நெருங்கும்போது பீப்பின் வீதம் அதிகரிக்கிறது, கார் 1 அடி அல்லது 0.3 மீட்டரை அடைந்ததும், காரை நிறுத்த காட்சி வரியில் நீங்கள் நிறுத்த வேண்டும்.
Trans டிரான்ஸ்மிட்டர் மீட்டமைக்கப்படும் மற்றும் தானாக செயலற்றதாக இருக்கும். உங்கள் காரில் ரிசீவரை அணைக்கவும். நீங்கள் டிரான்ஸ்மிட்டரை பேட்டரி மூலம் இயக்கினால், அதையும் அணைக்கவும்.
இந்த கார் பார்க்கிங் சென்சார் அலாரம் சுற்று (மொபைல் பார்க்கிங் சென்சார்) எவ்வாறு இயங்குவது
Car ரிசீவர் “கார் வரம்பில் இல்லை” என்பதைக் காண்பித்தால் இது முன்னர் கூறப்பட்ட அறிவுறுத்தலாகும், உங்கள் கார் தடையிலிருந்து வெகு தொலைவில் உள்ளது.
The நீங்கள் இயந்திரத்தை அணைக்கும்போது, டிரான்ஸ்மிட்டர் சுற்று அணைக்கப்பட வேண்டும். ரிசீவர் சுற்றுகளை கைமுறையாக அணைக்கவும்.
ஆசிரியரின் முன்மாதிரி:
டிரான்ஸ்மிட்டர்:
பெறுநர்:
முந்தைய: பி.எல்.டி.சி மற்றும் ஆல்டர்னேட்டர் மோட்டர்களுக்கான யுனிவர்சல் ஈ.எஸ்.சி சர்க்யூட் அடுத்து: Arduino ஐப் பயன்படுத்தி உயர் மின்னோட்ட மோட்டார் கட்டுப்பாட்டு சுற்று