আরডুইনো ব্যবহার করে 433 মেগাহার্টজ আরএফ লিংক ব্যবহার করে ওয়্যারলেস থার্মোমিটার

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





এই পোস্টে আমরা একটি আরডিনো ভিত্তিক ওয়্যারলেস থার্মোমিটার তৈরি করতে যা যা ঘরের তাপমাত্রা এবং বাহ্যিক পরিবেষ্টনের তাপমাত্রা পর্যবেক্ষণ করতে পারে। ডেটাটি 433 মেগাহার্টজ আরএফ লিঙ্কের মাধ্যমে প্রেরণ এবং গৃহীত হয়।

433MHz আরএফ মডিউল এবং ডিএইচটি 11 সেন্সর ব্যবহার করে

প্রস্তাবিত প্রকল্পটি আরডিনোকে মস্তিষ্ক এবং হৃদয় হিসাবে ব্যবহার করে 433 মেগাহার্টজ ট্রান্সমিটার / রিসিভার মডিউল ।



প্রকল্পটি দুটি পৃথক সার্কিট বিভক্ত করা হয়েছে, একটি 433 মেগাহার্টজ রিসিভার, এলসিডি ডিসপ্লে এবং ডিএইচটি 11 সেন্সর যা ঘরের ভিতরে রাখা হবে এবং এছাড়াও ঘরের তাপমাত্রা পরিমাপ করে ।

অন্য একটি সার্কিটের ৪৩৩ মেগাহার্টজ ট্রান্সমিটার রয়েছে, ডিএইচটি 11 সেন্সর বাইরে পরিবেষ্টনের তাপমাত্রা পরিমাপ করার জন্য। উভয় সার্কিটের একটি করে আরডুইনো রয়েছে।



ঘরের ভিতরে রাখা সার্কিটটি এলসিডিতে অভ্যন্তরীণ এবং বাহ্যিক তাপমাত্রার রিডিংগুলি প্রদর্শন করবে।

এখন আসুন 433 মেগাহার্টজ ট্রান্সমিটার / রিসিভার মডিউলটি একবার দেখে নেওয়া যাক।

433 মেগাহার্টজ ট্রান্সমিটার / রিসিভার মডিউল।

ট্রান্সমিটার এবং রিসিভার মডিউলগুলি উপরে দেখানো হয়েছে এটি সিমপ্লেক্স যোগাযোগের (এক উপায়) সক্ষম। রিসিভারের 4 টি পিন ভিসি, জিএনডি এবং ডেটা পিন রয়েছে। দুটি ডেটা পিন রয়েছে, সেগুলি একই এবং আমরা দুটি পিনের দুটি থেকে ডেটা আউটপুট করতে পারি।

ট্রান্সমিটারটি আরও সহজ এটিতে কেবল ভিসি, জিএনডি এবং ডেটা ইনপুট পিন রয়েছে। আমাদের উভয় মডিউলের সাথে একটি অ্যান্টেনা সংযোগ করতে হবে যা নিবন্ধের শেষে বর্ণিত হয়েছে, তাদের মধ্যে অ্যান্টেনার যোগাযোগ ছাড়াই কয়েক ইঞ্চি ছাড়াই প্রতিষ্ঠিত হবে না।

এখন আসুন দেখুন এই মডিউলগুলি কীভাবে যোগাযোগ করে।

এখন ধরে নিন যে আমরা ট্রান্সমিটারের ডেটা ইনপুট পিনে 100Hz এর ঘড়ির নাড়িটি প্রয়োগ করছি। গ্রহীতা রিসিভারের ডেটা পিনে সিগন্যালের সঠিক প্রতিলিপি পাবেন।

এটা সহজ? হ্যাঁ ... তবে এই মডিউলটি AM এ কাজ করে এবং শব্দে সংবেদনশীল। লেখকের পর্যবেক্ষণ থেকে যদি ট্রান্সমিটারের ডেটা পিনটি 250 মিলিসেকেন্ডের বেশি কোনও সংকেত ছাড়াই ছেড়ে দেয় তবে রিসিভার ডেটা আউটপুট পিন এলোমেলো সিগন্যাল তৈরি করে।

সুতরাং, এটি কেবল অ-সমালোচনামূলক ডেটা সংক্রমণের জন্য উপযুক্ত। তবে এই প্রকল্পটি এই মডিউলটির সাথে খুব ভালভাবে কাজ করে।

এখন যাক স্কিমেটিক্স এ এগিয়ে চলুন।

প্রাপ্তি:


আরডুইনো থেকে এলসিডি ডিসপ্লে সংযোগ। 10 কে পোটেনিওমিটার

উপরের সার্কিটটি আরডুইনো থেকে এলসিডি ডিসপ্লে সংযোগ। এলসিডি ডিসপ্লেটির বিপরীতে সামঞ্জস্য করার জন্য 10 কে পোটেন্টিওমিটার সরবরাহ করা হয়।

ওয়্যারলেস থার্মোমিটার 433 মেগাহার্টজ আরএফ লিংক এবং আরডুইনো ব্যবহার করে

উপরেরটি হ'ল রিসিভার সার্কিট। এলসিডি ডিসপ্লেটি এই আরডুইনোর সাথে সংযুক্ত হওয়া উচিত।

কোডটি সংকলনের আগে দয়া করে নিম্নলিখিত লাইব্রেরি ফাইলগুলি ডাউনলোড করুন

রেডিও হেড: 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-----//

ট্রান্সমিটার:

ওয়্যারলেস থার্মোমিটার ট্রান্সমিটার

উপরেরটি ট্রান্সমিটারের জন্য স্কিমেটিক, যা রিসিভার হিসাবে মোটামুটি সহজ। এখানে আমরা আরেকটি আরডুইনো বোর্ড ব্যবহার করছি। ডিএইচটি 11 সেন্সরটি পরিবেশের তাপমাত্রার বাইরে বোঝা যাবে এবং রিসিভার মডিউলে ফিরে পাঠাবে।

ট্রান্সমিটার এবং রিসিভারের মধ্যে দূরত্ব 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 মেগাহার্টজ আরএফ অ্যান্টেনা

একটি একক কোর তার ব্যবহার করুন যা এই কাঠামোটিকে সমর্থন করার জন্য যথেষ্ট দৃur় হওয়া উচিত। আপনি সলডার যোগ দেওয়ার জন্য নীচে নীচে সরানো ইনসুলেশন সহ উত্তাপিত তামার তারও ব্যবহার করতে পারেন। এর দুটি তৈরি করুন, একটি ট্রান্সমিটারের জন্য এবং অন্যটি রিসিভারের জন্য।

আরডুইনো এবং 433 মেগাহার্টজ আরএফ লিঙ্ক ব্যবহার করে লেখকের ওয়্যারলেস থার্মোমিটার প্রোটোটাইপ

ওয়্যারলেস থার্মোমিটার প্রোটোটাইপ 433 মেগাহার্টজ আরএফ লিংক এবং আরডুইনো ব্যবহার করে


পূর্ববর্তী: জল স্তর নিয়ামক জন্য বিরোধী ক্ষয় অনুসন্ধান পরবর্তী: L293 কোয়াড হাফ-এইচ ড্রাইভার আইসি পিনআউট, ডেটাশিট, অ্যাপ্লিকেশন সার্কিট