- شروع کرنے سے پہلے یاد رکھنے والی چیزیں
- ضروری اجزاء
- سرکٹ ڈایاگرام
- ای میل بھیجنے کے لئے SMTP2GO سرور مرتب کرنا
- پروگرامنگ اے وی آر مائکروکونٹرولر اتمیگا 16 اور ای ایس پی 8266
- ای میل بھیجنے کے لئے پروگرامنگ ATmega16
- پروگرامنگ ESP8266 نوڈیم سی یو
ایٹیما 16 ایک کم لاگت 8 بٹ مائکروکانٹرولر ہے اور اس میں مائکروکانٹرولرز کے اپنے سابقہ ورژن کے مقابلے میں زیادہ تعداد میں جی پی آئی او ہے۔ اس میں عام طور پر استعمال شدہ مواصلات کا پروٹوکول ہے جیسے UART ، USART ، SPI اور I2C۔ اس کے روبوٹکس ، آٹوموبائل اور آٹومیشن صنعتوں میں وسیع پیمانے پر ایپلی کیشنز موجود ہیں کیونکہ اس کی وسیع برادری کی حمایت اور سادگی ہے۔
ایٹمیگا 16 وائرلیس مواصلات جیسے کسی بھی Wi-Fi اور بلوٹوتھ کی حمایت نہیں کرتا ہے جو IOT جیسے ڈومین میں اس کے اطلاق کے علاقوں کو محدود کرتا ہے۔ اس حد کو دور کرنے کے لئے دوسرے کنٹرولرز کو انٹرفیس کیا جاسکتا ہے جس میں وائرلیس پروٹوکول موجود ہیں۔ بہت سے کنٹرولرز ہیں جو وائرلیس پروٹوکول کی حمایت کرتے ہیں جیسے وسیع پیمانے پر استعمال ہونے والے ESP8266 ،
آج ہم Ememe16 کو ESP8266 نوڈیم سی یو کے ساتھ انٹرفیس کریں گے تاکہ اسے انٹرنیٹ کے ذریعہ وائرلیس سے بات چیت کی جاسکے ۔ ESP8266 نوڈیم سی یو بڑے پیمانے پر وائی فائی ماڈیول کے ساتھ کمیونٹی سپورٹ اور آسانی سے دستیاب لائبریریوں کے ساتھ استعمال کیا جاتا ہے۔ نیز ESP8266 نوڈیم سی یو آسانی سے ارڈوینو IDE کے ساتھ قابل پروگرام ہے۔ ESP8266 کو کسی بھی مائکرو قابو پانے والے کے ساتھ انٹرفیس کیا جاسکتا ہے:
اس ٹیوٹوریل میں ، ای میل ESP8266 نوڈیم سی یو ماڈیول اور ایٹمیگا 16 کا استعمال کرتے ہوئے بھیجا جائے گا ۔ ہدایات اتمیگا 16 کے ذریعہ دی جائیں گی اور جب ای ایس پی 8266 ہدایات حاصل کریں گی ، تو یہ منتخب ای میل وصول کنندہ کو ای میل بھیجے گی۔ اے ٹی میگا 16 اور ای ایس پی 8266 نوڈیم سی یو UART سیریل مواصلات پر بات چیت کرے گا۔ اگرچہ کسی بھی مواصلات کا پروٹوکول اے ٹی میگا 16 اور ای ایس پی 8266 نوڈیم سی یو جیسے ایس پی آئی ، آئی 2 سی یا یو آر ٹی کو انٹرفیس کرنے کے لئے استعمال کیا جاسکتا ہے۔
شروع کرنے سے پہلے یاد رکھنے والی چیزیں
نوٹ کریں کہ اس پروجیکٹ میں استعمال ہونے والے ایٹمیگا 16 مائکروکانٹرلر 5 وی منطق کی سطح پر کام کرتا ہے جبکہ ESP8266 نوڈیم سی یو 3.3V منطق کی سطح پر کام کرتا ہے ۔ دونوں مائکروکانٹرولرز کی منطق کی سطح مختلف ہیں جو اتمیگا 16 اور ای ایس پی 8266 نوڈیم سی یو کے مابین کچھ غلط فہمی پیدا کرسکتی ہیں یا اگر مناسب منطق کی سطح کو برقرار نہ رکھا گیا تو ڈیٹا میں کمی بھی ہوسکتی ہے۔
تاہم ، دونوں مائکروکانٹرولر کے ڈیٹا شیٹس کے ذریعے جانے کے بعد ، ہم نے محسوس کیا کہ ہم بغیر کسی منطق کی سطح میں تبدیلی کے انٹرفیس کرسکتے ہیں کیوں کہ ESP8266 نوڈیم سی یو کے تمام پنز وولٹیج کی سطح سے 6V تک روادار ہیں۔ تو یہ 5V منطق کی سطح کے ساتھ آگے بڑھنا ٹھیک ہے۔ نیز ، ایٹمیگا 16 کی ڈیٹاشیٹ میں واضح طور پر بتایا گیا ہے کہ 2V سے اوپر کی وولٹیج کی سطح کو منطق کی سطح '1' سمجھا جاتا ہے اور ای ایس پی 8266 نوڈیم سی یو 3.3 V پر چلتا ہے ، اس کا مطلب ہے کہ اگر ESP8266 نوڈیم سی یو 3.3V منتقل کررہا ہے تو اتمیگا 16 اسے منطق کی سطح '1' کے طور پر لے سکتا ہے۔ لہذا مواصلات منطق کی سطح کو تبدیل کرنے کے بغیر ممکن ہوگی۔ اگرچہ آپ منطق کی سطح کے شفٹر کو 5 سے 3.3V تک استعمال کرنے کے لئے آزاد ہیں۔
یہاں ESP8266 سے متعلق تمام منصوبوں کو چیک کریں۔
ضروری اجزاء
- ESP8266 نوڈیم سی یو ماڈیول
- ایٹمیگا 16 مائکروکنٹرولر آئی سی
- 16 میگاہرٹز کرسٹل آسیلیٹر
- دو 100nF کپیسیٹرز
- دو 22pF کپیسیٹرز
- دبانے والا بٹن
- جمپر تاروں
- بریڈ بورڈ
- USBASP v2.0
- قیادت (کسی بھی رنگ)
سرکٹ ڈایاگرام
ای میل بھیجنے کے لئے SMTP2GO سرور مرتب کرنا
پروگرامنگ شروع کرنے سے پہلے ہمیں ESP8266 کے ذریعے میل بھیجنے کے لئے ایک SMTP سرور درکار ہوتا ہے۔ آن لائن دستیاب SMTP سرورز کی کافی مقدار ہے۔ یہاں ، smtp2go.com بطور SMTP سرور استعمال ہوگا ۔
لہذا کوڈ لکھنے سے پہلے ، SMTP صارف نام اور پاس ورڈ کی ضرورت ہوگی۔ ان دو سندوں کو حاصل کرنے کے لئے نیچے دیئے گئے مراحل پر عمل کریں جس میں کامیابی کے ساتھ ای میلز بھیجنے کے لئے SMTP سرور ترتیب دیا جائے گا۔
مرحلہ 1: - مفت اکاؤنٹ میں اندراج کے ل to "SMTP2GO مفت آزمائیں" پر کلک کریں۔
مرحلہ 2: - ایک ونڈو پاپ اپ ہو گی ، جہاں آپ کو نام ، ای میل آئی ڈی اور پاس ورڈ جیسے کچھ سند داخل کرنے کی ضرورت ہوگی۔
مرحلہ 3: - سائن اپ کرنے کے بعد ، آپ کو داخل کردہ ای میل پر ایکٹیویٹیشن کی درخواست موصول ہوگی۔ ای میل میں تصدیق شدہ لنک سے اپنے اکاؤنٹ کو چالو کریں اور پھر اپنے ای میل آئی ڈی اور پاس ورڈ کا استعمال کرکے لاگ ان کریں۔
مرحلہ 4: - ایک بار لاگ ان کرنے کے بعد ، آپ کو اپنا SMTP صارف نام اور SMTP پاس ورڈ مل جائے گا۔ یاد رکھیں یا مزید استعمال کے ل your اپنے نوٹ پیڈ پر کاپی کریں۔ اس کے بعد 'ختم' پر کلک کریں۔
مرحلہ 5: - اب بائیں رسائی بار پر ، "ترتیبات" اور پھر "صارف" پر کلک کریں۔ یہاں ، آپ SMTP سرور اور PORT نمبر سے متعلق معلومات دیکھ سکتے ہیں۔ یہ عام طور پر مندرجہ ذیل ہے:
کوڈ صارف نام اور پاس ورڈ
اب ہمیں ASCII کیریکٹر سیٹ کے ساتھ بیس 64 انکوڈ فارمیٹ میں صارف نام اور پاس ورڈ تبدیل کرنا ہے۔ ای میل اور پاس ورڈ کو बेस 64 انکوڈ شکل میں تبدیل کرنے کے لئے BASE64ENCODE (https://www.base64encode.org/) نامی ویب سائٹ استعمال کریں۔ مزید استعمال کے لئے ، انکوڈ شدہ صارف نام اور پاس ورڈ کاپی کریں:
ان اقدامات کو ختم کرنے کے بعد ESP8266 نوڈیم سی یو اور ایٹمیگا 16 IC کی پروگرامنگ کے لئے آگے بڑھیں۔
پروگرامنگ اے وی آر مائکروکونٹرولر اتمیگا 16 اور ای ایس پی 8266
پروگرامنگ میں دو پروگرام شامل ہوں گے ، ایک ایٹمیگا 16 کے لئے ہدایات بھیجنے والے کے طور پر کام کرنے کے لئے اور دوسرا پروگرام ESP8266 نوڈیم سی یو کے لئے ہدایات کے وصول کنندہ کے طور پر کام کرنے کے لئے۔ دونوں پروگرام اس سبق کے آخر میں دیئے گئے ہیں ۔ ارڈوینو IDE ESP8266 اور USBasp پروگرامر کو جلانے کے لئے استعمال کیا جاتا ہے اور Atmega16 کو جلانے کے لئے اتمیل اسٹوڈیو استعمال ہوتا ہے۔
ایک پش بٹن اور ایل ای ڈی کو انٹمیگا 16 کے ساتھ انٹرفیس کیا گیا ہے تاکہ جب ہم پش بٹن دبائیں تو اتمیگا 16 نوڈیم سی یو کو ہدایات بھیجے گا اور نوڈیم سی یو اسی کے مطابق ای میل بھیجے گا۔ ایل ای ڈی ڈیٹا منتقل کرنے کی حیثیت دکھائے گی۔ تو آئیے پروگرامنگ اتمیگا 16 اور پھر ESP8266 نوڈیم سی یو شروع کریں۔
ای میل بھیجنے کے لئے پروگرامنگ ATmega16
آپریٹنگ فریکوئینسی کی وضاحت کے ساتھ شروع کریں اور بشمول تمام لائبریریوں کو شامل کریں۔ استعمال شدہ لائبریری اتمیل اسٹوڈیو پیکیج کے ساتھ آتی ہے۔
# وضاحت F_CPU 16000000UL # شامل کریں # شامل کریں
اس کے بعد ، ESP8266 کے ساتھ بات چیت کرنے کے لئے باؤڈ کی شرح کی وضاحت کی جانی چاہئے ۔ نوٹ کریں کہ دونوں کنٹرولرز یعنی آٹمیگا 16 اور نوڈیم سی یو کے لئے باؤ کی شرح یکساں ہونی چاہئے۔ اس ٹیوٹوریل میں ، باؤڈریٹ کی تعداد 9600 ہے۔
# تعریف BAUD_PRESCALE ((( F_CPU / (USPointBAUDRATE * 16UL))) - 1)
دو رجسٹروں یو بی آر آر ایل اور یو بی آر آر ایچ کو بوڈ ریٹ اقدار کو لوڈ کرنے کے لئے استعمال کیا جائے گا۔ بوڈ ریٹ کے نچلے 8 بٹس یو بی آر آر ایل میں لوڈ ہوں گے اور بوڈ ریٹ کے اوپری 8 بٹس یو بی آر آر ایچ میں لوڈ ہوں گے۔ سادگی کے ل U ، UART ابتدائیہ کا فنکشن بنائیں جہاں بوڈ کی شرح قیمت کے ساتھ گزر جائے گی۔ UART ابتدائیہ تقریب میں شامل ہوں گے:
- رجسٹر یو سی ایس آر بی میں ٹرانسمیشن اور ریسیپشن بٹس کا تعین کرنا۔
- رجسٹر UCSRC میں 8 بٹ کردار کے سائز کا انتخاب۔
- یو بی آر آر ایل اور یو بی آر آر ایچ رجسٹر میں بوڈ ریٹ کے نچلے اور اوپری بٹس کی لوڈنگ۔
کالعدم یوجینٹینٹ (لمبی USPointBAUDRATE) { UCSRB - = (1 << RXEN) - (1 << TXEN)؛ UCSRC - = (1 << URSEL) - (1 << UCSZ0) - (1 << UCSZ1)؛ UBRRL = BAUD_PRESCALE؛ UBRRH = (BAUD_PRESCALE >> 8)؛ }
اگلا مرحلہ حروف کی ترسیل کے لئے فنکشن ترتیب دے گا ۔ اس مرحلے میں خالی بفر کے ختم ہونے کا انتظار کرنا اور پھر UDR رجسٹر میں چار ویلیو لوڈ کرنا شامل ہے۔ چار صرف فنکشن میں منظور ہوگا۔
باطل UPointTxChar (چار سی) { جبکہ (! (UCSRA & (1 <
حروف کی منتقلی کے بجائے ، نیچے کی طرح ڈور بھیجنے کے لئے ایک فنکشن بنائیں ۔
باطل UPointsendString (چار * str) { دستخط شدہ چار s = 0؛ جبکہ (str! = 0) { UPointTxChar (str)؛ s ++؛ } }
میں اہم () تقریب، کال UART_init () ٹرانسمیشن شروع کرنے کے لئے. اور نوڈیم سی یو کو TEST سٹرنگ بھیج کر ایکو ٹیسٹ کریں ۔
یوجینٹینٹ (9600)؛ UPointsendString ("TEST")؛
ایل ای ڈی اور پش بٹن کے لئے جی پی آئی او پن کی تشکیل شروع کریں۔
ڈی ڈی آر اے - = (1 << 0)؛ ڈی ڈی آر اے & = ~ (1 << 1)؛ پورٹا - = (1 << 1)؛
اگر پش بٹن دبایا نہیں گیا ہے تو پھر ایل ای ڈی کو آن رکھیں اور اگر پش بٹن دبا ہوا ہے تو پھر "بھیجیں" کمانڈ کو نوڈیم سی یو میں منتقل کرنا شروع کریں اور ایل ای ڈی کو آف کردیں۔
اگر (bit_is_clear (Pina کی، 1)) { پورٹا - = (1 << 0)؛ _ڈیلا_س (20)؛ } دوسری { پورٹا & = ~ (1 << 0)؛ _ڈیلا_س (50)؛ UPointsendString ("بھیجیں")؛ _ڈیلا_س (1200)؛ }
پروگرامنگ ESP8266 نوڈیم سی یو
پروگرامنگ نوڈیم سی یو میں اتمیگا 16 سے کمانڈ کا استقبال اور ون ایس ایم ٹی پی سرور کا استعمال کرتے ہوئے ای میل بھیجنا شامل ہے۔
اوlyل ، وائی فائی لائبریری کو شامل کریں کیونکہ ای میل بھیجنے کے لئے انٹرنیٹ استعمال ہوگا۔ کامیاب کنکشن کیلئے اپنے WIFI ssid اور پاس ورڈ کی وضاحت کریں ۔ SMTP سرور کی بھی وضاحت کریں۔
# شامل کریں
میں سیٹ اپ () تقریب، سیٹ وائی فائی اور ڈسپلے IP ایڈریس کو 9600 کے طور Atmega16 بوڈ کی شرح کرنے کے لئے اسی طرح کی اور کنیکٹ بوڈ کی شرح.
سیریل.بیگین (9600)؛ سیریل ڈاٹ پرنٹ ("سے جڑ رہا ہے:")؛ سیریل.پرنٹلن (ایس ایس ڈی)؛ WiFi.begin (ssid، پاس ورڈ)؛ جبکہ (WiFi.status ()! = WL_CONNECTED) { تاخیر (500)؛ سیریل.پرنٹ (".")؛ }
میں لوپ () تقریب، وصول Rx کی پن میں بائٹس پڑھ اور سٹرنگ فارم میں تبدیل.
اگر (سیریل۔ دستیاب ()> 0) { جبکہ (سیریل۔ دستیاب ()> 0 اور&11 <6) { تاخیر (100)؛ inChar = سیریل.ریڈ ()؛ inData = inChar؛ انڈیکس 1 ++؛ inData = '\ 0'؛ } متغیر.ٹوپپر کیس ()؛ کے لئے (بائٹ i = 0؛ i <6؛ i ++) { متغیر. کوکٹ (سٹرنگ (inData))؛ } Serial.print ("متغیر = ہے")؛ سیریل.پرنٹلن (متغیر)؛ سیریل.پرنٹ ("انڈاٹا ہے =")؛ سیریل.پرنٹلن (inData)؛ تاخیر (20)؛ } سلک سٹرنگ = سٹرنگ (متغیر)؛
اگر وصول کرنے والا کمانڈ مماثل ہے تو پھر بھیجنے والے کو ای میل بھیجیں ۔
اگر (سٹرنگ == "SEND") { بھیج ای میل ()؛ سیریل ڈاٹ پرنٹ ("میل بھیجا:")؛ سیریل.پرنٹلن ("وصول کنندہ")؛ سیریل.پرنٹلن ("")؛ }
ایس ایم ٹی پی سرور کا سیٹ اپ کرنا بہت ضروری ہے اور ایسا کیے بغیر ، کوئی ای میل نہیں بھیجی جاسکتی ہے۔ یہ بھی نوٹ کریں کہ مواصلت کے دوران ، دونوں کنٹرولرز کے لئے باڈ ریٹ ایک جیسے مقرر کریں۔
لہذا اس طرح ESP8266 کو اے وی آر مائکروقابو کنٹرولر کے ساتھ انٹرفیس کیا جاسکتا ہے تاکہ اسے آئی او ٹی مواصلات کیلئے قابل بنایا جاسکے ۔ نیچے دیئے ہوئے ورکنگ ویڈیو کو بھی چیک کریں۔