اس پوسٹ میں ہم اردوینو پر مبنی وائرلیس ترمامیٹر تعمیر کرنے جارہے ہیں جو کمرے کے درجہ حرارت اور بیرونی محیطی درجہ حرارت کی نگرانی کرسکتا ہے۔ ڈیٹا کو 433 میگا ہرٹز آر ایف لنک کے ذریعے منتقل اور موصول ہوتا ہے۔
433MHz آر ایف ماڈیول اور DHT11 سینسر کا استعمال کرتے ہوئے
مجوزہ پروجیکٹ ارڈینو کو دماغ اور قلب کے طور پر استعمال کرتا ہے 433 میگا ہرٹز ٹرانسمیٹر / وصول کنندہ ماڈیول .
اس منصوبے کو دو الگ الگ سرکٹس میں تقسیم کیا گیا ہے ، ایک میں 433 میگا ہرٹز رسیور ، LCD ڈسپلے اور DHT11 سینسر ہے جو کمرے کے اندر بھی رکھا جائے گا۔ کمرے کے درجہ حرارت کی پیمائش .
ایک اور سرکٹ میں 433 میگا ہرٹز ٹرانسمیٹر ہے ، ڈی ایچ ٹی 11 سینسر محیط درجہ حرارت سے باہر کی پیمائش کے ل.۔ سرکٹ دونوں میں ایک ایک ادوینو ہے۔
کمرے کے اندر رکھا سرکٹ LCD پر اندرونی اور بیرونی درجہ حرارت کی ریڈنگ کو ظاہر کرے گا۔
آئیے 433 میگا ہرٹز ٹرانسمیٹر / وصول کنندہ ماڈیول پر ایک نظر ڈالیں۔
ٹرانسمیٹر اور وصول کرنے والے ماڈیول اوپر دکھائے گئے ہیں جو سادہ لوح رابطے کی صلاحیت رکھتا ہے (ایک راستہ)۔ وصول کنندہ کے پاس 4 پنوں وی سی سی ، جی این ڈی اور ڈیٹا پن ہیں۔ ڈیٹا کے دو پن ہیں ، وہ ایک جیسے ہیں اور ہم دو پنوں میں سے کسی ایک سے ڈیٹا آؤٹ پٹ کرسکتے ہیں۔
ٹرانسمیٹر بہت آسان ہے اس میں صرف وی سی سی ، جی این ڈی اور ڈیٹا ان پٹ پن ہے۔ ہمیں اینٹینا کو دونوں ماڈیولز سے جوڑنا ہے جو مضمون کے آخر میں بیان کیا گیا ہے ، بغیر اینٹینا مواصلات کچھ انچوں کے فاصلے پر قائم نہیں ہوگا۔
اب آئیے دیکھتے ہیں کہ یہ ماڈیول کس طرح بات چیت کرتے ہیں۔
اب فرض کریں کہ ہم ٹرانسمیٹر کے ڈیٹا ان پٹ پن پر 100Hz کی گھڑی کی نبض لاگو کر رہے ہیں۔ وصول کنندگان کو وصول کنندہ کے ڈیٹا پن پر سگنل کی عین مطابق نقل ملے گی۔
یہ آسان ہے؟ ہاں… لیکن یہ ماڈیول AM پر کام کرتا ہے اور شور کے لئے حساس ہوتا ہے۔ مصنف کے مشاہدے سے ، اگر ٹرانسمیٹر کا ڈیٹا پن 250 ملی سیکنڈ سے زیادہ کے لئے بغیر کسی سگنل کے چھوڑ دیا جاتا ہے تو ، وصول کنندہ ڈیٹا آؤٹ پٹ پن بے ترتیب سگنل تیار کرتا ہے۔
لہذا ، یہ صرف غیر اہم ڈیٹا منتقل کرنے کے لئے موزوں ہے۔ تاہم یہ پروجیکٹ اس ماڈیول کے ساتھ بہت بہتر کام کرتا ہے۔
اب چلیں حکمت عملی کی طرف۔
وصول کنندہ:
مذکورہ بالا سرکٹ یردوینو سے LCD ڈسپلے کنکشن ہے۔ 10 K پوٹینومیٹر LCD ڈسپلے کے برعکس ایڈجسٹ کرنے کے لئے فراہم کیا گیا ہے۔
مندرجہ بالا وصول کنندہ سرکٹ ہے۔ 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 میگاہرٹز ماڈیولز ، اچھی حد کے لئے نیچے کی تعمیری تفصیلات پر عمل کریں۔
ایک سنگل تار کا استعمال کریں جو اس ڈھانچے کی تائید کے ل enough کافی مضبوط ہونا چاہئے۔ آپ سولڈر میں شامل ہونے کے لئے نیچے سے ہٹائے گئے موصلیت کے ساتھ موصل تانبے کے تار کا بھی استعمال کرسکتے ہیں۔ ان میں سے دو بنائیں ، ایک ٹرانسمیٹر کے لئے اور دوسرا وصول کنندہ کے لئے۔
مصنف کا وائرلیس تھرمامیٹر پروٹو ٹائپ Ardino اور 433 میگاہرٹز آریف کا استعمال کرتے ہوئے لنک:
پچھلا: پانی کی سطح کے کنٹرولر کے لئے اینٹی سنکنرن تحقیقات اگلا: L293 کواڈ نصف ایچ ڈرائیور آایسی پن آؤٹ ، ڈیٹاشیٹ ، درخواست سرکٹ