- ارڈوینو کا استعمال کرتے ہوئے خودکار میڈیسن یاد دہانی کیلئے ضروری اجزاء
- ایردوینو سرکٹ کا استعمال کرتے ہوئے ایردوینو میڈیسن ریمائنڈر
- آٹومیٹک میڈیسن ریمائنڈر سسٹم کا کام کرنا
- میڈیسن یاد دہانی کے لئے پروگرامنگ اردوینو یو این او
جب بات ہمارے پیاروں کی ہو تو ہم ان کو ہمیشہ صحتمند اور تندرست رکھنا چاہتے ہیں۔ لیکن اگر وہ بیمار ہوجائیں اور وقت پر دوا لینا بھول جائیں تو کیا ہوگا۔ ہم پریشان ہوں گے ، ٹھیک ہے؟ اسپتالوں میں ، بہت سارے مریض موجود ہیں اور ہر مریض کو وقت پر دوا لینے کی یاد دلانا مشکل ہے۔ روایتی طریقوں سے انسانی کوششوں کا تقاضا ہوتا ہے تاکہ وہ وقت پر دوائیں لینے کی یاد دلائیں۔ ڈیجیٹل دور اس کی پیروی نہیں کرتا ہے اور ہم اس کے ل machines مشینوں کا استعمال کرسکتے ہیں۔ اسمارٹ میڈیسن یاد دہانی کا اطلاق بہت وسیع ہے اور گھر میں مریضوں ، اسپتالوں میں ڈاکٹروں اور بہت سی دوسری جگہوں پر استعمال کرسکتا ہے۔ جب یاد دلانے کی بات آتی ہے تو ، اسے یاد دلانے کے بہت سے طریقے ہوسکتے ہیں:
- اسے ڈسپلے پر دکھائیں
- ای میل یا فون پر اطلاع بھیجیں
- موبائل ایپس کا استعمال
- بز الارم
- بلوٹوتھ / Wi-Fi کا استعمال کرنا
- کال آئے
- موجودہ وقت کی یاد دہانی کرتے ہوئے اگلی دوائی کے وقت کی یاد دہانی کرو
ہم ضرورت کے مطابق مختلف طریقوں کو جوڑ سکتے ہیں۔ چیزوں کو یہاں آسان رکھنے کے لئے ہم نے اردوینو کا استعمال کرتے ہوئے میڈیسن کی ایک آسان یاد دہانی بنائی جو ہمیں دن میں 1 یا 2 یا 3 بار ادویات لینے کی یاد دلاتی ہے۔ ٹائم سلاٹ کو پش بٹنوں کا استعمال کرتے ہوئے منتخب کیا جاسکتا ہے۔ نیز ، یہ موجودہ تاریخ اور وقت بھی ظاہر کرتا ہے۔ ہم اسے مزید آئی او ٹی پروجیکٹ آنے والے مضامین تک بڑھا دیں گے جہاں صارف کو ای میل یا ایس ایم ایس کا نوٹیفیکیشن بھیجا جائے گا۔ اس دوا کی یاد دہانی کو مریضوں کی نگرانی کے نظام کے ساتھ بھی ضم کیا جاسکتا ہے۔
ارڈوینو کا استعمال کرتے ہوئے خودکار میڈیسن یاد دہانی کیلئے ضروری اجزاء
- ارڈینو ونو (ہم دوسرے ارڈینو بورڈ بھی استعمال کرسکتے ہیں ، جیسے پرو منی ، نینو)
- آر ٹی سی DS3231 ماڈیول
- 16x2 LCD ڈسپلے
- بزر
- قیادت (کسی بھی رنگ)
- بریڈ بورڈ
- پش بٹن
- 10K پوٹینومیٹر
- 10K ، 1K ریسٹرز
- جمپر تاروں
ایردوینو سرکٹ کا استعمال کرتے ہوئے ایردوینو میڈیسن ریمائنڈر
ارڈینو کا استعمال کرتے ہوئے اسمارٹ میڈیسن باکس بنانے کے لئے مکمل سرکٹ ڈایاگرام ذیل میں دکھایا گیا ہے
ذیل میں مختلف پردییوں کے ساتھ ارڈینو کے پن رابط ہیں
ارڈینو پنوں پیریفیرل پن
- 2 -----------------------------> 16 ایکس 2 ایل سی ڈی ڈسپلے کا D7
- 3 -----------------------------> 16 ایکس 2 LCD ڈسپلے کا D6
- 4 -----------------------------> 16 ایکس 2 LCD ڈسپلے کا D5
- 5 -----------------------------> D4 16x2 LCD ڈسپلے
- 7 -----------------------------> تیسرا پش بٹن
- 8 -----------------------------> دوسرا دھکا بٹن
- 9 -----------------------------> پہلا پش بٹن
- 11 -----------------------------> 16x2 LCD ڈسپلے کا EN پن
- 12 -----------------------------> 16x2 LCD ڈسپلے کا RS پن
- 13 -----------------------------> + بزر اور لیڈ کا وی پن
- A0 -----------------------------> پش بٹن کو روکیں
- A4 -----------------------------> DS3231 کا ایس ڈی اے
- A5 -----------------------------> DS3231 کا ایس سی ایل
- 3.3V -----------------------------> DS3231 کا Vcc
- Gnd -----------------------------> Gnd
اس میڈیسن ریمائنڈر پروجیکٹ میں ، آر ٹی سی ڈی ایس 23231 کو آرڈینو اونو کے ساتھ I2C پروٹوکول کے ذریعے انٹرفیس کیا گیا ہے۔ آپ آرڈوینو کے ساتھ وقت پڑھنے کے لئے آر ٹی سی آئی سی ڈی ایس 301 کو بھی استعمال کرسکتے ہیں۔ آر ٹی سی DS3231 میں 32k میموری بھی شامل ہے جو اضافی ڈیٹا کو اسٹور کرنے کے لئے استعمال کی جاسکتی ہے۔ آر ٹی سی ماڈیول 3.7V پن کے ذریعہ طاقت ہے جو اریڈینو ون کے ہیں۔ ایس پی آئی کا استعمال کرتے ہوئے 16x2 LCD ڈسپلے انٹرفیس کیا جاتا ہے۔ ایک بز آر کو متنبہ کرنے اور یاد دلانے کے لئے استعمال کیا جاتا ہے کہ اب دوا لینے کا وقت آگیا ہے۔ چار پش بٹنوں کا استعمال کیا جاتا ہے جہاں ہر ایک کی الگ الگ خصوصیت ہوتی ہے۔ پہلے پش بٹن کو دن میں ایک بار دوا لینے کی یاد دلانے کے لئے استعمال کیا جاتا ہے۔ دوسرا پش بٹن روزانہ دو بار یاد دلانے کے لئے استعمال ہوتا ہے اور تیسرا پش بٹن روزانہ تین بار یاد دلانے کے لئے استعمال ہوتا ہے۔ جب صارف نے انتباہ سنا ہے تو بززر کو روکنے کے لئے چوتھا پش بٹن استعمال کیا جاتا ہے۔
آٹومیٹک میڈیسن ریمائنڈر سسٹم کا کام کرنا
گولی یاد دہانی الارم 5V فراہمی کا استعمال کرتے ہوئے طاقت ہے. جب یہ پہلی بار شروع ہوتا ہے ، تو یہ " سرکٹ ڈائیجسٹ میں خوش آمدید " کے بطور ایک خوش آمدید مساج ظاہر کرتا ہے ۔ LCD اسکرین کو تین اسکرینوں میں سائیکل پر سیٹ کیا گیا ہے۔ 1 تخسوچت جنجاتی کے اسکرین شو "کے طور پر مساج ، صحت مند جلد ٹھیک ہو ". دوسری اسکرین ایک ہیلپ اسکرین ہے جو یاد دلانے کے لئے کسی ایک وقت کی سلاٹ (ایک بار / دو بار / دن میں تین بار) منتخب کرنے کے لئے منتخب پش بٹن دبائیں۔ ٹائم سلاٹ پروگرام میں تبدیل ہوتا ہے اور اسی کے مطابق تشکیل دیا جاسکتا ہے۔ ابھی ہم نے اسے تین دورانیے یعنی صبح 8 بجے ، دوپہر 2 بجے اور شام 8 بجے میں طے کیا ہے۔
ہم نے وقت کی سلاٹ کو تین طریقوں میں تقسیم کیا ہے۔ وضع 1 صبح 8 بجے ایک بار دوا لینے کے ل. منتخب کرتا ہے جب صارف 1 سینٹ پش بٹن دباتا ہے ۔ موڈ 2 دو دن / دن صبح 8 بجے اور شام 8 بجے دوا لینے کا انتخاب کرتا ہے جب صارف 2 این ڈی پش بٹن دباتا ہے ۔ موڈ 3 دن میں 3 بار صبح 8 بجے ، دوپہر 2 بجے اور شام 8 بجے دوا لینے کا انتخاب کرتا ہے اگر صارف 3 ریلے پش بٹن کو دباتا ہے ۔
ہم 10 منٹ (اس پروجیکٹ میں شامل نہیں) بزر کو اسنوز کرنے کے ل a بھی ایک خصوصیت شامل کرسکتے ہیں۔ جب صارف پش بٹن دباکر مطلوبہ سلاٹ کا انتخاب کرتا ہے تو ، صارف کا ان پٹ ریکارڈ ہوجاتا ہے اور وقت RTC سے لیا جاتا ہے۔ جب وقت کا انتخاب وقت کے سلاٹ کے ساتھ کیا جاتا ہے تو پھر بززرگنا شروع ہوتا ہے۔ صارف اسٹاپ بٹن دباکر بوجر کو روک سکتا ہے۔ اگلی سلاٹ کی یاد دہانی کے لئے بھی یہی عمل جاری ہے۔ اس ایرل کے آخر میں دیئے گئے ویڈیو میں مکمل عمل دکھایا گیا ہے ۔
میڈیسن یاد دہانی کے لئے پروگرامنگ اردوینو یو این او
ایک بار جب آپ گولیوں کو لینے کی یاد دلانے کے طریقوں کے بارے میں سوچتے ہیں تو پروگرام لکھنا بہت آسان ہے۔ یہاں یہ ڈسپلے میں یاد دہانی دکھائے گا ، بز کو بز دے گا اور ایل ای ڈی کے ذریعہ اس کی نشاندہی کرے گا۔ اس میں تین وقت کی سلاٹ (ایک بار / دو بار / دن میں تین بار) منتخب کرنے کا اختیار بھی موجود ہے اور جب وقت پہنچے گا تو بززر کی آواز سے مریض کو متنبہ کرنا شروع کردے گا۔ تب پورا نظام مندرجہ ذیل نظر آئے گا:
صارف کو ڈسپلے پر مدد کی ہدایت مل جاتی ہے> صارف ٹائم سلاٹس کا انتخاب کرتا ہے (ایک بار / دن ، دو بار / دن ، تین بار / دن)> ڈسپلے پر توثیقی پیغام پرنٹ کریں> وقت کی تیاری کا آغاز> بزر اور ایل ای ڈی اس وقت شروع ہوتا ہے جب صارف کے منتخب کردہ سلاٹ کے ساتھ میچ ہوتا ہے> صارف اس کے ذریعہ رک جاتا ہے اسٹاپ پش بٹن کو دبانا> اختتام
اگر ہم مزید خصوصیات شامل کرنا چاہتے ہیں تو ہم پروگرام اور ہارڈ ویئر کو تبدیل کرسکتے ہیں۔ زیادہ آسان طریقے سے سمجھنے کے ل we ، ہم نے چھوٹے چھوٹے فنکشنز میں پروگرام کو توڑ دیا ہے۔ افعال کو سمجھنے اور اس پر عمل درآمد آسان ہے۔ اس منصوبے کے آخر میں مکمل پروگرام دیا گیا ہے۔ آئیے پروگرام کے ساتھ شروعات کریں۔
چونکہ ، ہم نے دوسرے پردییوں جیسے 16x2 LCD ڈسپلے ، RTC DS3231 استعمال کیے ہیں ، لہذا ہمیں پہلے لائبریریوں کو f یا اس میں شامل کرنا ہے۔ مندرجہ ذیل لائبریری کی ضرورت ہے:
اگر ایردوینو کو آن نہیں کیا گیا ہے تو EEPROM لائبریری کا استعمال صارف کے منتخب ان پٹ کو ٹریک رکھنے کے لئے کیا جاتا ہے۔ اور جب اردوینو پر صارف کی طاقت EEPROM لائبریری کا استعمال کرتے ہوئے پش بٹنوں کی پچھلی حالت میں مل جاتی ہے۔ Wire.h لائبریری کو استعمال کیا جاتا ہے چونکہ RTC DS3231 ماڈیول I2C کا استعمال کرتے ہوئے بتایا جاتا ہے۔
ہمیشہ یہ چیک کریں کہ آیا آر ٹی سی مناسب طریقے سے وائرڈ ہے یا اسے نقصان نہیں پہنچا ہے ، کیوں کہ آر ٹی سی پورے یاد دہانی کے نظام کو بروقت رکھنے میں اہم کردار ادا کرے گا۔
if (! rtc.begin ()) {// چیک کریں کہ آیا rtc منسلک ہے Serial.println ("RTC نہیں ڈھونڈ سکا")؛ جبکہ (1)؛ } if (rtc.lostPower ()) ial Serial.println ("RTC کھوئی ہوئی طاقت ، وقت مقرر کرنے دیتا ہے!")؛ }
وقت کی ایڈجسٹمنٹ دو طریقوں سے کی جاسکتی ہے ، یا تو خود بخود سسٹم کمپائل ٹائم کا استعمال کرتے ہوئے یا اس میں دستی طور پر داخل ہو کر۔ ایک بار جب ہم نے وقت مقرر کرلیا ہے ، تب تک نیچے دی گئی لائنوں پر تبصرہ کریں جب تک کہ آپ دوبارہ آر ٹی سی کا وقت تبدیل نہیں کرنا چاہتے ہیں۔
rtc.adjust (تاریخ وقت (F (__ تاریخ__)) ، F (__ ٹائم__)))؛ //rtc.adjust(DateTime(2019، 1، 10، 7، 59، 52))؛
اس سوئچ بیان کو پش بٹن کی سابقہ محفوظ کردہ حالت کو پڑھنے اور مناسب اور درست یاد دہانی کے وقت کے لئے ریاست کو دوبارہ شروع کرنے کے لئے استعمال کیا جاتا ہے ۔
والو 2 = EEPROM.read (ایڈر)؛ // پش بٹن کی ابتدائی طور پر محفوظ کردہ قیمت پڑھیں جہاں سے پہلے سوئچ (ویل 2) میں رہ گیا تھا start معاملہ 1: سیریل.پرنٹلن ("1 / دن کے لئے مقرر کریں")؛ push1state = 1؛ push2state = 0؛ push3state = 0؛ پش وال = 01؛ توڑ کیس 2: سیریل ڈاٹ کام ("2 دن کے لئے مقرر کریں")؛ push1state = 0؛ push2state = 1؛ push3state = 0؛ پش وال = 10؛ توڑ کیس 3: سیریل.پرنٹ لین ("3 دن کے لئے مقرر کریں")؛ push1state = 0؛ push2state = 0؛ push3state = 1؛ پش وال = 11؛ توڑ }
اس بیان کا استعمال ملیوں کو مقررہ وقفہ اسکرین سائیکلنگ کے وقت اور کنٹرول کے لئے استعمال کرنے کے ل. کیا جاتا ہے۔
موجودہمیلیس ایل سی ڈی = ملیس ()؛ // وقت کی وضاحت کے وقفے پر LCD اسکرین سوئچنگ کے لئے ملیسس شروع کریں
پش بٹنوں سے منسلک ڈیجیٹل پنوں کو پڑھنا شروع کریں۔
push1state = digitalRead (push1pin)؛ پش اسٹسٹ = ڈیجیٹل ریڈ (پش 2 پین)؛ push3state = ڈیجیٹلریڈ (push3pin)؛ اسٹاپن اسٹیٹ = ڈیجیٹل ریڈ (اسٹاپ پن)؛
دباؤ بٹن کی حالت کو پڑھنے اور اسے EEPROM پر لکھنے کے لئے ذیل میں فنکشن استعمال کیا جاتا ہے ۔ جب بھی پش بٹن دب جاتا ہے تو ریاست EEPROM پر لکھی جاتی ہے۔ نیز یہ منتخب شدہ صارف کے ان پٹ انتخاب کے LCD ڈسپلے پر بھی پیغام چھپاتا ہے۔ اسی طرح افعال push2 () اور push3 () استعمال ہوتا ہے۔
باطل પુش 1 () {// تقریب میں ایک بار / دن میں ایک بار یاد دہانی متعین کرنے کے لئے اگر (push1state == 1) { push1state = 0؛ push2state = 0؛ push3state = 0؛ // pushPressed = true؛ EEPROM.write (جوڑنے والا ، 1)؛ سیریل.پرنٹ ("پش 1 تحریری:")؛ سیریل.پرنٹلن (ایپرووم.ریڈ (ایڈر))؛ // ڈیبگنگ پش وال کے لئے = 1؛ // پش بٹن کی حالت کو بچائیں -1 lcd.clear ()؛ lcd.setCursor (0 ، 0)؛ lcd.print ("یاد دہانی سیٹ")؛ lcd.setCursor (0 ، 1)؛ lcd.print ("ایک بار / دن کے لئے!")؛ تاخیر (1200)؛ lcd.clear ()؛ } }
ذیل میں فنکشن کا استعمال بزر کو روکنے اور لیڈ کرنے کے لئے کیا جاتا ہے ۔ تجاویز دینا ہمیشہ اچھا ہے۔ ڈسپلے پر ایک مشورہ پیغام پرنٹ کریں "گرم پانی سے دوائی لیں"۔
باطل اسٹاپ پنس () user // فنکشن بزدل کو روکنے کے ل when جب صارف پش بٹن کو روکنے کے بٹن کو دباتا ہے اگر (اسٹاپ اسٹینٹیٹ == 1) { // اسٹاپ اسٹینسٹ = 0؛ // pushPressed = true؛ پشپریسڈ = 1؛ lcd.clear ()؛ lcd.setCursor (0 ، 0)؛ lcd.print ("دوائی لیں")؛ lcd.setCursor (0 ، 1)؛ lcd.print ("گرم پانی کے ساتھ")؛ تاخیر (1200)؛ lcd.clear ()؛ } }
مندرجہ ذیل فنکشن وقت کے وقت سے آزاد ہے لیکن ہمیشہ تین اسکرینوں میں سائیکل جو صارف کی مدد کرتا ہے۔ چونکہ ہم مریضوں کی دیکھ بھال کر رہے ہیں ایک مبارکبادی پیغام پرنٹ کرنے دیتے ہیں کیونکہ ہمیں معلوم ہے کہ جذباتی مدد مریضوں کو زیادہ تیز وقت میں علاج کرنے میں بہت مددگار ثابت ہوتی ہے۔ آپ اپنا تخلیقی پیغام منتخب کرسکتے ہیں۔ آئیے "صحت مند رہیں ، جلد صحت یاب ہوں" کے بطور ایک پیغام چھاپیں۔
دوسری اسکرین مریضوں کو ہدایات دینے کے لئے ہے "بطور یاد دہانی کے لئے بٹن دبائیں.."۔ تیسری اسکرین کا استعمال موجودہ تاریخ اور وقت کو آسانی سے ظاہر کرنے کے لئے کیا جاتا ہے ۔
باطل تبدیلی اسکرین () Screen // فنکشن اسکرین سائیکلنگ کے لئے // ہر متعینہ وقفہ ایل سی ڈی اسکرین کو سوئچ کرنا شروع کریں اگر (موجودہ میلیس ایل سی ڈی - پچھلا میلیس ایل سی ڈی> انٹراول سی سی ڈی) // ڈسپلے کو تبدیل کرنے میں آخری بار بچائیں { پچھلا میلیس ایل سی ڈی = کرنٹ میلیس ایل سی ڈی؛ اسکرینیں ++؛ اگر (اسکرینیں> میکس اسکرین) { اسکرینز = 0؛ // تمام سکرین کے اوپر -> 1st سے شروع } isScreenChanged سچا =؛ } // موجودہ اسکرین کی نمائش شروع کریں اگر (isScreenChanged ہے) // صرف سکرین کو اپ ڈیٹ کریں اگر اسکرین تبدیل ہو۔ { isScreenChanged جھوٹے =؛ // اگلے iteration کے لئے ری سیٹ سوئچ (سکرین) { کیس getWellsoon: gwsMessege ()؛ // جلد صحت یاب ہوجائیں توڑ کیس HELP_SCREEN: ہیلپ اسکرین ()؛ // انسٹرکشن اسکرین بریک؛ کیس TIME_SCREEN: ٹائم اسکرین ()؛ // تاریخ اور وقت کے وقفے پرنٹ کرنے کے لئے ؛ پہلے سے طے شدہ: // سیٹ نہیں۔ توڑ } } }
اس فنکشن کا استعمال یوں ہے کہ اگر منتخب شدہ وقت آگیا ہو تو بیک وقت ایل ای ڈی کو بونز اور ٹمٹمانے شروع کردے ۔
باطل اسٹارٹ بز () {// افزائش شروع کرنے کے لئے فنکشن جب وقت مقررہ وقفہ تک پہنچ جاتا ہے // اگر (دھکا دبانے والا == جھوٹا) push اگر (دھکا دبانے والا == 0) ial سیریل.پرنٹلن ("پشپریسڈ جھپکنے میں جھوٹی ہے")؛ دستخط شدہ لمبی کرنٹمیلیس = ملیس ()؛ اگر (موجودہ ملز - پچھلا میلیس> = وقفہ) { پچھلا میلیس = موجودہ ملز؛ // آخری بار جب آپ ایل ای ڈی سیریل کو پلکیں بچائیں۔ پرنٹ لین ("بزننگ شروع کریں")؛ if (ledState == LOW) {// اگر ایل ای ڈی بند ہے تو اسے آن کریں اور اس کے برعکس: ledstate = HIGH؛ } else { ledState = LOW؛ } ڈیجیٹل رائٹ (لیڈپین ، لیڈ اسٹیٹ)؛ } } ورنہ اگر (pushpressed == 1) { Serial.println ("pushpressed سچا ہے")؛ ledstate = LOW؛ ڈیجیٹل رائٹ (لیڈپین ، لیڈ اسٹیٹ)؛ } }
اس فنکشن کا استعمال صارف کے منتخب کردہ ٹائم سلاٹ کا موازنہ کرنے کے لئے کیا جاتا ہے جو صبح 8 بجے ہوتا ہے اور بززر کو گونجنے اور ایل ای ڈی کو پلکنا شروع کردیتی ہے جب تک کہ صارف اسٹاپ پش بٹن پریس نہ کرے۔ اسی طرح شام 2 بجے () اور رات 8 بجے تک باطل کاموں کو بجر شروع کرنے کے لئے استعمال کیا جاتا ہے اور شام 2 بجکر 8 منٹ پر رہتا ہے۔
باطل at8am () {// فنکشن 8am ڈیٹ ٹائم اب بجنا شروع کرنا = rtc. હવે ()؛ اگر (INT (now.hour ())> = buzz8amHH) { تو (INT (now.minute ())> = buzz8amMM) { تو (INT (now.second ())> buzz8amSS) { ////// ///////////////////////////////////////////////// آغاز بز () ؛ ////////////////////////////////////////////////////// /// } } } }
اس طرح آپ اردوینو کا استعمال کرتے ہوئے اپنی خودکار دواؤں کی یاد دہانی آسانی سے کر سکتے ہیں۔ آپ ESP8266 کو ارڈینو کے ساتھ IOT پروجیکٹ بنانے کے لئے بھی استعمال کرسکتے ہیں جو صارف کو ای میل الرٹ بھیجنے کے قابل ہوگا۔
مکمل کوڈ اور مظاہرے کی ویڈیو نیچے دی گئی ہے۔