- مطلوبہ مواد:
- ACS712 موجودہ سینسر کا کام:
- سرکٹ ڈایاگرام
- کوڈ اور وضاحت:
- بجلی کی کھپت کی نگرانی کے لئے Android اپلی کیشن:
ہم سب بجلی کے انرجی میٹرز کے بارے میں جانتے ہیں جو بجلی کے استعمال کو ماپنے کے ل everyone ہر ایک کے گھر یا دفاتر میں نصب ہوتے ہیں۔ ہر مہینے کے آخر میں ، ہم میں سے بہت سے لوگ بجلی کے زیادہ سے زیادہ بل کے بارے میں پریشان رہتے ہیں اور ہمیں ایک بار بعد میں انرجی میٹر دیکھنا پڑتا ہے۔ لیکن کیا ہوگا اگر ہم دنیا کے کہیں سے بھی اپنے بجلی کے استعمال کی نگرانی کرسکیں اور جب آپ کی توانائی کی کھپت ایک حد تک پہنچ جائے تو ہم ایس ایم ایس / ای میل حاصل کریں۔ ہم یہاں انرجی میٹر کا IOT پر مبنی پروجیکٹ بنا رہے ہیں۔
اس سے قبل ہم نے انرجی میٹر سرکٹ بنایا ہے جو آپ کو جی ایس ایم ماڈیول کے ذریعے بل کے بارے میں ایس ایم ایس بھیجتا ہے۔ اس پروجیکٹ میں ہم ارڈینو اور ای ایس پی Wi Wi66 Wi وائی فائی ماڈیول کا استعمال کرتے ہوئے ایک اسمارٹ بجلی کا انرجی میٹر بناتے ہیں جو آپ کو نہ صرف آپ کے بجلی کے بل کا ایس ایم ایس / ای میل بھیج سکتا ہے بلکہ آپ کبھی بھی اور دنیا کے کہیں سے بھی توانائی کے استعمال کی نگرانی کرسکتے ہیں۔ یہاں ہم نے توانائی کی کھپت کی پیمائش کے لئے موجودہ سینسر ACS712 کا استعمال کیا ہے ، ہم اس کے بارے میں جلد ہی تبادلہ خیال کریں گے۔
ہم اپنے وائی فائی کو ایس ایم ایس / ای میل اطلاعات سے مربوط کرنے کے لئے آئی ایف ٹی ٹی ٹی پلیٹ فارم کی مدد لیں گے ۔ ہم توانائی کے استعمال کی نگرانی کے لئے ایم کیوٹی ٹی ڈیش بورڈ اینڈروئیڈ ایپ بھی استعمال کریں گے ۔ تو شروع کریں….
مطلوبہ مواد:
- ارڈینو اونو
- ESP12 / نوڈیم سی یو
- ACS712-30Amp موجودہ سینسر
- کوئی AC سامان
- مرد-خواتین تاروں
ACS712 موجودہ سینسر کا کام:
اس سے پہلے کہ ہم اس منصوبے کی تعمیر شروع کریں ہمارے لئے ACS712 موجودہ سینسر کے کام کو سمجھنا بہت ضروری ہے کیونکہ یہ اس منصوبے کا کلیدی جزو ہے۔ حالیہ خاص طور پر اے سی کرنٹ کی پیمائش کرنا ایک دشوار کام ہوتا ہے جس کی وجہ سے اس کے ساتھ ساتھ اس میں غلط تنہائی کی پریشانی وغیرہ ہوتی ہے۔ لیکن ، اس ACS712 ماڈیول کی مدد سے جو الیگرو چیز کے ذریعہ تیار کیا گیا تھا ، بہت آسان ہو گیا ہے۔
یہ ماڈیول ہال اثر کے اصول پر کام کرتا ہے ، جسے ڈاکٹر ایڈون ہال نے دریافت کیا تھا۔ اس کے اصول کے مطابق ، جب موجودہ لے جانے والے موصل کو مقناطیسی فیلڈ میں رکھا جاتا ہے تو ، موجودہ اور مقناطیسی فیلڈ دونوں کی سمتوں پر کھڑے اس کے کناروں کے پار ایک وولٹیج پیدا ہوتا ہے۔ آئیے ہم اس تصور میں زیادہ گہرائی میں نہ آجائیں لیکن ، ہم موجودہ ہیکل سنسر کا استعمال کرتے ہوئے موجودہ محرک کے گرد مقناطیسی میدان کی پیمائش کریں۔ یہ پیمائش ملی وولٹ کے لحاظ سے ہوگی جسے ہم ہال وولٹیج کہتے ہیں۔ یہ ناپنے والا ہال وولٹیج موجودہ کے متناسب ہے جو کنڈیکٹر کے ذریعے بہتا تھا۔
ACS712 کرنٹ سینسر کو استعمال کرنے کا سب سے بڑا فائدہ یہ ہے کہ AC اور DC دونوں کی پیمائش کی جاسکتی ہے اور یہ بوجھ (AC / DC بوجھ) اور پیمائش یونٹ (مائکروکانٹرولر حصہ) کے درمیان الگ تھلگ بھی فراہم کرتا ہے۔ جیسا کہ تصویر میں دکھایا گیا ہے کہ ہمارے پاس ماڈیول پر تین پن ہیں جو بالترتیب وی سی سی ، ووٹ اور گراؤنڈ ہیں۔
2 پن ٹرمینل بلاک وہ جگہ ہے جہاں موجودہ کیرینگ تار کو گزرنا چاہئے۔ ماڈیول + 5V پر کام کرتا ہے لہذا وی سی سی کو 5 وی سے چلنا چاہئے اور زمین کو سسٹم کے گراؤنڈ سے جوڑنا چاہئے۔ ووٹ پن میں 2500mV کا آفسیٹ وولٹیج ہوتا ہے ، مطلب یہ ہے کہ جب تار سے بہتا ہوا کوئی بہاؤ نہ ہو تب آؤٹ پٹ وولٹیج 2500mV ہوگی اور جب موجودہ بہاؤ مثبت ہے تو ، وولٹیج 2500mV سے زیادہ ہوگی اور جب موجودہ بہاؤ منفی ہے ، وولٹیج 2500mV سے کم ہوگی۔
ہم ماڈیول کے آؤٹ پٹ وولٹیج (وؤٹ) کو پڑھنے کے ل A ہم آردوینو کا ینالاگ پن استعمال کریں گے ، جب تار میں بہتا ہوا کوئی بہاؤ موجود نہ ہو تو وہ 512 (2500mV) ہوگا۔ موجودہ قدر منفی سمت میں بہتے ہی یہ قدر کم ہوگی اور موجودہ سمت مثبت بہاؤ کے ساتھ ساتھ اس میں اضافہ ہوگا۔ نیچے دیئے گئے جدول سے آپ کو یہ سمجھنے میں مدد ملے گی کہ کس طرح تار کے ذریعے بہتے بہاؤ کی بنیاد پر آؤٹ پٹ وولٹیج اور اے ڈی سی کی قیمت مختلف ہوتی ہے۔
ان اقدار کا حساب ACS712 کی ڈیٹا شیٹ میں دی گئی معلومات کی بنیاد پر کیا گیا تھا۔ آپ ذیل کے فارمولوں کا استعمال کرکے ان کا حساب بھی لگا سکتے ہیں:
ووٹ وولٹیج (ایم وی) = (اے ڈی سی ویلیو / 1023) * 5000 کرنٹ کے ذریعے تار (اے) = (ووٹ (ایم وی) -2500) / 185
اب ، جب ہم جانتے ہیں کہ ACS712 سینسر کس طرح کام کرتا ہے اور ہم اس سے کیا توقع کرسکتے ہیں۔ آئیے سرکٹ ڈایاگرام پر آگے بڑھیں۔
ہم نے اس سینسر کو پی آئی سی مائکروکونٹرولر اور ACS712 کا استعمال کرتے ہوئے ڈیجیٹل ایمی میٹر سرکٹ بنانے کیلئے استعمال کیا ہے۔
سرکٹ ڈایاگرام
مرحلہ 1: اپنی اسناد کے ساتھ IFTTT میں لاگ ان کریں۔
مرحلہ 2: میرے ایپلٹ پر ، نیو ایپلیٹ پر کلک کریں
مرحلہ 3: اس پر کلک کریں
مرحلہ 4: اڈا فروٹ تلاش کریں اور اس پر کلک کریں۔
مرحلہ 5: اڈا فروٹ IO پر مانیٹر فیڈ پر کلک کریں ۔
مرحلہ 6: انتخاب کریں فیڈ بل کے طور پر، تعلقات 'کے طور پر کے برابر' اور حد سے قدر ہے جس میں آپ کو ایک ای میل کرنا چاہتے ہیں. عمل کی تخلیق پر کلک کریں ۔ میں نے اپنی دہلیز ٹرگر ویلیو کے بطور 4 استعمال کیا ہے۔
مرحلہ 7: پر کلک کریں + کہ . جی میل کی تلاش کریں اور اس پر کلک کریں اور اپنے جی میل کی اسناد کے ساتھ لاگ ان کریں۔
مرحلہ 8: خود کو ای میل بھیجنے پر کلک کریں ۔
مرحلہ 9: جیسا کہ دکھایا گیا ہے اپنے موضوع اور جسم لکھیں اور تخلیق کے ل. پر کلک کریں۔
مرحلہ 10: آپ کا ' نسخہ ' تیار ہے۔ اس کا جائزہ لیں اور ختم پر کلک کریں۔
اب ، ہم ویب انضمام کے ساتھ ہو چکے ہیں۔ آئیے کوڈنگ حصے پر چلتے ہیں..
کوڈ اور وضاحت:
ہم ESP12 اور Ardino کے درمیان سیریل مواصلات استعمال کر رہے ہیں۔ لہذا ، ہمیں منتقل کرنے اور وصول کرنے کے لئے اردوینو اور نوڈیم سی یو دونوں کے لئے کوڈ لکھنا ہے۔
کوڈ برائے ٹرانسمیٹر پارٹ یعنی ارڈینو اونو کے لئے:
اس ٹیوٹوریل کے آخر میں مکمل آرڈینو کوڈ دیا گیا ہے۔ ہم موجودہ سینسر کیلئے لائبریری استعمال کریں گے جو اس لنک سے ڈاؤن لوڈ کی جاسکتی ہے۔
اس لائبریری میں موجودہ حساب کے ل in ان بلٹ فنکشن موجود ہے۔ آپ موجودہ کو حساب کتاب کرنے کے لئے اپنا کوڈ لکھ سکتے ہیں لیکن اس لائبریری میں موجودہ پیمائش کرنے والے الگورتھم موجود ہیں۔
پہلے ، موجودہ سینسر کیلئے لائبریری شامل کریں جیسے:
# ACC712.h شامل کریں
نوڈیمکیو کو بھیجنے کیلئے بجلی ذخیرہ کرنے کیلئے ایک صف تیار کریں۔
چار واٹ؛
پن A0 پر ACS712-30Amp استعمال کرنے کیلئے ایک مثال بنائیں۔ اگر آپ 20Amp یا 5 Amp مختلف حالت استعمال کررہے ہیں تو پہلے دلیل کو تبدیل کریں۔
ACS712 سینسر (ACS712_30A ، A0)؛
میں سیٹ اپ کی تقریب، NodeMCU ساتھ بات چیت کرنے کے 115200 کے بوڈ کی شرح کی وضاحت. درست ریڈنگ حاصل کرنے کے ل current موجودہ سینسر کیلیبریٹنگ کے ل sens سینسرکالیبریٹ () فنکشن کو کال کریں ۔
باطل سیٹ اپ () { سیریل.بیگین (115200)؛ سینسر.کالیبریٹ ()؛ }
میں لوپ تقریب، ہمیں کال کریں گے sensor.getCurrentAC ()؛ موجودہ قیمت اور فلوٹ متغیر I میں ذخیرہ کرنے کے لئے فنکشن۔ موجودہ حاصل کرنے کے بعد ، P = V * I فارمولہ استعمال کرکے طاقت کا حساب لگائیں۔ ہم 230V کا استعمال کرتے ہیں کیونکہ یہ یورپی ممالک میں عام معیار ہے ، اگر ضروری ہو تو اپنے مقامی کو تبدیل کریں
باطل لوپ () { فلوٹ وی = 230؛ فلوٹ I = سینسر.جیٹکورنسی ()؛ فلوٹ P = V * I؛
یہ لکیریں طاقت کو WH میں تبدیل کرتی ہیں۔
آخری_ وقت = موجودہ_ وقت؛ موجودہ_ وقت = ملیس ()؛ WH = WH + P * ((موجودہ_ٹائم_ٹائم_ٹائم) /3600000.0)؛
اب، ہم اس کو تبدیل کرنے کی ہے ا اسے اس کے لئے، NodeMCU کو بھیجنے کے لئے کردار فارم میں (dtostrf)؛ ایک فلوٹ کو چار سرے میں تبدیل کردے گا تاکہ اسے پھر آسانی سے پرنٹ کیا جاسکے۔
dtostrf (WH، 4، 2، واٹ)؛
شکل یہ ہے:
dtostrf (فلوٹوار ، اسٹرنگ لینجیتھ ڈینسمل پوائنٹ ، numVarsAfterDecimal ، Charbuf)؛
سیریل ڈاٹ رائٹ () کا استعمال کرتے ہوئے سیریل بفر پر اس کردار کی صف کو لکھیں ۔ تقریب یہ بھیجیں گے ا NodeMCU کو قدر.
سیریل.روائٹ (واٹ)؛ تاخیر (10000)؛ }
وصول کنندہ پارٹ نوڈیم سی یو ESP12 کے لئے کوڈ:
اس کے لئے ہمیں اڈی فروٹ ایم کیوٹی لائبریری کی ضرورت ہے جو اس لنک سے ڈاؤن لوڈ کی جاسکتی ہے۔
اب ، آرڈینوو IDE کھولیں۔ مثالوں پر جائیں -> اڈا فروٹ ایم کیوٹی ٹی لائبریری -> mqtt_esp8266
ہم اس کوڈ کو اپنی اے آئی او کیز اور وائی فائی سندوں اور ارڈینو سے آنے والے سیریل ڈیٹا کے مطابق ترمیم کریں گے۔
سب سے پہلے ، ہم نے ESP12 وائی فائی ماڈیول اور اڈا فروٹ ایم کیوٹیٹی کے لئے تمام لائبریریاں شامل کیں۔
# شامل کریں
ہم آپ کے Wi-Fi کے لئے SSID اور پاس ورڈ کی وضاحت کرتے ہیں ، جہاں سے آپ اپنی ESp-12e کو مربوط کرنا چاہتے ہیں۔
# ڈیفائن WLAN_SSID "xxxxxxxxx" # وضاحت WLAN_PASS "xxxxxxxxxxxxx"
اس حصے میں اڈا فروٹ سرور اور سرور پورٹ کی وضاحت کی گئی ہے جو بالترتیب "io.adafruit.com" اور "1883" کے طور پر طے کی گئی ہے۔
# تعی AIن AIO_SERVER "io.adaf فرو.com" # تعی AIن AIO_SERVERPORT 1883
ان فیلڈز کو اپنے صارف نام اور اے آئی او کیز سے تبدیل کریں جو آپ نے فیڈ بناتے وقت ایڈا فروٹ سائٹ سے نقل کیں۔
# تعی AIن AIO_USERNAME "********" # تعی AIن AIO_KEY "******************************"
پھر ہم نے ایم کیوٹی ٹی سرور سے رابطہ قائم کرنے کے لئے ایک ESP12 WiFiClient کلاس تشکیل دی ہے۔
وائی فائی کلائنٹ
وائی فائی کلائنٹ اور ایم کیوٹی ٹی سرور اور لاگ ان کی تفصیلات میں گزر کر ایم کیوٹی ٹی کلائنٹ کلاس مرتب کریں۔
اڈفروٹ_ ایم کیو ٹیT_ کلائنٹ ایم کی ٹی ٹی ((اور مؤکل ، AIO_SERVER ، AIO_SERVERPORT ، AIO_USERNAME ، AIO_KEY))؛
تبدیلیوں میں اشاعت کے لئے 'پاور' اور 'بل' نامی ایک فیڈ سیٹ اپ کریں۔
اڈفریٹ_ ایم کیو ٹیT_ پبلش پاور = اڈاف فروٹ_ ایم کیو ٹیT_ پبلش ((& mqtt، AIO_USERNAME "/ فیڈز / پاور"))؛ اڈاف فروٹ_یم کیوٹیT_ پبلش بل = اڈاف فروٹ_ ایم کیو ٹیT_Publish (& mqtt، AIO_USERNAME "/ فیڈس / بل")؛
میں سیٹ اپ کی تقریب، ہم وائی فائی رسائی نقطہ کرنے کے لئے وائی فائی ماڈیول رابطہ قائم.
باطل سیٹ اپ () { سیریل.بیگین (115200)؛ تاخیر (10)؛ سیریل.پرنٹلن (ایف ("اڈفریٹ ایم کیوٹی ٹی ڈیمو"))؛ // وائی فائی رسائی مقام سے رابطہ کریں۔ سیریل.پرنٹلن ()؛ سیریل.پرنٹلن ()؛ سیریل ڈاٹ پرنٹ ("مربوط ہو رہا ہے")؛ سیریل.پرنٹلن (WLAN_SSID)؛ WiFi.begin (WLAN_SSID، WLAN_PASS)؛ …. …. ... }
میں لوپ تقریب، ہم Arduino کی جانب سے آنے والی اعداد و شمار کے لئے چیک کریں اور AdaFruit IO کے لئے اس ڈیٹا شائع کریں گے.
باطل لوپ () { // کو یقینی بنائیں کہ ایم کیوٹی ٹی سرور سے رابطہ زندہ ہے (یہ پہلا // کنکشن بنائے گا اور منقطع ہونے پر خود بخود دوبارہ رابطہ ہوجائے گا)۔ مزید ذیل میں MQTT_connect // فنکشن کی تعریف ملاحظہ کریں۔ MQTT_connect ()؛ انٹ i = 0؛ فلوٹ واٹ 1؛
اس فنکشن سے آرڈینو سے آنے والے ڈیٹا کی جانچ پڑتال کی جاتی ہے اور سیریل ڈریڈ () فنکشن کا استعمال کرتے ہوئے اس ڈیٹا کو واٹ سرے میں اسٹور کیا جاتا ہے۔
اگر (سیریل۔ دستیاب ()> 0) { تاخیر (100)؛ // بھیجے گئے تمام سیریل کو ایک ساتھ وصول کرنے کی اجازت دیتا ہے جبکہ (سیریل۔ دستیاب) (&& i <5) att واٹ = سیریل.ریڈ ()؛ att واٹ = '\ 0'؛ }
atof () فنکشن حرفوں کو فلوٹ ویلیو میں تبدیل کریں اور ہم اس فلوٹ ویلیو کو دوسرے فلوٹ ایڈیشنل واٹ 1 میں اسٹور کریں گے۔
watt1 = atof (واٹ)؛
توانائی کے نرخوں کے ساتھ بجلی (WH) میں ضرب لگاتے ہوئے بل کی رقم کا حساب لگائیں اور KWh میں بجلی بنانے کے لئے اسے 1000 سے تقسیم کریں۔
بل_اماؤنٹ = واٹ 1 * (انرجی ٹیرف / 1000)؛ // 1 یونٹ = 1 کلو واٹ
اب ہم چیزیں شائع کرسکتے ہیں!
سیریل.پرنٹ (ایف ("\ n بھیجنے والی پاور والی"))؛ سیریل.پرنٹلن (واٹ 1)؛ سیریل.پرنٹ ("…")؛
کوڈ کا یہ ٹکڑا پاور فیڈ میں پاور ویلیوز کو شائع کررہا ہے
اگر (! پاور.پبلش (واٹ 1)) ial سیریل.پرنٹلن (ایف ("ناکام"))؛ } else { Serial.println (F ("ٹھیک ہے!"))؛ }
اس سے بل فیڈ پر بجلی کا بل شائع ہوگا ۔
اگر (! بل.پبلش (بل_اماؤنٹ)) { سیریل.پرنٹلن (ایف ("ناکام"))؛ } else { Serial.println (F ("ٹھیک ہے!"))؛ }
ہمارے بل کی رقم میں تیزی سے تبدیلی آسکتی ہے لیکن IFTTT ایپلٹ کو متحرک کرنے میں وقت لگتا ہے لہذا یہ لائنیں ٹرگر کرنے کیلئے وقت دیں گی تاکہ ہم دہلیز کا ای میل حاصل کرسکیں۔
جس بل پر آپ ای میل حاصل کرنا چاہتے ہو اس بل_اماؤنٹ ویلیو کو تبدیل کریں ۔ نیز ، IFTTT اڈا فروٹ IO سیٹ اپ میں بھی تبدیلی کریں۔
اگر (بل_اماؤنٹ == 4) { کے لئے (انٹرا i = 0؛ i <= 2؛ i ++) { بل.پبلش (بل_اماؤنٹ)؛ تاخیر (5000)؛ } bill_amount = 6؛ }
اس ٹیوٹوریل کے آخر میں اردوینو اور نوڈیم سی یو ESP12 کے لئے مکمل کوڈ دیا گیا ہے۔
اب ، دونوں بورڈز میں کوڈ اپ لوڈ کریں۔ اپنے ہارڈ ویئر کو جیسا کہ سرکٹ ڈایاگرام میں دکھایا گیا ہے اور io.adaf فرو.com کھولیں ۔ ابھی ابھی تیار کردہ ڈیش بورڈ کو کھولیں۔ آپ دیکھیں گے کہ بجلی کی کھپت اور بجلی کا بل تازہ کاری کر رہا ہے۔
جب آپ کا بل INR 4 تک پہنچ جائے گا تب آپ کو اس طرح کا ای میل ملے گا ۔
بجلی کی کھپت کی نگرانی کے لئے Android اپلی کیشن:
آپ اقدار کی نگرانی کے لئے اینڈروئیڈ ایپ استعمال کرسکتے ہیں۔ اس کے لئے ایم کیوٹی ٹی ڈیش بورڈ اینڈروئیڈ ایپ کو پلے اسٹور سے یا اس لنک سے ڈاؤن لوڈ کریں۔
io.adafruit.com کے ساتھ رابطہ قائم کرنے کے لئے ان اقدامات پر عمل کریں:
مرحلہ 1: ایپ کھولیں اور "+" نشان پر کلک کریں۔ اپنی مرضی کے مطابق کلائنٹ کی شناخت کو بھریں۔ سرور اور پورٹ ایک جیسے ہی رہتے ہیں جیسے اسکرین شاٹ میں دکھایا گیا ہے۔ ذیل میں دکھایا گیا ہے کہ آپ اڈاف فروٹ IO ڈیش بورڈ سے صارف نام اور پاس ورڈ (ایکٹیو کی) حاصل کریں گے۔
فعال کلید آپ کا پاس ورڈ ہے۔
مرحلہ 2: بجلی کا میٹر منتخب کریں اور سبسکرائب کو منتخب کریں ۔ رکنیت میں ، دوستانہ نام اور عنوان دیں۔ عنوان کی شکل 'آپ کا صارف نام' / فیڈز / 'فیڈ نام' ہے اور تخلیق پر کلک کریں۔
مرحلہ 3: اسی طرح ، بل فیڈ کے لئے سبسکرپشن بنائیں ۔
مرحلہ 4: چونکہ آپ کے ایپلائینسز میں توانائی کی کھپت ہوتی ہے ، پاور اور بل کے تحت تازہ ترین قدریں دکھائی جائیں گی ۔
اس طرح آپ سمارٹ بجلی کا انرجی میٹر تشکیل دے سکتے ہیں ، جس سے نہ صرف دنیا میں کہیں سے نگرانی کی جاسکتی ہے بلکہ جب آپ کے پاس بجلی کا زیادہ استعمال ہوتا ہے تو ای میل کو بھی متحرک کرسکتے ہیں۔
ہمارے تمام IOT پروجیکٹس کو بھی چیک کریں۔