ارڈوینو کا استعمال کرتے ہوئے 433 میگاہرٹز آریف لنک کا استعمال کرتے ہوئے وائرلیس تھرمامیٹر

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اس پوسٹ میں ہم اردوینو پر مبنی وائرلیس ترمامیٹر تعمیر کرنے جارہے ہیں جو کمرے کے درجہ حرارت اور بیرونی محیطی درجہ حرارت کی نگرانی کرسکتا ہے۔ ڈیٹا کو 433 میگا ہرٹز آر ایف لنک کے ذریعے منتقل اور موصول ہوتا ہے۔

433MHz آر ایف ماڈیول اور DHT11 سینسر کا استعمال کرتے ہوئے

مجوزہ پروجیکٹ ارڈینو کو دماغ اور قلب کے طور پر استعمال کرتا ہے 433 میگا ہرٹز ٹرانسمیٹر / وصول کنندہ ماڈیول .



اس منصوبے کو دو الگ الگ سرکٹس میں تقسیم کیا گیا ہے ، ایک میں 433 میگا ہرٹز رسیور ، LCD ڈسپلے اور DHT11 سینسر ہے جو کمرے کے اندر بھی رکھا جائے گا۔ کمرے کے درجہ حرارت کی پیمائش .

ایک اور سرکٹ میں 433 میگا ہرٹز ٹرانسمیٹر ہے ، ڈی ایچ ٹی 11 سینسر محیط درجہ حرارت سے باہر کی پیمائش کے ل.۔ سرکٹ دونوں میں ایک ایک ادوینو ہے۔



کمرے کے اندر رکھا سرکٹ LCD پر اندرونی اور بیرونی درجہ حرارت کی ریڈنگ کو ظاہر کرے گا۔

آئیے 433 میگا ہرٹز ٹرانسمیٹر / وصول کنندہ ماڈیول پر ایک نظر ڈالیں۔

433 میگا ہرٹز ٹرانسمیٹر / وصول کنندہ ماڈیول۔

ٹرانسمیٹر اور وصول کرنے والے ماڈیول اوپر دکھائے گئے ہیں جو سادہ لوح رابطے کی صلاحیت رکھتا ہے (ایک راستہ)۔ وصول کنندہ کے پاس 4 پنوں وی سی سی ، جی این ڈی اور ڈیٹا پن ہیں۔ ڈیٹا کے دو پن ہیں ، وہ ایک جیسے ہیں اور ہم دو پنوں میں سے کسی ایک سے ڈیٹا آؤٹ پٹ کرسکتے ہیں۔

ٹرانسمیٹر بہت آسان ہے اس میں صرف وی سی سی ، جی این ڈی اور ڈیٹا ان پٹ پن ہے۔ ہمیں اینٹینا کو دونوں ماڈیولز سے جوڑنا ہے جو مضمون کے آخر میں بیان کیا گیا ہے ، بغیر اینٹینا مواصلات کچھ انچوں کے فاصلے پر قائم نہیں ہوگا۔

اب آئیے دیکھتے ہیں کہ یہ ماڈیول کس طرح بات چیت کرتے ہیں۔

اب فرض کریں کہ ہم ٹرانسمیٹر کے ڈیٹا ان پٹ پن پر 100Hz کی گھڑی کی نبض لاگو کر رہے ہیں۔ وصول کنندگان کو وصول کنندہ کے ڈیٹا پن پر سگنل کی عین مطابق نقل ملے گی۔

یہ آسان ہے؟ ہاں… لیکن یہ ماڈیول AM پر کام کرتا ہے اور شور کے لئے حساس ہوتا ہے۔ مصنف کے مشاہدے سے ، اگر ٹرانسمیٹر کا ڈیٹا پن 250 ملی سیکنڈ سے زیادہ کے لئے بغیر کسی سگنل کے چھوڑ دیا جاتا ہے تو ، وصول کنندہ ڈیٹا آؤٹ پٹ پن بے ترتیب سگنل تیار کرتا ہے۔

لہذا ، یہ صرف غیر اہم ڈیٹا منتقل کرنے کے لئے موزوں ہے۔ تاہم یہ پروجیکٹ اس ماڈیول کے ساتھ بہت بہتر کام کرتا ہے۔

اب چلیں حکمت عملی کی طرف۔

وصول کنندہ:


LCD ڈسپلے کنکشن سے arduino. 10K پوٹینومیٹر

مذکورہ بالا سرکٹ یردوینو سے LCD ڈسپلے کنکشن ہے۔ 10 K پوٹینومیٹر LCD ڈسپلے کے برعکس ایڈجسٹ کرنے کے لئے فراہم کیا گیا ہے۔

وائرلیس تھرمامیٹر 433 میگا ہرٹز آر ایف لنک اور ارڈینو کا استعمال کرتے ہوئے

مندرجہ بالا وصول کنندہ سرکٹ ہے۔ LCD ڈسپلے کو اس ارڈینو سے منسلک کیا جانا چاہئے۔

براہ کرم کوڈ کو مرتب کرنے سے پہلے درج ذیل لائبریری فائلیں ڈاؤن لوڈ کریں

ریڈیو ہیڈ: github.com/PaulStoffregen/RadioHead

ڈی ایچ ٹی سینسر لائبریری: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

وصول کنندہ کے لئے پروگرام:

//--------Program Developed by R.Girish-----//
#include
#include
#include
#include
#define DHTxxPIN A0
LiquidCrystal lcd(12,11,5,4,3,2)
RH_ASK driver(2000, 7, 9, 10)
int ack = 0
dht DHT
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
if (!driver.init())
Serial.println('init failed')
}
void loop()
{
ack = 0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack = 1
lcd.setCursor(0,0)
lcd.print('INSIDE:')
lcd.print('NO DATA')
delay(1000)
break
}
if(ack == 0)
{
lcd.setCursor(0,0)
lcd.print('INSIDE:')
lcd.print(DHT.temperature)
lcd.print(' C')
delay(2000)
}
uint8_t buf[RH_ASK_MAX_MESSAGE_LEN]
uint8_t buflen = sizeof(buf)
if (driver.recv(buf, &buflen))
{
int i
String str = ''
for(i = 0 i {
str += (char)buf[i]
}
lcd.setCursor(0,1)
lcd.print('OUTSIDE:')
lcd.print(str)
Serial.println(str)
delay(2000)
}
}
//--------Program Developed by R.Girish-----//

ٹرانسمیٹر:

وائرلیس تھرمامیٹر ٹرانسمیٹر

مندرجہ بالا ٹرانسمیٹر کے لئے اسکیماتی ہے ، جو وصول کرنے والے کی طرح کافی آسان ہے۔ یہاں ہم ایک اور ارڈینو بورڈ استعمال کررہے ہیں۔ DHT11 سینسر محیطی درجہ حرارت سے باہر محسوس کرے گا اور وصول کنندگان کو واپس بھیج دے گا۔

ٹرانسمیٹر اور وصول کرنے والے کے درمیان فاصلہ 10 میٹر سے زیادہ نہیں ہونا چاہئے۔ اگر ان کے درمیان کوئی رکاوٹیں ہیں تو ، ٹرانسمیشن کی حد میں کمی آسکتی ہے۔

ٹرانسمیٹر کے لئے پروگرام:

//------Program Developed by R.Girish----//
#include
#include
#define DHTxxPIN A0
#include
int ack = 0
RH_ASK driver(2000, 9, 2, 10)
dht DHT
void setup()
{
Serial.begin(9600)
if (!driver.init())
Serial.println('init failed')
}
void loop()
{
ack = 0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack = 1
const char *temp = 'NO DATA'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
break
}
if(ack == 0)
{
if(DHT.temperature == 15)
{
const char *temp = '15.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 16)
{
const char *temp = '16.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 17)
{
const char *temp = '17.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 18)
{
const char *temp = '18.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 19)
{
const char *temp = '19.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 20)
{
const char *temp = '20.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 21)
{
const char *temp = '21.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 22)
{
const char *temp = '22.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 23)
{
const char *temp = '23.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 24)
{
const char *temp = '24.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 25)
{
const char *temp = '25.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 26)
{
const char *temp = '26.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 27)
{
const char *temp = '27.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 28)
{
const char *temp = '28.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 29)
{
const char *temp = '29.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 30)
{
const char *temp = '30.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 31)
{
const char *temp = '31.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 32)
{
const char *temp = '32.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 33)
{
const char *temp = '33.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 34)
{
const char *temp = '34.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 35)
{
const char *temp = '35.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 36)
{
const char *temp = '36.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 37)
{
const char *temp = '37.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 38)
{
const char *temp = '38.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 39)
{
const char *temp = '39.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 40)
{
const char *temp = '40.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 41)
{
const char *temp = '41.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 42)
{
const char *temp = '42.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 43)
{
const char *temp = '43.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 44)
{
const char *temp = '44.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
delay(500)
if(DHT.temperature == 45)
{
const char *temp = '45.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 46)
{
const char *temp = '46.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 47)
{
const char *temp = '47.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 48)
{
const char *temp = '48.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 49)
{
const char *temp = '49.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
if(DHT.temperature == 50)
{
const char *temp = '50.00 C'
driver.send((uint8_t *)temp, strlen(temp))
driver.waitPacketSent()
}
delay(500)
}
}
//------Program Developed by R.Girish----//

اینٹینا کی تعمیر:

اگر آپ اس کا استعمال کرتے ہوئے منصوبے بنا رہے ہیں 433 میگاہرٹز ماڈیولز ، اچھی حد کے لئے نیچے کی تعمیری تفصیلات پر عمل کریں۔

433 میگاہرٹز آریف اینٹینا

ایک سنگل تار کا استعمال کریں جو اس ڈھانچے کی تائید کے ل enough کافی مضبوط ہونا چاہئے۔ آپ سولڈر میں شامل ہونے کے لئے نیچے سے ہٹائے گئے موصلیت کے ساتھ موصل تانبے کے تار کا بھی استعمال کرسکتے ہیں۔ ان میں سے دو بنائیں ، ایک ٹرانسمیٹر کے لئے اور دوسرا وصول کنندہ کے لئے۔

مصنف کا وائرلیس تھرمامیٹر پروٹو ٹائپ Ardino اور 433 میگاہرٹز آریف کا استعمال کرتے ہوئے لنک:

وائرلیس تھرمامیٹر پروٹو ٹائپ 433 میگا ہرٹز آر ایف لنک اور آرڈوینو کا استعمال کرتے ہوئے


پچھلا: پانی کی سطح کے کنٹرولر کے لئے اینٹی سنکنرن تحقیقات اگلا: L293 کواڈ نصف ایچ ڈرائیور آایسی پن آؤٹ ، ڈیٹاشیٹ ، درخواست سرکٹ