- ضروری اجزاء
- 433 میگاہرٹز آر ایف ٹرانسمیٹر اور وصول کنندہ ماڈیول)
- STM32F103C8 کے ساتھ RF ٹرانسمیٹر کا سرکٹ ڈایاگرام
- آرڈوینو یونو کے ساتھ آر ایف وصول کنندہ کا سرکٹ ڈایاگرام
- وائرلیس آریف ٹرانسمیشن کے لئے پروگرامنگ STM32F103C8
- پروگرامنگ اردوینو یو این او کے بطور آریف وصول کنندہ
- ایس ٹی ایم 32 پر مبنی آریف ٹرانسمیٹر اور وصول کنندہ کی جانچ کررہی ہے
ایمبیڈڈ الیکٹرانکس میں وائرلیس پراجیکٹس بنانا بہت اہم اور مددگار ثابت ہوتا ہے کیوں کہ وہاں کہیں بھی جھنجل والی تاروں نہیں ہوتی ہے جس سے ڈیوائس زیادہ کارآمد اور پورٹیبل ہوجاتی ہے۔ مختلف وائرلیس ٹیکنالوجیز ہیں جیسے بلوٹوتھ ، وائی فائی ، 3 433 میگا ہرٹز آر ایف (ریڈیو فریکوئنسی) وغیرہ۔ ہر ٹیکنالوجی کے اپنے فوائد اور نقصانات ہوتے ہیں جیسے لاگت ، فاصلہ یا حد کی منتقلی ، رفتار یا تروپٹ وغیرہ۔ آج ہم STF32 کے ساتھ RF ماڈیول استعمال کریں گے۔ ڈیٹا کو وائرلیس طور پر بھیجنے اور وصول کرنے کے لئے ۔ اگر آپ STM32 مائکروکانٹرولر کے لئے نئے ہیں تو پھر ارڈینو آئ ڈی ای کا استعمال کرتے ہوئے ایس ٹی ایم 32 کے ساتھ بلنک ایل ای ڈی کے ساتھ شروع کریں اور یہاں دوسرے تمام STM32 پروجیکٹس کی جانچ کریں۔
اس کے علاوہ ، ہم نے کچھ وائرلیس کنٹرول شدہ منصوبوں کی تعمیر کے ل other دوسرے مائکروکنٹرولروں کے ساتھ آریف 433 میگاہرٹز وائرلیس ماڈیول کا استعمال بھی کیا ہے ، جیسے:
- آریف کنٹرول ہوم اپلائنسز
- راسبیری پائی کا استعمال کرتے ہوئے آریف ریموٹ کنٹرول شدہ ایل ای ڈی
- آریف کنٹرولڈ روبوٹ
- Ardino کے ساتھ RF ماڈیول انٹرفیسنگ
- RF ماڈیول استعمال کرتے ہوئے PIC سے PIC مواصلات
یہاں ہم STM32F103C8 مائکروکانٹرولر کے ساتھ 433 میگاہرٹز آریف وائرلیس ماڈیول کا انٹرفیس کریں گے ۔ اس منصوبے کو دو حصوں میں تقسیم کیا گیا ہے۔ ٹرانسمیٹر STM32 ساتھ interfaced ہو گا اور رسیور Arduino اقوام متحدہ کے ساتھ interfaced ہو گا. وہاں ہو جائے گا مختلف سرکٹ ڈایاگرام اور خاکے دونوں کے ساتھ ساتھ ترسیل حصہ وصول کرنے کے لیے.
اس ٹیوٹوریل میں ، آر ایف ٹرانسمیٹر وصول کنندگان کو دو اقدار بھیجتا ہے: الٹراسونک سینسر اور پوٹینومیٹر اے ڈی سی ویلیو (0 سے 4096) کا استعمال کرتے ہوئے فاصلہ طے کیا جاتا ہے جس کو (0 سے 100) تک نقشہ بنایا گیا ہے۔ آرڈوینو کا آریف وصول کرنے والا 16x2 LCD ڈسپلے میں وائرلیس طور پر دونوں قدریں وصول کرتا ہے اور ان فاصلہ اور نمبر کی قیمتوں کو پرنٹ کرتا ہے۔
ضروری اجزاء
- STM32F103C8 مائکروکانٹرولر
- اردوینو یو این او
- 433 میگاہرٹز آریف ٹرانسمیٹر اور وصول کنندہ
- الٹراسونک سینسر (HC-SR04)
- 16x2 LCD ڈسپلے
- 10 ک پوٹینومیٹر
- بریڈ بورڈ
- مربوط تاروں
433 میگاہرٹز آر ایف ٹرانسمیٹر اور وصول کنندہ ماڈیول)
آریف ٹرانسمیٹر پن آؤٹ:
433 میگاہرٹز آریف ٹرانسمیٹر |
پن کی تفصیل |
اے این ٹی |
اینٹینا کو مربوط کرنے کے لئے |
GND |
GND |
وی ڈی ڈی |
3.3 سے 5V |
ڈیٹا |
وصول کنندہ کو منتقل کرنے والا ڈیٹا یہاں دیا گیا ہے |
آریف وصول کنندہ پن آؤٹ:
433 میگاہرٹز آریف وصول کرنے والا |
استعمال کریں |
اے این ٹی |
اینٹینا کو مربوط کرنے کے لئے |
GND |
GND |
وی ڈی ڈی |
3.3 سے 5V |
ڈیٹا |
ٹرانسمیٹر سے موصول ہونے والا ڈیٹا |
عیسوی / کرو |
یہ ایک ڈیٹا پن بھی ہے |
433 میگا ہرٹز ماڈیول نردجیکرن:
- وصول کنندہ آپریٹنگ وولٹیج: 3V سے 5V
- ٹرانسمیٹر آپریٹنگ وولٹیج: 3V سے 5V
- آپریٹنگ فریکوئینسی: 433 میگاہرٹز
- ٹرانسمیشن فاصلہ: 3 میٹر (اینٹینا کے بغیر) سے 100 میٹر (زیادہ سے زیادہ)
- ترمیم کرنے والی تکنیک: ASK (طولانی شفٹ کی بٹن)
- ڈیٹا منتقل کرنے کی رفتار: 10KBS
STM32F103C8 کے ساتھ RF ٹرانسمیٹر کا سرکٹ ڈایاگرام
آریف ٹرانسمیٹر اور STM32F103C8 کے درمیان سرکٹ رابطے:
STM32F103C8 |
آریف ٹرانسمیٹر |
5V |
وی ڈی ڈی |
GND |
GND |
PA10 |
ڈیٹا |
این سی |
اے این ٹی |
الٹراسونک سینسر اور STM32F103C8 کے درمیان سرکٹ رابطے:
STM32F103C8 |
الٹراسونک سینسر (HC-SR04) |
5V |
وی سی سی |
پی بی 1 |
ٹرگ |
پی بی 0 |
بازگشت |
GND |
GND |
STM32 کے ADC پن PA0 کو ان پٹ ینالاگ ویلیو (0 سے 3.3V) فراہم کرنے کے لئے ایک 10k potentiometer STM32F103C8 کے ساتھ منسلک ہے۔
آرڈوینو یونو کے ساتھ آر ایف وصول کنندہ کا سرکٹ ڈایاگرام
آریف وصول کرنے والے اور اردوینو یو این او کے مابین سرکٹ رابطے:
اردوینو یو این او |
آریف وصول کرنے والا |
5V |
وی ڈی ڈی |
GND |
GND |
11 |
ڈیٹا |
این سی |
اے این ٹی |
16x2 LCD اور Ardino UNO کے درمیان سرکٹ رابطے:
LCD پن کا نام |
ارڈینوو یو این او پن کا نام |
گراؤنڈ (Gnd) |
گراؤنڈ (G) |
وی سی سی |
5V |
VEE |
اس کے برعکس مرکز کے پوٹینومیٹر سے پن |
رجسٹر سلیکٹ (آر ایس) |
2 |
پڑھیں / لکھیں (RW) |
گراؤنڈ (G) |
(EN) کو فعال کریں |
3 |
ڈیٹا بٹ 4 (DB4) |
4 |
ڈیٹا بٹ 5 (DB5) |
5 |
ڈیٹا بٹ 6 (DB6) |
6 |
ڈیٹا بٹ 7 (DB7) |
7 |
ایل ای ڈی مثبت |
5V |
ایل ای ڈی منفی |
گراؤنڈ (G) |
کوڈنگ کو مختصر ذیل میں بیان کیا جائے گا۔ خاکہ کے دو حصے ہوں گے جہاں پہلا حصہ ٹرانسمیٹر سیکشن اور دوسرا حص receہ وصول کرنے والا حص sectionہ ہوگا۔ اس ٹیوٹوریل کے آخر میں تمام خاکہ فائلوں اور کام کرنے والی ویڈیو دی جائے گی۔ ارڈینو اونو کے ساتھ RF ماڈیول میں مداخلت کے بارے میں مزید معلومات کے ل the ، لنک پر عمل کریں۔
وائرلیس آریف ٹرانسمیشن کے لئے پروگرامنگ STM32F103C8
STM32F103C8 اردوینو IDE کا استعمال کرکے پروگرام کیا جاسکتا ہے۔ A FTDI پروگرامر یا ST-link کی STM32F103C8 کرنے کے لئے کوڈ کو اپ لوڈ کرنے کی ضرورت نہیں ہے. صرف STM32 کے USB پورٹ کے ذریعے پی سی سے جڑیں اور آرڈینو IDE کے ساتھ پروگرامنگ شروع کریں ۔ آپ لنک کو فالو کرکے ارڈینو آئ ڈی ای میں اپنے ایس ٹی ایم 32 پروگرامنگ سیکھ سکتے ہیں۔
ٹرانسمیٹر کے حصے میں 'سینٹی میٹر' میں آبجیکٹ کا فاصلہ الٹراسونک سینسر کا استعمال کرتے ہوئے ماپا جاتا ہے اور (0 سے 100) سیٹ نمبر جو پوٹینومیٹر کا استعمال کرتے ہوئے سیٹ کیا جاتا ہے جو STM32 کے ساتھ انٹرفیس RF ٹرانسمیٹر کے ذریعے منتقل ہوتا ہے۔
پہلے ریڈیو ہیڈ لائبریری شامل کی گئی ہے ، اسے یہاں سے ڈاؤن لوڈ کیا جاسکتا ہے۔ چونکہ یہ لائبریری ڈیٹا منتقل کرنے اور وصول کرنے کے لئے ASK (Amplitude شفٹ کینگ تکنیک) کا استعمال کرتی ہے۔ اس سے پروگرامنگ بہت آسان ہوجاتی ہے۔ آپ خاکہ میں جاکر لائبریری شامل کرسکتے ہیں-> لائبریری شامل کریں-> زپ لائبریری شامل کریں۔
# شامل کریں
جیسا کہ اس ٹیوٹوریل میں ٹرانسمیٹر سائیڈ میں الٹراسونک سینسر کا استعمال فاصلے کی پیمائش کرنے کے لئے کیا جاتا ہے تاکہ ٹرگر اور ایکو پنوں کی وضاحت کی جاسکے۔
# تعیine ن ٹرگ پن پی بی 1
اگلا RH_ASK لائبریری کے لئے آبجیکٹ کا نام rf_driver کے طور پر سیٹ کیا گیا ہے جیسے پیرامیٹرز جیسے اسپیڈ (2000) ، RX پن (PA9) اور TX پن (PA10)۔
RH_ASK rf_driver (2000 ، PA9 ، PA10)؛
اگلا اس پروگرام میں اسٹرنگز متغیر کی ضرورت ہے۔
اسٹرنگ ٹرانسمٹ_نمبر؛ اسٹرنگ ٹرانسمیٹ_ڈسٹینس؛ سٹرنگ ٹرانسمیٹ؛
باطل سیٹ اپ () میں اگلے ، RH_ASK rf_driver کے ل the آبجیکٹ شروع کی جاتی ہے۔
rf_driver.init ()؛
اس کے بعد ٹرگر پن کو آؤٹ پٹ پن اور PA0 (پوٹینومیٹر سے منسلک) کے طور پر سیٹ کیا گیا ہے اور ایکو پن INPUT پن کے طور پر سیٹ کیا گیا ہے۔ سیریل مواصلات کا آغاز 9600 کی باڈ ریٹ سے ہوتا ہے۔
سیریل.بیگین (9600)؛ پن موڈ (PA0 ، ان پٹ)؛ پن موڈ (ایکو پن ، ان پٹ)؛ پن موڈ (ٹرگ پن ، آؤٹ پٹ)؛
باطل لوپ () میں آگے ، پوٹینومیومیٹر ویلیو کو فرسٹ کریں جو ان پٹ ہے انلاگ وولٹیج کو ڈیجیٹل ویلیو میں تبدیل کیا جاتا ہے (ADC ویلیو مل جاتا ہے)۔ چونکہ STM32 کے ADC کی 12 بٹ ریزولوشن ہے۔ لہذا ، ڈیجیٹل ویلیو (0 سے 4096) سے مختلف ہوتی ہے جسے نقشہ (0 سے 100) میں لگایا جاتا ہے۔
int analoginput = اینالاگ ریڈ (PA0)؛ انٹ pwmvalue = نقشہ (مطابق انداز، 0،4095،0،100)؛
اگلے فاصلے کو الٹراسونک سینسر کا استعمال کرتے ہوئے 2 مائکرو سیکنڈ کی تاخیر کے ساتھ ٹرگر کو اعلی اور کم مقرر کرکے ناپا جاتا ہے۔
ڈیجیٹل رائٹ (ٹرگ پن ، LOW)؛ تاخیرمیکرو سیکنڈ (2)؛ ڈیجیٹل رائٹ (ٹرگ پن ، ہائی)؛ تاخیرمیکرو سیکنڈ (10)؛ ڈیجیٹل رائٹ (ٹرگ پن ، LOW)؛
بازگشت پن حواس باختہ لہر کو پیچھے محسوس کرتی ہے ، یہی وہ وقت ہے جس میں متحرک لہر کی عکاسی ہوتی ہے جس کا استعمال فارمولے کے ذریعے اشیاء کے فاصلے کا حساب کتاب کرنے میں ہوتا ہے۔ مزید جانیں کہ الٹراسونک سینسر لنک کی پیروی کرکے ، فاصلے کا کس طرح حساب لگاتا ہے ۔
لمبی دوری = پلس ان (ایکو پن ، ہائی)؛ فلوٹ فاصلہ = مدت * 0.034 / 2؛
اب ناپنے والے ڈیٹا نمبر اور فاصلے دونوں کو اسٹرنگ ڈیٹا میں تبدیل کیا جاتا ہے اور متعلقہ سٹرنگ متغیر میں اسٹور کیا جاتا ہے۔
transmit_number = سٹرنگ (pwmvalue)؛ transmit_distance = تار (فاصلہ)؛
دونوں تاریں ایک لائن کے طور پر شامل کی جاتی ہیں اور اسٹرنگ میں محفوظ ہوتی ہیں جسے ٹرانسمٹ اور کوما کہتے ہیں ، “،” دو ڈور الگ کرنے کے لئے استعمال ہوتا ہے۔
transmit = transmit_pwm + "،" + منتقل_دوست؛
ٹرانسمیٹ سٹرنگ کو کردار صف میں تبدیل کردیا جاتا ہے۔
کونٹ چار * msg = transmit.c_str ()؛
ڈیٹا منتقل ہوتا ہے اور اسے بھیجے جانے تک انتظار کرتے ہیں۔
rf_driver.send ((uint8_t *) _، strlen (_))؛ rf_driver.waitPacketSent ()؛
بھیجا تار کا ڈیٹا بھی سیریل مانیٹر میں ظاہر ہوتا ہے۔
سیریل.پرنٹ لین (_)؛
پروگرامنگ اردوینو یو این او کے بطور آریف وصول کنندہ
ارڈینوو یو این او کو ارڈینو آئ ڈی ای کا استعمال کرتے ہوئے پروگرام کیا گیا ہے۔ وصول کنندہ سیکشن میں وہ ڈیٹا جو ٹرانسمیٹر سیکشن سے منتقل ہوتا ہے اور آریف وصول کنندہ ماڈیول اور وصول کردہ سٹرنگ ڈیٹا کو متعلقہ اعداد و شمار (فاصلے اور نمبر) میں تقسیم کیا جاتا ہے اور 16x2 LCD ڈسپلے میں ظاہر ہوتا ہے۔
آئیے وصول کنندہ کو کوڈنگ کو مختصر طور پر دیکھتے ہیں:
ٹرانسمیٹر سیکشن کی طرح پہلے ریڈیو ہیڈ لائبریری بھی شامل ہے۔ چونکہ یہ لائبریری ڈیٹا منتقل کرنے اور وصول کرنے کے لئے ASK (Amplitude شفٹ کینگ تکنیک) کا استعمال کرتی ہے۔ اس سے پروگرامنگ بہت آسان ہوجاتی ہے۔
# شامل کریں
چونکہ یہاں LCD ڈسپلے استعمال ہوتا ہے لہذا مائع کرسٹل لائبریری بھی شامل ہے۔
# شامل کریں
اور آرڈوینو یو این او کے ساتھ منسلک 16x2 LCD ڈسپلے پنوں کی وضاحت کی گئی ہے اور LCD کو بطور اعتراض استعمال کرکے اعلان کیا گیا ہے۔
لیکویڈ کرسٹل ایل سی ڈی (2،3،4،5،6،7)؛
اسٹرنگ ڈیٹا کو اسٹور کرنے کیلئے اگلے اسٹرنگ ڈیٹا متغیرات کا اعلان کردیا گیا۔
اسٹرنگ سٹرنگ str_number؛ سٹرنگ str_distance؛
ریڈیو ہیڈ لائبریری کے لئے اعتراض کا اعلان کیا گیا ہے۔
RH_ASK rf؛
اب باطل سیٹ اپ () میں ، LCD ڈسپلے کو 16x2 موڈ میں سیٹ کیا گیا ہے اور ایک ویلکم میسیج ڈسپلے اور کلیئر کردیا گیا ہے۔
lcd.begin (16،2)؛ lcd.print ("سرکٹ ڈائجسٹ")؛ 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 () اعداد و شمار حاصل کرنے کے لئے استعمال کیا جاتا ہے.
اگر (rf.recv (buf، & buflen))
buf موصول سٹرنگ پس موصول سٹرنگ ایک میں محفوظ کیا جاتا ہے str_receive سٹرنگ متغیر.
str_reLive = اسٹرنگ ((چار *) بف)؛
اس کے لئے لوپ کا استعمال موصولہ تار کو دو حصوں میں تقسیم کرنے کے لئے کیا جاتا ہے اگر وہ '' '' کو دو تاروں کے مابین پتہ لگاتا ہے۔
(int i = 0؛ i <str_recep.length ()؛ i ++) { اگر (str_recep.substring (i ، i + 1) == "" ") { str_number = str_recep.substring (0 ، i)؛ str_distance = str_recep.substring (i + 1)؛ توڑ }
دو اقدار کے ل Two دو چار صفوں کا اعلان کیا گیا ہے اور اسٹرنگ کو جو دو حصوں میں تقسیم ہوتا ہے اس کو سٹرنگ کو کریکٹر ارے میں تبدیل کرکے معزز صف میں محفوظ کیا جاتا ہے۔
چار نمبرسٹرنگ؛ چار فاصلہ طے کرنا؛ str_distance.toCharArray (فاصلہ طے کرنے والا ، 3)؛ str_number.toCharArray (نمبرسریننگ ، 3)؛
اس کے بعد آٹوئی () کا استعمال کرتے ہوئے کردار سرے کو عدد میں تبدیل کریں
int فاصلہ = atoi (فاصلہ طے کرنے والا)؛ int نمبر = atoi (نمبرسریننگ)؛
عددی اقدار میں بدلنے کے بعد قدروں کا فاصلہ اور نمبر 16x2 LCD ڈسپلے میں ظاہر ہوتا ہے
lcd.setCursor (0،0)؛ lcd.print ("نمبر:")؛ lcd.print (نمبر)؛ lcd.setCursor (0،1)؛ lcd.print ("فاصلہ:")؛ lcd.print (فاصلہ)؛ lcd.print ("سینٹی میٹر")؛
دونوں کوڈز یعنی ٹرانسمیٹر اور وصول کنندہ کو بالترتیب ایس ٹی ایم 32 اور اردوینو یو این او میں اپ لوڈ کرنے کے بعد ، STM32 کا استعمال کرتے ہوئے ناپنے والے نمبر اور آبجیکٹ فاصلے جیسے اعداد و شمار کو RF ٹرانسمیٹر کے توسط سے RF وصول کنندہ میں منتقل کیا جاتا ہے اور موصول اقدار LCD ڈسپلے میں بغیر کسی وائرلیس دکھائے جاتے ہیں۔
ایس ٹی ایم 32 پر مبنی آریف ٹرانسمیٹر اور وصول کنندہ کی جانچ کررہی ہے
1. جب تعداد 0 اور اعتراض کا فاصلہ 6CM پر ہو۔
2. جب نمبر 47 اور آبجیکٹ کا فاصلہ 3CM پر ہے۔