- NRF24L01 RF தொகுதிக்கூறு பற்றி அறிந்து கொள்வது
- Arduino உடன் nRF24L01 ஐ இடைமுகப்படுத்துகிறது
- பெறுநரின் பக்கம்: Arduino Uno nRF24L01 தொகுதி இணைப்புகள்
- டிரான்ஸ்மிட்டர் பக்க: Arduino நானோ nRF24L01 தொகுதி இணைப்புகள்
- NRF24L01 + வயர்லெஸ் டிரான்ஸ்ஸீவர் தொகுதிடன் வேலை செய்கிறது
- Arduino க்கான nRF24L01 ஐ நிரலாக்குகிறது
- வயர்லெஸ் முறையில் nRF24L01 ஐப் பயன்படுத்தி சர்வோ மோட்டாரைக் கட்டுப்படுத்துதல்
இன்டர்நெட் ஆஃப் விஷயங்கள் (ஐஓடி), இன்டஸ்ட்ரி 4.0, மெஷின் டு மெஷின் கம்யூனிகேஷன் போன்றவை வயர்லெஸ் தகவல்தொடர்பு தேவை அதிகரித்து வருகிறது, மேலும் இயந்திரங்கள் / சாதனங்கள் மேகக்கட்டத்தில் ஒருவருக்கொருவர் பேச வேண்டும். வடிவமைப்பாளர்கள் புளூடூத் லோ எனர்ஜி (பி.எல்.இ 4.0), ஜிக்பீ, ஈ.எஸ்.பி 43 வைஃபை தொகுதிகள், 433 மெகா ஹெர்ட்ஸ் ஆர்.எஃப் தொகுதிகள், லோரா, என்.ஆர்.எஃப் போன்ற பல வயர்லெஸ் தகவல்தொடர்பு அமைப்புகளைப் பயன்படுத்துகின்றனர், மேலும் நடுத்தரத்தின் தேர்வு அது பயன்படுத்தப்படும் பயன்பாட்டின் வகையைப் பொறுத்தது.
எல்லாவற்றிலும், உள்ளூர் நெட்வொர்க் தகவல்தொடர்புக்கான ஒரு பிரபலமான வயர்லெஸ் ஊடகம் nRF24L01 ஆகும். இந்த தொகுதிகள் 2.4GHz (ISM பேண்ட்) இல் 250Kbps முதல் 2Mbps வரை பாட் வீதத்துடன் இயங்குகின்றன, இது பல நாடுகளில் சட்டபூர்வமானது மற்றும் தொழில்துறை மற்றும் மருத்துவ பயன்பாடுகளில் பயன்படுத்தப்படலாம். சரியான ஆண்டெனாக்கள் மூலம் இந்த தொகுதிகள் அவற்றுக்கு இடையே 100 மீட்டர் தூரம் வரை கடத்தலாம் மற்றும் பெறலாம் என்றும் கூறப்படுகிறது. சுவாரஸ்யமான உரிமை !!? எனவே, இந்த டுடோரியலில் இந்த nRF24l01 தொகுதிகள் பற்றியும், Arduino போன்ற மைக்ரோகண்ட்ரோலர் இயங்குதளத்துடன் அதை எவ்வாறு இணைப்பது என்பதையும் பற்றி மேலும் அறிந்து கொள்வோம். இந்த தொகுதியைப் பயன்படுத்தும் போது பொதுவாக எதிர்கொள்ளும் சிக்கல்களுக்கான சில தீர்வுகளையும் நாங்கள் பகிர்ந்து கொள்வோம்.
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 தொகுதியை டிரான்ஸ்மிட்டராகவும் மற்றொன்று ரிசீவராகவும் பயன்படுத்தினோம், ஆனால் ஒவ்வொரு தொகுதியையும் தனித்தனியாக தரவை அனுப்பவும் பெறவும் திட்டமிடலாம்.
NRF24L01 தொகுதியை Arduino உடன் இணைப்பதற்கான சுற்று வரைபடம் கீழே காட்டப்பட்டுள்ளது. மாறுபாட்டிற்காக, நான் UNO ஐ ரிசீவர் பக்கத்திற்கும் நானோ டிரான்ஸ்மிட்டர் பக்கத்திற்கும் பயன்படுத்தினேன். ஆனால் இணைப்பிற்கான தர்க்கம் மினி, மெகா போன்ற பிற ஆர்டுயினோ போர்டுகளுக்கும் அப்படியே உள்ளது.
பெறுநரின் பக்கம்: Arduino Uno nRF24L01 தொகுதி இணைப்புகள்


முன்பு கூறியது போல், nRF24L01 SPI நெறிமுறையின் உதவியுடன் தொடர்பு கொள்கிறது. Arduino நானோ மற்றும் UNO இல் 11, 12 மற்றும் 13 ஊசிகளை SPI தகவல்தொடர்புக்குப் பயன்படுத்துகின்றனர். எனவே நாங்கள் MOSI, MISO மற்றும் SCK ஊசிகளை முறையே nRF இலிருந்து 11, 12 மற்றும் 13 ஊசிகளுடன் இணைக்கிறோம். ஊசிகளான CE மற்றும் CS ஆகியவை பயனர் கட்டமைக்கக்கூடியவை, நான் இங்கே முள் 7 மற்றும் 8 ஐப் பயன்படுத்தினேன், ஆனால் நிரலை மாற்றுவதன் மூலம் நீங்கள் எந்த முள் பயன்படுத்தலாம். என்.ஆர்.எஃப் தொகுதி Arduino இல் 3.3V முள் மூலம் இயக்கப்படுகிறது, இது பெரும்பாலான சந்தர்ப்பங்களில் வேலை செய்யும். இல்லையென்றால், ஒரு தனி மின்சாரம் முயற்சிக்க முடியும். என்.ஆர்.எஃப் இடைமுகத்தைத் தவிர, நான் ஒரு சர்வோ மோட்டாரை பின் 7 உடன் இணைத்து, ஆர்டுயினோவில் 5 வி முள் வழியாக இயக்கினேன். இதேபோல் டிரான்ஸ்மிட்டர் சுற்று கீழே காட்டப்பட்டுள்ளது.
டிரான்ஸ்மிட்டர் பக்க: Arduino நானோ nRF24L01 தொகுதி இணைப்புகள்


டிரான்ஸ்மிட்டருக்கான இணைப்புகளும் ஒன்றே, கூடுதலாக, ஆர்டுயினோவின் 5 வி விளம்பர கிரவுண்ட் முள் முழுவதும் இணைக்கப்பட்ட ஒரு பொட்டென்டோமீட்டரைப் பயன்படுத்தினேன். 0-5V இலிருந்து மாறுபடும் வெளியீட்டு அனலாக் மின்னழுத்தம் நானோவின் A7 முள் உடன் இணைக்கப்பட்டுள்ளது. இரண்டு போர்டுகளும் யூ.எஸ்.பி போர்ட் மூலம் இயக்கப்படுகின்றன.
NRF24L01 + வயர்லெஸ் டிரான்ஸ்ஸீவர் தொகுதிடன் வேலை செய்கிறது
எவ்வாறாயினும், எங்கள் nRF24L01 சத்தத்திலிருந்து விடுபடுவதற்கு நாங்கள் பின்வரும் விஷயங்களைக் கருத்தில் கொள்ள விரும்பலாம். நான் இந்த nRF24L01 + இல் நீண்ட காலமாக பணியாற்றி வருகிறேன், மேலும் பின்வரும் புள்ளிகளைக் கற்றுக்கொண்டேன், இது ஒரு சுவரில் அடிபடுவதைத் தடுக்க உதவும். தொகுதிகள் சாதாரண வழியில் செயல்படாதபோது நீங்கள் இதை முயற்சி செய்யலாம்.
1. சந்தையில் உள்ள பெரும்பாலான nRF24L01 + தொகுதிகள் போலியானவை. ஈபே மற்றும் அமேசானில் நாம் காணக்கூடிய மலிவானவை மிக மோசமானவை (கவலைப்பட வேண்டாம், சில மாற்றங்களுடன் அவற்றைச் செயல்படுத்தலாம்)
2. முக்கிய சிக்கல் மின்சாரம், உங்கள் குறியீடு அல்ல. ஆன்லைனில் பெரும்பாலான குறியீடுகள் சரியாக வேலை செய்யும், நான் தனிப்பட்ட முறையில் சோதித்த ஒரு பணி குறியீடு என்னிடம் உள்ளது, உங்களுக்கு அவை தேவைப்பட்டால் எனக்குத் தெரியப்படுத்துங்கள்.
3. கவனம் செலுத்துங்கள், ஏனெனில் NRF24L01 + என அச்சிடப்பட்ட தொகுதிகள் உண்மையில் Si24Ri (ஆம் ஒரு சீன தயாரிப்பு).
4. குளோன் மற்றும் போலி தொகுதிகள் அதிக சக்தியை நுகரும், எனவே nRF24L01 + தரவுத்தாள் அடிப்படையில் உங்கள் மின்சுற்றை உருவாக்க வேண்டாம், ஏனெனில் Si24Ri 250mA பற்றி அதிக தற்போதைய நுகர்வு கொண்டிருக்கும்.
5. மின்னழுத்த சிற்றலைகள் மற்றும் தற்போதைய எழுச்சிகள் குறித்து ஜாக்கிரதை, இந்த தொகுதிகள் மிகவும் உணர்திறன் கொண்டவை மற்றும் எளிதில் எரியக்கூடும். (;-(இதுவரை 2 தொகுதிகள் வறுத்தெடுக்கப்பட்டது)
6. தொகுதியின் Vcc மற்றும் Gnd முழுவதும் ஒரு ஜோடி மின்தேக்கிகளை (10uF மற்றும் 0.1uF) சேர்ப்பது உங்கள் விநியோகத்தை தூய்மையாக்க உதவுகிறது, மேலும் இது பெரும்பாலான தொகுதிகளுக்கு வேலை செய்கிறது.
கருத்துப் பிரிவில் உங்களுக்கு சிக்கல்கள் இருந்தால் அல்லது இதைப் படிக்கவும் அல்லது எங்கள் மன்றத்தில் உங்கள் கேள்விகளைக் கேட்கவும்.
NRF24L01 ஐப் பயன்படுத்தி அரட்டை அறையை உருவாக்குவது குறித்த எங்கள் பரவலான திட்டத்தையும் சரிபார்க்கவும்.
Arduino க்கான nRF24L01 ஐ நிரலாக்குகிறது
கிட்ஹப்பில் வெறி பிடித்த பக் உருவாக்கிய நூலகத்தின் காரணமாக, இந்த தொகுதிக்கூறுகளை அர்டுயினோவுடன் பயன்படுத்துவது மிகவும் எளிதானது. ZIP கோப்புறையாக நூலகத்தைப் பதிவிறக்க இணைப்பைக் கிளிக் செய்து, ஸ்கெட்ச் -> நூலகத்தைச் சேர்க்கவும் ->.ZIP நூலக விருப்பத்தைச் சேர்ப்பதன் மூலம் அதை உங்கள் Arduino IDE இல் சேர்க்கவும் . நூலகத்தைச் சேர்த்த பிறகு, திட்டத்திற்கான நிரலாக்கத்தைத் தொடங்கலாம். நாம் இரண்டு நிரல்களை எழுத வேண்டும், ஒன்று டிரான்ஸ்மிட்டர் பக்கத்திற்கும் மற்றொன்று ரிசீவர் பக்கத்திற்கும். இருப்பினும் நான் முன்பு கூறியது போல் ஒவ்வொரு தொகுதியும் ஒரு டிரான்ஸ்மிட்டர் மற்றும் ரிசீவர் என வேலை செய்ய முடியும். இரண்டு நிரல்களும் இந்த பக்கத்தின் இறுதியில் கொடுக்கப்பட்டுள்ளன, டிரான்ஸ்மிட்டர் குறியீட்டில் ரிசீவர் விருப்பம் கருத்து தெரிவிக்கப்படும் மற்றும் ரிசீவர் புரோகிராமில் டிரான்ஸ்மிட்டர் குறியீடு கருத்து தெரிவிக்கப்படும். தொகுதி இரண்டாக வேலை செய்ய வேண்டிய ஒரு திட்டத்தை நீங்கள் முயற்சிக்கிறீர்கள் என்றால் நீங்கள் அதைப் பயன்படுத்தலாம். திட்டத்தின் வேலை கீழே விளக்கப்பட்டுள்ளது.
எல்லா நிரல்களையும் போலவே தலைப்பு கோப்புகளையும் சேர்ப்பதன் மூலம் தொடங்குவோம். என்ஆர்எஃப் எஸ்பிஐ நெறிமுறையைப் பயன்படுத்துவதால், எஸ்பிஐ தலைப்பு மற்றும் நாங்கள் பதிவிறக்கிய நூலகத்தையும் சேர்த்துள்ளோம். சர்வோ மோட்டாரைக் கட்டுப்படுத்த சர்வோ நூலகம் பயன்படுத்தப்படுகிறது.
#சேர்க்கிறது
அடுத்த வரி CE மற்றும் CS ஊசிகளைப் பற்றி நூலகத்திற்கு அறிவுறுத்தும் முக்கியமான வரியாகும். எங்கள் சுற்று வரைபடத்தில், CE ஐ முள் 7 ஆகவும், CS ஐ பின் 8 ஆகவும் இணைத்துள்ளோம்
RF24 myRadio (7, 8);
RF நூலகத்துடன் தொடர்புடைய அனைத்து மாறிகள் ஒரு கலப்பு மாறி கட்டமைப்பாக அறிவிக்கப்பட வேண்டும். இந்த நிரலில், RF தொகுதிக்கூறிலிருந்து தரவை அனுப்பவும் பெறவும் மாறி msg பயன்படுத்தப்படுகிறது.
struct தொகுப்பு { int msg; }; typedef struct தொகுப்பு தொகுப்பு; தொகுப்பு தரவு;
ஒவ்வொரு RF தொகுதிக்கும் ஒரு தனிப்பட்ட முகவரி உள்ளது, அதைப் பயன்படுத்தி அந்தந்த சாதனத்திற்கு தரவை அனுப்ப முடியும். எங்களிடம் ஒரே ஒரு ஜோடி மட்டுமே இருப்பதால், டிரான்ஸ்மிட்டர் மற்றும் ரிசீவர் இரண்டிலும் முகவரியை பூஜ்ஜியமாக அமைத்துள்ளோம், ஆனால் உங்களிடம் பல தொகுதிகள் இருந்தால் ஐடியை எந்த தனித்துவமான 6 இலக்க சரத்திற்கும் அமைக்கலாம்.
பைட் முகவரிகள் = {"0"};
வெற்றிட அமைவு செயல்பாட்டின் உள்ளே நாம் RF தொகுதியைத் துவக்கி 115 பேண்டுடன் வேலை செய்ய அமைக்கிறோம், இது சத்தத்திலிருந்து விடுபடுகிறது, மேலும் குறைந்தபட்சம் 250Kbps வேகத்துடன் குறைந்தபட்ச மின் நுகர்வு பயன்முறையில் வேலை செய்ய தொகுதி அமைக்கிறது.
void setup () { Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); WIFI க்கு மேலே உள்ள 115 இசைக்குழு myRadio.setPALevel (RF24_PA_MIN) ஐ சமிக்ஞை செய்கிறது; // MIN சக்தி குறைந்த ஆத்திரம் myRadio.setDataRate (RF24_250KBPS); // குறைந்தபட்ச வேகம் myservo.attach (6); சீரியல்.பிரண்ட் ("அமைவு துவக்கப்பட்டது"); தாமதம் (500); }
ரைட் டேட்டா () செயல்பாடு அதற்கு அனுப்பப்பட்ட தரவை எழுதுகிறது. முன்னர் கூறியது போல, தரவைப் படிக்க அல்லது எழுதக்கூடிய 6 வெவ்வேறு குழாய்களை என்.ஆர்.எஃப் கொண்டுள்ளது, இங்கே 0xF0F0F0F066 ஐ தரவை எழுத முகவரியாகப் பயன்படுத்தினோம். ரிசீவர் பக்கத்தில், எழுதப்பட்ட தரவைப் பெற ReadData () செயல்பாட்டில்அதே முகவரியைப் பயன்படுத்த வேண்டும்.
ரைட் டேட்டா () { myRadio.stopListening (); // பெறுவதை நிறுத்தி, myRadio.openWritingPipe (0xF0F0F0F066); // இந்த 40-பிட் முகவரியில் தரவை அனுப்புகிறது myRadio.write (& தரவு, அளவு (தரவு)); தாமதம் (300); }
வெற்றிட எழுத்துமுறை () செயல்பாடு தரவைப் படித்து ஒரு மாறியில் வைக்கிறது. தரவைப் படிக்க அல்லது எழுதக்கூடிய 6 வெவ்வேறு குழாய்களில் மீண்டும் தரவைப் படிக்க 0xF0F0F0F0AA ஐ முகவரியாகப் பயன்படுத்தினோம். இதன் பொருள் மற்ற தொகுதியின் டிரான்ஸ்மிட்டர் இந்த முகவரியில் ஏதாவது எழுதியுள்ளது, எனவே நாங்கள் அதை அதிலிருந்து படிக்கிறோம்.
void ReadData () { myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // எந்த குழாய் படிக்க வேண்டும், 40 பிட் முகவரி myRadio.startListening (); // பரிமாற்றத்தை நிறுத்தி (myRadio.available ()) { போது (myRadio.available ()) { myRadio.read (& data, sizeof (data)); } Serial.println (data.text); } }
இந்த வரிகளைத் தவிர, நிரலில் உள்ள மற்ற வரிகள் POT ஐப் படிப்பதற்கும் வரைபட செயல்பாட்டைப் பயன்படுத்தி 0 முதல் 180 ஆக மாற்றுவதற்கும் பயன்படுத்தப்படுகின்றன, மேலும் அதை ரிசீவர் தொகுதிக்கு அனுப்புகிறோம், அங்கு நாங்கள் சேவையை கட்டுப்படுத்துகிறோம். எங்கள் சர்வோ இன்டர்ஃபேசிங் டுடோரியலில் நாங்கள் ஏற்கனவே அறிந்ததிலிருந்து நான் அவற்றை வரி மூலம் விளக்கவில்லை.
வயர்லெஸ் முறையில் nRF24L01 ஐப் பயன்படுத்தி சர்வோ மோட்டாரைக் கட்டுப்படுத்துதல்

நிரலுடன் நீங்கள் தயாரானதும், அந்தந்த ஆர்டுயினோ போர்டுகளில் டிரான்ஸ்மிட்டர் மற்றும் ரிசீவர் குறியீட்டை (கீழே கொடுக்கப்பட்டுள்ளது) பதிவேற்றி, யூ.எஸ்.பி போர்ட்டுடன் அவற்றை மேம்படுத்தவும். எந்த மதிப்பு கடத்தப்படுகிறது மற்றும் என்ன பெறப்படுகிறது என்பதை சரிபார்க்க இரு பலகைகளின் தொடர் மானிட்டரையும் நீங்கள் தொடங்கலாம். நீங்கள் டிரான்ஸ்மிட்டர் பக்கத்தில் POT குமிழியைத் திருப்பும்போது எல்லாம் எதிர்பார்த்தபடி செயல்படுகிறதென்றால், மறுபுறத்தில் உள்ள சேவையும் அதற்கேற்ப திரும்ப வேண்டும்.
திட்டத்தின் முழுமையான பணி கீழே உள்ள வீடியோவில் நிரூபிக்கப்பட்டுள்ளது. இந்த தொகுதிகள் முதல் முயற்சியிலேயே இயங்காமல் இருப்பது மிகவும் இயல்பானது, நீங்கள் ஏதேனும் சிக்கலைச் சந்தித்திருந்தால், குறியீட்டையும் வயரிங்கையும் சரிபார்த்து, மேலே கொடுக்கப்பட்ட சிக்கல் படப்பிடிப்பு வழிகாட்டுதல்களை முயற்சிக்கவும். எதுவும் செயல்படவில்லை என்றால் உங்கள் பிரச்சினையை மன்றங்களில் அல்லது கருத்துப் பிரிவில் இடுகையிடவும், அவற்றைத் தீர்க்க முயற்சிப்பேன்.
