- NRF24L01 RF தொகுதி
- சுற்று வரைபடம்
- NRF24l01 ஐப் பயன்படுத்தி செய்தியை அனுப்ப ராஸ்பெர்ரி பை நிரலாக்க
- NRF24l01 ஐப் பயன்படுத்தி செய்தியைப் பெற Arduino UNO ஐ நிரலாக்க
வடிவமைப்பாளர்கள் புளூடூத் லோ எனர்ஜி (பிஎல்இ 4.0), ஜிக்பீ, ஈஎஸ்பி 8266 வைஃபை தொகுதிகள், 433 மெகா ஹெர்ட்ஸ் ஆர்எஃப் தொகுதிகள், லோரா, என்ஆர்எஃப் போன்ற பல வயர்லெஸ் தகவல்தொடர்பு அமைப்புகளைப் பயன்படுத்துகின்றனர். அனைத்தும், உள்ளூர் பிணைய தகவல்தொடர்புக்கான ஒரு பிரபலமான வயர்லெஸ் ஊடகம் nRF24L01 ஆகும். இந்த தொகுதிகள் 2.4GHz (ISM பேண்ட்) இல் 250Kbps முதல் 2Mbps வரை பாட் வீதத்துடன் இயங்குகின்றன, இது பல நாடுகளில் சட்டபூர்வமானது மற்றும் தொழில்துறை மற்றும் மருத்துவ பயன்பாடுகளில் பயன்படுத்தப்படலாம். சரியான ஆண்டெனாக்கள் மூலம் இந்த தொகுதிகள் அவற்றுக்கு இடையே 100 மீட்டர் தூரம் வரை சமிக்ஞைகளை அனுப்பலாம் மற்றும் பெறலாம் என்றும் கூறப்படுகிறது. சர்வோ மோட்டாரைக் கட்டுப்படுத்தவும் அரட்டை அறையை உருவாக்கவும் நாங்கள் முன்பு அர்டுயினோவுடன் nRF24L01 ஐப் பயன்படுத்தினோம்.
இங்கே நாம் ஒரு வயர்லெஸ் தகவல்தொடர்புகளை நிறுவ Arduino UNO மற்றும் ராஸ்பெர்ரி பை உடன் nRF24L01 - 2.4GHz RF டிரான்ஸ்ஸீவர் தொகுதியைப் பயன்படுத்துவோம். ராஸ்பெர்ரி பை ஒரு டிரான்ஸ்மிட்டராக செயல்படும், அர்டுயினோ யூனோ ராஸ்பெர்ரி பை கேட்கும் மற்றும் ராஸ்பெர்ரி பை அனுப்பிய செய்தியை nRF24L01 ஐப் பயன்படுத்தி 16x2 எல்சிடியில் அச்சிடும். nRF24L01 உள்ளடிக்கிய BLE திறன்களையும் கொண்டுள்ளது, மேலும் இது BLE ஐப் பயன்படுத்தி கம்பியில்லாமல் தொடர்பு கொள்ளலாம்.
பயிற்சி இரண்டு பிரிவுகளாக பிரிக்கப்பட்டுள்ளது. முதல் பிரிவில் ரிசீவராக செயல்பட அர்டுயினோவுடன் nRF24L01 இன் இடைமுகமும், இரண்டாவது பிரிவில் டிரான்ஸ்மிட்டராக செயல்பட ராஸ்பெர்ரி பை உடன் nRF24L01 இன் இடைமுகமும் அடங்கும். வேலை செய்யும் வீடியோவுடன் இரு பிரிவுகளுக்கான முழுமையான குறியீடு இந்த டுடோரியலின் முடிவில் இணைக்கப்படும்.
NRF24L01 RF தொகுதி
NRF24L01 தொகுதிகள் உள்ளன டிரான்ஸ்சீவர் தொகுதிகள் ஒவ்வொரு தொகுதி அதாவது, முடியும் அனுப்பும் மற்றும் இரு தரவு பெறும் ஆனால் அவர்கள் இருப்பதால் அவர்கள் ஒன்று அனுப்ப அல்லது தரவுகளை ஒரே நேரத்தில் பெற முடியும் அரை ஒருவழிப். இந்த தொகுதி நோர்டிக் அரைக்கடத்திகளிடமிருந்து பொதுவான nRF24L01 ஐசியைக் கொண்டுள்ளது, இது தரவின் பரிமாற்றம் மற்றும் வரவேற்புக்கு பொறுப்பாகும். எஸ்.பி.ஐ நெறிமுறையைப் பயன்படுத்தி ஐ.சி தொடர்பு கொள்கிறது, எனவே எந்தவொரு மைக்ரோகண்ட்ரோலர்களுடனும் எளிதாக இணைக்க முடியும். நூலகங்கள் எளிதில் கிடைப்பதால் அர்டுயினோவுடன் இது மிகவும் எளிதாகிறது. ஒரு நிலையான nRF24L01 தொகுதி பின்அவுட்கள் கீழே தரப்பட்டுள்ளது

இந்த தொகுதி 1.9V முதல் 3.6V (பொதுவாக 3.3V) வரை இயக்க மின்னழுத்தத்தைக் கொண்டுள்ளது மற்றும் சாதாரண செயல்பாட்டின் போது 12mA இன் மிகக் குறைந்த மின்னோட்டத்தை மட்டுமே பயன்படுத்துகிறது, இது பேட்டரி செயல்திறனை உருவாக்குகிறது, எனவே நாணய கலங்களில் கூட இயங்க முடியும். இயக்க மின்னழுத்தம் 3.3 வி என்றாலும், பெரும்பாலான ஊசிகளும் 5 வி சகிப்புத்தன்மையுடையவை, எனவே அர்டுயினோ போன்ற 5 வி மைக்ரோகண்ட்ரோலர்களுடன் நேரடியாக இணைக்க முடியும். இந்த தொகுதிக்கூறுகளைப் பயன்படுத்துவதன் மற்றொரு நன்மை என்னவென்றால், ஒவ்வொரு தொகுதிக்கும் 6 பைப்லைன்கள் உள்ளன. பொருள், ஒவ்வொரு தொகுதியும் தரவை அனுப்ப அல்லது பெற 6 பிற தொகுதிகளுடன் தொடர்பு கொள்ளலாம். இது IoT பயன்பாடுகளில் நட்சத்திர அல்லது கண்ணி நெட்வொர்க்குகளை உருவாக்க தொகுதிக்கு ஏற்றதாக அமைகிறது. மேலும் அவை 125 தனித்துவமான ஐடிகளின் பரந்த முகவரி வரம்பைக் கொண்டுள்ளன, எனவே ஒரு மூடிய பகுதியில் ஒருவருக்கொருவர் தலையிடாமல் இந்த 125 தொகுதிக்கூறுகளைப் பயன்படுத்தலாம்.
சுற்று வரைபடம்
Arduino உடன் nRF24L01:
NRF24L01 ஐ Arduino உடன் இணைப்பதற்கான சுற்று வரைபடம் எளிதானது மற்றும் அதிக கூறுகள் இல்லை. NRF24l01 SPI இடைமுகம் இணைக் கப்படும் மற்றும் 16x2 எல்சிடி கொண்ட இரண்டு கம்பிகள் பயன்படுத்துகிறது I2C நெறிமுறை இடைமுகக்கப்படலாம் உள்ளது.


ராஸ்பெர்ரி பை உடன் nRF24L01:
ராஸ்பெர்ரி பை உடன் nRF24L01 ஐ இணைப்பதற்கான சுற்று வரைபடமும் மிகவும் எளிதானது மற்றும் ராஸ்பெர்ரி பை மற்றும் nRF24l01 ஐ இணைக்க SPI இடைமுகம் மட்டுமே பயன்படுத்தப்படுகிறது.


NRF24l01 ஐப் பயன்படுத்தி செய்தியை அனுப்ப ராஸ்பெர்ரி பை நிரலாக்க
பைத்தான் 3 ஐப் பயன்படுத்தி ராஸ்பெர்ரி பை இன் புரோகிராமிங் செய்யப்படும். நீங்கள் சி / சி ++ ஐ அர்டுயினோவாகவும் பயன்படுத்தலாம். ஆனால் ஏற்கனவே பைத்தானில் nRF24l01 க்கு ஒரு நூலகம் உள்ளது, அதை கிதுப் பக்கத்திலிருந்து பதிவிறக்கம் செய்யலாம். பைதான் நிரலும் நூலகமும் ஒரே கோப்புறையில் இருக்க வேண்டும் அல்லது பைதான் நிரலால் நூலகத்தைக் கண்டுபிடிக்க முடியாது என்பதை நினைவில் கொள்க. நூலகத்தைப் பதிவிறக்கிய பிறகு, அனைத்து நிரல்களும் நூலகக் கோப்புகளும் கடைகளாக இருக்கும் ஒரு கோப்புறையை பிரித்தெடுத்து உருவாக்கவும். நூலக நிறுவல் முடிந்ததும், நிரலை எழுதத் தொடங்குங்கள். ராஸ்பெர்ரி பை ஜிபிஐஓக்களை அணுகுவதற்கும் இறக்குமதி செய்யும் நேரத்தை இறக்குமதி செய்ய ஜிபிஐஓ நூலகம் போன்ற குறியீட்டில் பயன்படுத்தப்படும் நூலகங்களைச் சேர்ப்பதன் மூலம் நிரல் தொடங்குகிறது நேரம் தொடர்பான செயல்பாடுகளை அணுகுவதற்காக. நீங்கள் ராஸ்பெர்ரி பைக்கு புதியவர் என்றால், ராஸ்பெர்ரி பை உடன் தொடங்குவதற்கு திரும்பி விடுங்கள்.
RPi.GPIO ஐ GPIO ஆக இறக்குமதி செய்யுங்கள் lib_nrf24 இறக்குமதி NRF24 இலிருந்து இறக்குமதி நேரம் இறக்குமதி
GPIO பயன்முறையை " பிராட்காம் SOC சேனலில்" அமைக்கவும் . இதன் பொருள் நீங்கள் "பிராட்காம் எஸ்ஓசி சேனல்" எண்ணால் ஊசிகளைக் குறிப்பிடுகிறீர்கள், இவை "ஜிபிஐஓ" க்குப் பின் எண்கள் (எ.கா. GPIO01, GPIO02… க்கு). இவை வாரிய எண்கள் அல்ல.
GPIO.setmode (GPIO.BCM)
அடுத்து அதை குழாய் முகவரியாக அமைப்போம். Arduino பெறுநருடன் தொடர்புகொள்வதற்கு இந்த முகவரி முக்கியமானது. முகவரி ஹெக்ஸ் குறியீட்டில் இருக்கும்.
குழாய்கள் =,]
GPIO08 ஐ CE ஆகவும், GPIO25 ஐ CSN ஊசிகளாகவும் பயன்படுத்தி வானொலியைத் தொடங்குங்கள்.
radio.begin (0, 25)
பேலோட் அளவை 32 பிட், சேனல் முகவரி 76, தரவு வீதம் 1 எம்.பி.பி.எஸ் மற்றும் சக்தி நிலைகளை குறைந்தபட்சமாக அமைக்கவும்.
radio.setPayloadSize (32) radio.setChannel (0x76) radio.setDataRate (NRF24.BR_1MBPS) radio.setPALevel (NRF24.PA_MIN)
தரவை எழுதத் தொடங்க குழாய்களைத் திறந்து nRF24l01 இன் அடிப்படை விவரங்களை அச்சிடுங்கள்.
radio.openWritingPipe (குழாய்கள்) radio.printDetails ()
சரம் வடிவத்தில் ஒரு செய்தியைத் தயாரிக்கவும். இந்த செய்தி Arduino UNO க்கு அனுப்பப்படும்.
sendMessage = list ("Hi..Arduino UNO") லென் (sendMessage) <32: sendMessage.append (0)
வானொலியில் எழுதத் தொடங்கவும், வானொலி கிடைக்கும் வரை முழுமையான சரத்தை எழுதவும். அதனுடன், நேரத்தைக் குறிக்கவும், செய்தி வழங்கலின் பிழைத்திருத்த அறிக்கையை அச்சிடவும்.
உண்மை என்றாலும்: start = time.time () radio.write (sendMessage) அச்சு ("செய்தியை அனுப்பியது: {}". வடிவம் (sendMessage)) radio.startListening () ஐ அனுப்பு
சரம் முடிந்ததும், குழாய் மூடப்பட்டதும், நேரம் முடிந்த பிழைத்திருத்த செய்தியை அச்சிடுக.
போது radio.available இல்லை (0): time.sleep (1/100) time.time () என்றால் - தொடக்கத்தில்> 2: அச்சு வானொலி துண்டிக்கப்பட்ட அல்லது இனி செயல்படும் இல்லை என்றால் ("நேரம் முடிந்து விட்டது.") # அச்சு பிழை செய்தி உடைக்க
மற்றொரு செய்தியை அனுப்ப வானொலியைக் கேட்பதை நிறுத்தி, தகவல்தொடர்புகளை மூடிவிட்டு 3 விநாடிகளுக்குப் பிறகு தகவல்தொடர்புகளை மறுதொடக்கம் செய்யுங்கள்.
radio.stopListening () # ரேடியோ நேரத்தை மூடு. தூக்கம் (3) # 3 வினாடிகள் தாமதத்தைக் கொடுக்கும்
ராஸ்பெர்ரி திட்டம் பைத்தானின் அடிப்படைகளை நீங்கள் அறிந்திருந்தால் புரிந்து கொள்வது எளிது. முழுமையான பைதான் நிரல் டுடோரியலின் முடிவில் கொடுக்கப்பட்டுள்ளது.
ராஸ்பெர்ரி பைவில் பைதான் திட்டத்தை செயல்படுத்துகிறது:
பின்வரும் படிகளைப் பின்பற்றிய பின் நிரலை இயக்குவது மிகவும் எளிதானது:
- பைதான் நிரல் மற்றும் நூலகக் கோப்புகளை ஒரே கோப்புறையில் சேமிக்கவும்.

- அனுப்புநருக்கான எனது நிரல் கோப்பு பெயர் nrfsend.py மற்றும் ஒவ்வொரு கோப்புகளும் ஒரே கோப்புறையில் உள்ளன

- ராஸ்பெர்ரி பை கட்டளை முனையத்திற்குச் செல்லவும். “Cd” கட்டளையைப் பயன்படுத்தி பைதான் நிரல் கோப்பைக் கண்டறியவும்.

- பின்னர் கோப்புறையைத் திறந்து “ sudo python3 your_program.py ” கட்டளையை எழுதி Enter ஐ அழுத்தவும் . நீங்கள் nRf24 இன் அடிப்படை விவரங்களைக் காண முடியும், மேலும் ஒவ்வொரு 3 விநாடிகளுக்கும் பிறகு வானொலி செய்திகளை அனுப்பத் தொடங்கும். அனுப்பிய அனைத்து எழுத்துகளுடன் அனுப்பப்பட்டதும் செய்தி பிழைத்திருத்தம் காண்பிக்கப்படும்.

இப்போது Arduino UNO இல் பெறுநரின் அதே நிரலைப் பார்ப்போம்.
NRF24l01 ஐப் பயன்படுத்தி செய்தியைப் பெற Arduino UNO ஐ நிரலாக்க
Arduino UNO ஐ நிரல் செய்வது ராஸ்பெர்ரி பை நிரலாக்கத்திற்கு ஒத்ததாகும். நாங்கள் ஒத்த முறைகளைப் பின்பற்றுவோம், ஆனால் வெவ்வேறு நிரலாக்க மொழி மற்றும் படிகளுடன். படிகளில் nRF24l01 இன் வாசிப்பு பகுதி இருக்கும். Arduino க்கான nRF24l01 க்கான நூலகத்தை கிதுப் பக்கத்திலிருந்து பதிவிறக்கம் செய்யலாம். தேவையான நூலகங்களைச் சேர்த்துத் தொடங்குங்கள். I2C கேடயத்தைப் பயன்படுத்தி நாங்கள் 16x2 LCD ஐப் பயன்படுத்துகிறோம், எனவே Wire.h நூலகத்தையும் சேர்த்துக் கொள்ளுங்கள் , மேலும் nRF24l01 SPI உடன் இணைக்கப்பட்டுள்ளது, எனவே SPI நூலகத்தையும் சேர்க்கவும்.
#சேர்க்கிறது
RF24 மற்றும் LCD செயல்பாடுகளை அணுக RF24 மற்றும் LCD நூலகத்தைச் சேர்க்கவும்.
#சேர்க்கிறது
I2C க்கான எல்சிடி முகவரி 27 மற்றும் இது 16x2 எல்சிடி எனவே இதை செயல்பாட்டில் எழுதவும்.
லிக்விட் கிரிஸ்டல்_ஐ 2 சி எல்சிடி (0x27, 16, 2);
RF24 நிலையான SPI ஊசிகளுடன் CE உடன் முள் 9 மற்றும் CSN உடன் முள் 10 உடன் இணைக்கப்பட்டுள்ளது.
ஆர்.எஃப் 24 ரேடியோ (9, 10);
ரேடியோவைத் தொடங்கவும், சக்தி மட்டத்தை அமைக்கவும் மற்றும் சேனலை 76 ஆக அமைக்கவும். மேலும் குழாய் முகவரியை ராஸ்பெர்ரி பை போலவே அமைத்து படிக்க பைப்பைத் திறக்கவும்.
radio.begin (); radio.setPALevel (RF24_PA_MAX); radio.setChannel (0x76); const uint64_t குழாய் = 0xE0E0F1F1E0LL; radio.openReadingPipe (1, குழாய்);
I2C தகவல்தொடர்புகளைத் தொடங்கி எல்சிடி காட்சியைத் தொடங்கவும்.
வயர்.பெஜின் (); lcd.begin (); lcd.home (); lcd.print ("பெறத் தயார்");
உள்வரும் செய்திகளுக்கு வானொலியைக் கேட்கத் தொடங்கி, செய்தியின் நீளத்தை 32 பைட்டுகளாக அமைக்கவும்.
radio.startListening (); char receivedMessage = {0}
ரேடியோ இணைக்கப்பட்டிருந்தால், செய்தியைப் படிக்க ஆரம்பித்து சேமிக்கவும். சீரியல் மானிட்டரில் செய்தியை அச்சிட்டு, அடுத்த செய்தி வரும் வரை காட்சிக்கு அச்சிடவும். கேட்க வானொலியை நிறுத்தி, சில இடைவெளிக்குப் பிறகு மீண்டும் முயற்சிக்கவும். இங்கே இது 10 மைக்ரோ விநாடிகள்.
if (radio.available ()) { radio.read (receivedMessage, sizeof (receivedMessage)); Serial.println (receivedMessage); Serial.println ("வானொலியை அணைக்கிறது."); radio.stopListening (); சரம் stringMessage (receivedMessage); lcd.clear (); தாமதம் (1000); lcd.print (stringMessage); }
Arduino UNO க்கு இறுதியில் கொடுக்கப்பட்ட முழுமையான குறியீட்டைப் பதிவேற்றி, செய்தி வரும் வரை காத்திருக்கவும்.

இது ராஸ்பெர்ரி பை & nRf24l01 ஐப் பயன்படுத்தி ஒரு செய்தியை அனுப்புவதற்கும் Arduino UNO & nRF24l01 ஐப் பயன்படுத்தி பெறுவதற்கும் முழுமையான டுடோரியலை முடிக்கிறது. செய்தி 16x2 எல்சிடிக்கு அச்சிடப்படும். Arduino UNO மற்றும் ராஸ்பெர்ரி பை இரண்டிலும் குழாய் முகவரிகள் மிக முக்கியமானவை. இந்த திட்டத்தைச் செய்யும்போது உங்களுக்கு ஏதேனும் சிரமம் ஏற்பட்டால், தயவுசெய்து கீழே கருத்துத் தெரிவிக்கவும் அல்லது விரிவான விவாதத்திற்கு மன்றத்தை அணுகவும்.
கீழேயுள்ள ஆர்ப்பாட்ட வீடியோவையும் சரிபார்க்கவும்.
