- கூறுகள் தேவை
- 433 மெகா ஹெர்ட்ஸ் ஆர்.எஃப் டிரான்ஸ்மிட்டர் மற்றும் ரிசீவர் தொகுதி)
- STM32F103C8 உடன் RF டிரான்ஸ்மிட்டரின் சுற்று வரைபடம்
- Arduino Uno உடன் RF பெறுநரின் சுற்று வரைபடம்
- வயர்லெஸ் ஆர்.எஃப் டிரான்ஸ்மிஷனுக்கான எஸ்.டி.எம் 32 எஃப் 103 சி 8 புரோகிராமிங்
- புரோகிராமிங் Arduino UNO ஐ RF பெறுநராக
- எஸ்.டி.எம் 32 அடிப்படையிலான ஆர்.எஃப் டிரான்ஸ்மிட்டர் மற்றும் ரிசீவரை சோதிக்கிறது
உட்பொதிக்கப்பட்ட எலக்ட்ரானிக்ஸில் வயர்லெஸ் திட்டங்களை உருவாக்குவது மிகவும் முக்கியமானது மற்றும் உதவியாக மாறும், ஏனெனில் எந்தவிதமான தடுமாறிய கம்பிகளும் இல்லை, இது சாதனத்தை மிகவும் எளிது மற்றும் சிறியதாக மாற்றுகிறது. புளூடூத், வைஃபை, 433 மெகா ஹெர்ட்ஸ் ஆர்.எஃப் (ரேடியோ அதிர்வெண்) போன்ற பல்வேறு வயர்லெஸ் தொழில்நுட்பங்கள் உள்ளன. ஒவ்வொரு தொழில்நுட்பத்திற்கும் அதன் சொந்த நன்மைகள் மற்றும் செலவு, தூரம் அல்லது வரம்பு பரிமாற்றம், வேகம் அல்லது செயல்திறன் போன்ற தீமைகள் உள்ளன. இன்று நாம் எஸ்.டி.எம் 32 உடன் ஆர்.எஃப். வயர்லெஸ் முறையில் தரவை அனுப்ப மற்றும் பெற. நீங்கள் STM32 மைக்ரோகண்ட்ரோலருக்கு புதியவர் என்றால், Arduino IDE ஐப் பயன்படுத்தி STM32 உடன் ஒளிரும் எல்.ஈ.டி உடன் தொடங்கவும், மற்ற அனைத்து STM32 திட்டங்களையும் இங்கே சரிபார்க்கவும்.
இது தவிர, சில வயர்லெஸ் கட்டுப்படுத்தப்பட்ட திட்டங்களை உருவாக்க மற்ற மைக்ரோகண்ட்ரோலர்களுடன் RF 433Mhz வயர்லெஸ் தொகுதியையும் பயன்படுத்தியுள்ளோம், அவை:
- RF கட்டுப்படுத்தப்பட்ட வீட்டு உபகரணங்கள்
- ராஸ்பெர்ரி பை பயன்படுத்தி RF ரிமோட் கண்ட்ரோல்ட் எல்.ஈ.டி.
- RF கட்டுப்படுத்தப்பட்ட ரோபோ
- Arduino உடன் RF தொகுதி இடைமுகப்படுத்துதல்
- RF தொகுதிக்கூறு பயன்படுத்தி PIC முதல் PIC தொடர்பு வரை
இங்கே நாம் 433MHz RF வயர்லெஸ் தொகுதியை STM32F103C8 மைக்ரோகண்ட்ரோலருடன் இடைமுகப்படுத்துவோம். திட்டம் இரண்டு பகுதிகளாக பிரிக்கப்பட்டுள்ளது. டிரான்ஸ்மிட்டர் STM32 இடைமுகக்கப்படலாம் வேண்டும் மற்றும் ரிசீவர் Arduino யூனோ இடைமுகக்கப்படலாம் வேண்டும். இருக்கும் வெவ்வேறு சுற்று வரைபடத்தை உருவப்படங்களும் இருவரும் கடத்தும் அதே பகுதியாக பெற்றுக்கொள்வது என்பது வழக்கமாகிவிட்டது.
இந்த டுடோரியலில், ஆர்.எஃப் டிரான்ஸ்மிட்டர் ரிசீவர் பக்கத்திற்கு இரண்டு மதிப்புகளை அனுப்புகிறது: மீயொலி சென்சார் மற்றும் பொட்டென்டோமீட்டர் ஏடிசி மதிப்பு (0 முதல் 4096) ஆகியவற்றைப் பயன்படுத்தி அளவிடப்படும் தூரம் (0 முதல் 100 வரை) எண்ணாக மாற்றப்படுகிறது. ரேடியோ அலைவரிசை ரிசீவர் Arduino என்ற வயர்லெஸ் 16x2 எல்சிடி காட்சியில் மதிப்புகள் மற்றும் அச்சிட்டு இருவரும் அந்த தூரம் மற்றும் எண் மதிப்புகள் பெறுகிறது.
கூறுகள் தேவை
- STM32F103C8 மைக்ரோகண்ட்ரோலர்
- Arduino UNO
- 433 மெகா ஹெர்ட்ஸ் ஆர்.எஃப் டிரான்ஸ்மிட்டர் & ரிசீவர்
- மீயொலி சென்சார் (HC-SR04)
- 16x2 எல்சிடி காட்சி
- 10 கே பொட்டென்டோமீட்டர்
- ப்ரெட்போர்டு
- கம்பிகளை இணைக்கிறது
433 மெகா ஹெர்ட்ஸ் ஆர்.எஃப் டிரான்ஸ்மிட்டர் மற்றும் ரிசீவர் தொகுதி)

RF டிரான்ஸ்மிட்டர் பின்அவுட்:
|
433 மெகா ஹெர்ட்ஸ் ஆர்.எஃப் டிரான்ஸ்மிட்டர் |
முள் விளக்கம் |
|
ANT |
ஆண்டெனாவை இணைக்க |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
வி.டி.டி. |
3.3 முதல் 5 வி |
|
தகவல்கள் |
ரிசீவருக்கு அனுப்ப வேண்டிய தரவு இங்கே கொடுக்கப்பட்டுள்ளது |
RF ரிசீவர் பின்அவுட்:
|
433 மெகா ஹெர்ட்ஸ் ஆர்எஃப் ரிசீவர் |
பயன்படுத்தவும் |
|
ANT |
ஆண்டெனாவை இணைக்க |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
வி.டி.டி. |
3.3 முதல் 5 வி |
|
தகவல்கள் |
டிரான்ஸ்மிட்டரிடமிருந்து பெற வேண்டிய தரவு |
|
CE / DO |
இது ஒரு தரவு முள் |
433 மெகா ஹெர்ட்ஸ் தொகுதி விவரக்குறிப்புகள்:
- ரிசீவர் இயக்க மின்னழுத்தம்: 3 வி முதல் 5 வி வரை
- டிரான்ஸ்மிட்டர் இயக்க மின்னழுத்தம்: 3 வி முதல் 5 வி வரை
- இயக்க அதிர்வெண்: 433 மெகா ஹெர்ட்ஸ்
- பரிமாற்ற தூரம்: 3 மீட்டர் (ஆண்டெனா இல்லாமல்) முதல் 100 மீட்டர் (அதிகபட்சம்)
- மாடுலேட்டிங் நுட்பம்: ASK (அலைவீச்சு மாற்ற விசை)
- தரவு பரிமாற்ற வேகம்: 10Kbps
STM32F103C8 உடன் RF டிரான்ஸ்மிட்டரின் சுற்று வரைபடம்


RF டிரான்ஸ்மிட்டர் & STM32F103C8 க்கு இடையிலான சுற்று இணைப்புகள்:
|
STM32F103C8 |
RF டிரான்ஸ்மிட்டர் |
|
5 வி |
வி.டி.டி. |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
PA10 |
தகவல்கள் |
|
என்.சி. |
ANT |
மீயொலி சென்சார் மற்றும் STM32F103C8 இடையே சுற்று இணைப்புகள்:
|
STM32F103C8 |
மீயொலி சென்சார் (HC-SR04) |
|
5 வி |
வி.சி.சி. |
|
பிபி 1 |
தூண்டுதல் |
|
பிபி 0 |
எதிரொலி |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
ஒரு 10k potentiometer உள்ளீடு அனலாக் மதிப்பு (0 3.3V க்கு) STM32 இன் ஏடிசி முள் PA0 வழங்க STM32F103C8 இணைக்கப்பட்டுள்ளது.
Arduino Uno உடன் RF பெறுநரின் சுற்று வரைபடம்


RF பெறுநருக்கும் Arduino UNO க்கும் இடையிலான சுற்று இணைப்புகள்:
|
Arduino UNO |
RF பெறுநர் |
|
5 வி |
வி.டி.டி. |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
11 |
தகவல்கள் |
|
என்.சி. |
ANT |
16x2 LCD மற்றும் Arduino UNO க்கு இடையிலான சுற்று இணைப்புகள்:
|
எல்சிடி முள் பெயர் |
Arduino UNO முள் பெயர் |
|
மைதானம் (Gnd) |
மைதானம் (ஜி) |
|
வி.சி.சி. |
5 வி |
|
VEE |
மாறுபாட்டிற்கான பொட்டென்டோமீட்டர் மையத்திலிருந்து பின் |
|
பதிவு தேர்வு (ஆர்எஸ்) |
2 |
|
படிக்க / எழுது (RW) |
மைதானம் (ஜி) |
|
இயக்கு (EN) |
3 |
|
டேட்டா பிட் 4 (டிபி 4) |
4 |
|
தரவு பிட் 5 (டிபி 5) |
5 |
|
டேட்டா பிட் 6 (டிபி 6) |
6 |
|
தரவு பிட் 7 (டிபி 7) |
7 |
|
எல்.ஈ.டி நேர்மறை |
5 வி |
|
எல்.ஈ.டி எதிர்மறை |
மைதானம் (ஜி) |
குறியீட்டு முறை கீழே சுருக்கமாக விளக்கப்படும். ஸ்கெட்சின் இரண்டு பகுதிகள் இருக்கும், அங்கு முதல் பகுதி டிரான்ஸ்மிட்டர் பிரிவாகவும், மற்றொரு பகுதி ரிசீவர் பிரிவாகவும் இருக்கும். இந்த டுடோரியலின் முடிவில் அனைத்து ஸ்கெட்ச் கோப்புகள் மற்றும் வேலை செய்யும் வீடியோ வழங்கப்படும். Arduino Uno உடன் RF தொகுதிக்கு இடைமுகப்படுத்துவது பற்றி மேலும் அறிய, இணைப்பைப் பின்தொடரவும்.
வயர்லெஸ் ஆர்.எஃப் டிரான்ஸ்மிஷனுக்கான எஸ்.டி.எம் 32 எஃப் 103 சி 8 புரோகிராமிங்
STM32F103C8 ஐ Arduino IDE ஐப் பயன்படுத்தி திட்டமிடலாம். STM32F103C8 இல் குறியீட்டைப் பதிவேற்ற ஒரு FTDI புரோகிராமர் அல்லது ST- இணைப்பு தேவையில்லை. STM32 இன் USB போர்ட் வழியாக பிசியுடன் இணைக்கவும் மற்றும் ARDUINO IDE உடன் நிரலாக்கத்தைத் தொடங்கவும். இணைப்பைப் பின்தொடர்வதன் மூலம் உங்கள் STM32 ஐ Arduino IDE இல் புரோகிராமிங் செய்யலாம்.
டிரான்ஸ்மிட்டர் பிரிவில் 'செ.மீ' இல் உள்ள பொருளின் தூரம் மீயொலி சென்சார் மற்றும் பொட்டென்டோமீட்டரைப் பயன்படுத்தி (0 முதல் 100 வரை) அமைக்கப்பட்ட எண் மதிப்பு STM32 உடன் இடைமுகப்படுத்தப்பட்ட RF டிரான்ஸ்மிட்டர் வழியாக அனுப்பப்படுகிறது.
முதலில் ரேடியோஹெட் நூலகம் சேர்க்கப்பட்டுள்ளது, அதை இங்கிருந்து பதிவிறக்கம் செய்யலாம். இந்த நூலகம் தரவை அனுப்ப மற்றும் பெற ASK (Amplitude Shift Keying Technique) ஐப் பயன்படுத்துகிறது. இது நிரலாக்கத்தை மிகவும் எளிதாக்குகிறது. ஸ்கெட்ச்- > நூலகம்->.zip நூலகத்தைச் சேர்ப்பதன் மூலம் நீங்கள் நூலகத்தை ஸ்கெட்சில் சேர்க்கலாம்.
#சேர்க்கிறது
டிரான்ஸ்மிட்டர் பக்கத்தில் இந்த டுடோரியலைப் போலவே தூரத்தை அளவிட ஒரு மீயொலி சென்சார் பயன்படுத்தப்படுகிறது, எனவே தூண்டுதல் மற்றும் எதிரொலி ஊசிகள் வரையறுக்கப்படுகின்றன.
# டிரிபின் PB1 ஐ வரையறுக்கவும் # echoPin PB0 ஐ வரையறுக்கவும்
அடுத்து RH_ASK நூலகத்திற்கான பொருளின் பெயர் வேகம் (2000), RX பின் (PA9) மற்றும் TX பின் (PA10) போன்ற அளவுருக்களுடன் rf_driver ஆக அமைக்கப்பட்டுள்ளது.
RH_ASK rf_driver (2000, PA9, PA10);
அடுத்து இந்த நிரலில் தேவையான சரங்கள் மாறி அறிவிக்கப்படுகிறது.
சரம் டிரான்ஸ்மிட்_நம்பர்; சரம் டிரான்ஸ்மிட்_விளக்கம்; சரம் கடத்துகிறது;
வெற்றிட அமைப்பில் () அடுத்து, RH_ASK rf_driver க்கான பொருள் துவக்கப்படுகிறது.
rf_driver.init ();
அதன் பிறகு தூண்டுதல் முள் OUTPUT முள் மற்றும் PA0 (பொட்டென்டோமீட்டருடன் இணைக்கப்பட்டுள்ளது) மற்றும் எதிரொலி முள் INPUT முள் என அமைக்கப்பட்டுள்ளது. 9600 என்ற பாட் விகிதத்தில் தொடர் தொடர்பு தொடங்கப்படுகிறது.
சீரியல்.பெஜின் (9600); pinMode (PA0, INPUT); pinMode (echoPin, INPUT); pinMode (triPin, OUTPUT);
வெற்றிட சுழற்சியில் () அடுத்து, உள்ளீடாக இருக்கும் பொட்டென்டோமீட்டர் மதிப்பை அனலாக் மின்னழுத்தம் டிஜிட்டல் மதிப்பாக மாற்றப்படுகிறது (ஏடிசி மதிப்பு காணப்படுகிறது). STM32 இன் ADC 12-பிட் தெளிவுத்திறனைக் கொண்டுள்ளது. எனவே, டிஜிட்டல் மதிப்பு (0 முதல் 4096 வரை) மாறுபடும் (0 முதல் 100 வரை) மாறுபடும்.
int Analyinput = அனலாக் ரீட் (PA0); int pwmvalue = வரைபடம் (அனலாக்இன்புட், 0,4095,0,100);
அடுத்து 2 மைக்ரோ விநாடிகளின் தாமதத்துடன் தூண்டுதலை அதிகமாகவும் குறைவாகவும் அமைப்பதன் மூலம் மீயொலி சென்சார் பயன்படுத்தி தூரம் அளவிடப்படுகிறது.
டிஜிட்டல்ரைட் (ட்ரிக்பின், குறைந்த); delayMicroseconds (2); டிஜிட்டல்ரைட் (ட்ரிக்பின், உயர்); delayMicroseconds (10); டிஜிட்டல்ரைட் (ட்ரிக்பின், குறைந்த);
எதிரொலி முள் பிரதிபலித்த அலையை மீண்டும் உணர்கிறது, அதாவது தூண்டப்பட்ட அலையை மீண்டும் பிரதிபலிக்கும் நேரம் சூத்திரத்தைப் பயன்படுத்தி பொருளின் தூரத்தை கணக்கிடுவதில் பயன்படுத்தப்படுகிறது. இணைப்பைப் பின்தொடர்வதன் மூலம் மீயொலி சென்சார் தூரத்தை எவ்வாறு கணக்கிடுகிறது என்பதை மேலும் அறிக.
நீண்ட காலம் = துடிப்புஇன் (எக்கோபின், உயர்); மிதக்கும் தூரம் = காலம் * 0.034 / 2;
இப்போது அளவிடப்பட்ட தரவு எண் மற்றும் தூரம் இரண்டும் சரம் தரவாக மாற்றப்பட்டு அந்தந்த சரம் மாறிகளில் சேமிக்கப்படும்.
transit_number = சரம் (pwmvalue); transit_distance = சரம் (தூரம்);
இரண்டு சரமும் ஒரு வரியாக சேர்க்கப்பட்டு டிரான்ஸ்மிட் மற்றும் கமா “எனப்படும் சரத்தில் சேமிக்கப்படுகிறது, இது இரண்டு சரங்களை பிரிக்க பயன்படுகிறது.
transit = transit_pwm + "," + transit_distance;
டிரான்ஸ்மிட் சரம் எழுத்துக்குறி வரிசையாக மாற்றப்படுகிறது.
const char * msg = transit.c_str ();
தரவு கடத்தப்பட்டு அது அனுப்பப்படும் வரை காத்திருங்கள்.
rf_driver.send ((uint8_t *) msg, strlen (msg)); rf_driver.waitPacketSent ();
அனுப்பப்பட்ட சரம் தரவு சீரியல் மானிட்டரிலும் காட்டப்படும்.
Serial.println (msg);
புரோகிராமிங் Arduino UNO ஐ RF பெறுநராக
Arduino UNO Arduino IDE ஐப் பயன்படுத்தி திட்டமிடப்பட்டுள்ளது. ரிசீவர் பிரிவில் டிரான்ஸ்மிட்டர் பிரிவில் இருந்து அனுப்பப்படும் மற்றும் ஆர்.எஃப் ரிசீவர் தொகுதி மூலம் பெறப்பட்ட தரவு மற்றும் பெறப்பட்ட சரம் தரவு அந்தந்த தரவுகளாக (தூரம் மற்றும் எண்) பிரிக்கப்பட்டு 16x2 எல்சிடி டிஸ்ப்ளேயில் காட்டப்படும்.
ரிசீவர் குறியீட்டை சுருக்கமாக பார்ப்போம்:
டிரான்ஸ்மிட்டர் பிரிவில் முதலில் ரேடியோஹெட் நூலகம் சேர்க்கப்பட்டுள்ளது. இந்த நூலகம் தரவை அனுப்ப மற்றும் பெற ASK (Amplitude Shift Keying Technique) ஐப் பயன்படுத்துகிறது. இது நிரலாக்கத்தை மிகவும் எளிதாக்குகிறது.
#சேர்க்கிறது
எல்சிடி டிஸ்ப்ளே இங்கே பயன்படுத்தப்படுவதால், லிக்விட் கிரிஸ்டல் நூலகமும் சேர்க்கப்பட்டுள்ளது.
#சேர்க்கிறது
Arduino UNO உடன் இணைக்கப்பட்ட 16x2 LCD டிஸ்ப்ளே ஊசிகளும் குறிப்பிடப்பட்டு எல்சிடியை பொருளாகப் பயன்படுத்தி அறிவிக்கப்படுகின்றன.
லிக்விட் கிரிஸ்டல் எல்சிடி (2,3,4,5,6,7);
அடுத்து சரம் தரவைச் சேமிப்பதற்கான சரம் தரவு மாறிகள் அறிவிக்கப்படுகின்றன.
சரம் str_receive; சரம் str_number; சரம் str_distance;
ரேடியோஹெட் நூலகத்திற்கான பொருள் அறிவிக்கப்பட்டுள்ளது.
RH_ASK rf;
இப்போது வெற்றிட அமைப்பில் (), எல்சிடி டிஸ்ப்ளே 16x2 பயன்முறையில் அமைக்கப்பட்டுள்ளது மற்றும் வரவேற்பு செய்தி காண்பிக்கப்பட்டு அழிக்கப்படுகிறது.
lcd.begin (16,2); lcd.print ("CIRCUIT DIGEST"); lcd.setCursor (0,1); lcd.print ("STM32 உடன் RF"); தாமதம் (5000); lcd.clear ();
அதன் பிறகு, rf பொருள் துவக்கப்படுகிறது.
rf.init ();
இப்போது வெற்றிட சுழற்சியில் (), வரிசை பஃப் 7 என அறிவிக்கப்பட்டுள்ளது. டிரான்ஸ்மிட்டரிலிருந்து அனுப்பப்பட்ட தரவு “,” உட்பட 7 ஐக் கொண்டிருப்பதால். எனவே, கடத்தப்பட வேண்டிய தரவுகளின்படி இதை மாற்றவும்.
uint8_t buf; uint8_t buflen = sizeof (buf);
Rf ரிசீவர் தொகுதியில் சரம் கிடைத்தால், செயல்பாடு அளவை சரிபார்த்து அது இயங்குகிறது. Rf.recv () தரவைப் பெற பயன்படுத்தப்படுகிறது.
if (rf.recv (buf, & buflen))
BUF அதனால் அதன் பிறகு பெற்றார் சரம் ஒரு சேமிக்கப்படுகிறது பெற்றதோடு சரம் உள்ளது str_receive சரம் மாறி.
str_receive = சரம் ((கரி *) buf);
இந்த ஐந்து வளைய அது ',' இடையே இரண்டு சரங்களை கண்டறிந்து என்றால் இரண்டு பெற்றார் சரம் பிரித்து பயன்படுத்தப்படுகிறது.
(int i = 0; i <str_receive.length (); i ++) { if (str_receive.substring (i, i + 1) == ",") { str_number = str_receive.substring (0, i); str_distance = str_receive.substring (i + 1); உடைத்தல்; }
இரண்டு மதிப்புகளுக்கான இரண்டு கரி வரிசைகள் அறிவிக்கப்படுகின்றன, மேலும் இரண்டாகப் பிரிக்கப்பட்ட சரம் சரம் எழுத்துக்குறி வரிசையாக மாற்றுவதன் மூலம் மரியாதைக்குரிய வரிசையில் சேமிக்கப்படுகிறது.
கரி நம்பர்ஸ்ட்ரிங்; char distancestring; str_distance.toCharArray (distancestring, 3); str_number.toCharArray (நம்பர்ஸ்ட்ரிங், 3);
அதன்பிறகு எழுத்து வரிசையை atoi () ஐப் பயன்படுத்தி முழு எண்ணாக மாற்றவும்
int தூரம் = atoi (distancestring); int எண் = atoi (numberstring);
முழு மதிப்புகளாக மாற்றிய பின் மதிப்புகள் தூரம் மற்றும் எண் 16x2 எல்சிடி காட்சியில் காட்டப்படும்
lcd.setCursor (0,0); lcd.print ("எண்:"); lcd.print (எண்); lcd.setCursor (0,1); lcd.print ("தூரம்:"); lcd.print (தூரம்); lcd.print ("செ.மீ");
குறியீடுகளை அதாவது STM32 மற்றும் Arduino UNO இல் முறையே பதிவேற்றிய பிறகு, STM32 ஐப் பயன்படுத்தி அளவிடப்படும் எண் மற்றும் பொருள் தூரம் போன்ற தரவு RF டிரான்ஸ்மிட்டர் வழியாக RF ரிசீவருக்கு அனுப்பப்படுகிறது மற்றும் பெறப்பட்ட மதிப்புகள் வயர்லெஸ் முறையில் LCD காட்சியில் காட்டப்படும்.
எஸ்.டி.எம் 32 அடிப்படையிலான ஆர்.எஃப் டிரான்ஸ்மிட்டர் மற்றும் ரிசீவரை சோதிக்கிறது
1. எண் 0 ஆகவும், பொருளின் தூரம் 6cm ஆகவும் இருக்கும்போது.

2. எண் 47 மற்றும் பொருளின் தூரம் 3cm ஆக இருக்கும்போது.

