সুচিপত্র:
- ধাপ 1: প্রকল্পের জন্য প্রয়োজনীয় জিনিস
- ধাপ 2: রাস্পবেরি পাইতে আরডুইনো আইডিই ডাউনলোড এবং ইনস্টল করুন
- ধাপ 3: Arduino এর জন্য কোড
- ধাপ 4: রাস্পবেরি পাই সেটআপ করুন
- ধাপ 5: পাইথন স্কিপ
- ধাপ 6: সার্কিট ডায়াগ্রাম
- ধাপ 7: ফলাফল
ভিডিও: রাস্পবেরি পাই এবং আরডুইনো ইউএনও ব্যবহার করে DHT11 ডেটা প্লট করুন: 7 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
এই নির্দেশযোগ্য ব্যাখ্যা করে কিভাবে আমি Arduino Uno এবং Raspberry Pi ব্যবহার করে তাপমাত্রা সেন্সর DHT11 ডেটা চক্রান্ত করি। এই তাপমাত্রায় সেন্সরটি Arduino Uno এর সাথে সংযুক্ত এবং Arduino Uno রাস্পবেরি পাই এর সাথে সিরিয়ালভাবে সংযুক্ত। রাস্পবেরি পাই সাইডে, ম্যাটপ্লটলিব, নম্পি এবং ড্রনও লাইব্রেরিগুলি গ্রাফ তৈরির জন্য ব্যবহৃত হয়।
ধাপ 1: প্রকল্পের জন্য প্রয়োজনীয় জিনিস
1. রাস্পবেরি পাই
2. Arduino Uno
3. DHT11 তাপমাত্রা সেন্সর
4. জাম্পার তারের
5. ব্রেডবোর্ড
ধাপ 2: রাস্পবেরি পাইতে আরডুইনো আইডিই ডাউনলোড এবং ইনস্টল করুন
দ্রষ্টব্য:- আপনি Arduino UNO- এ স্কেচ আপলোড করতে উইন্ডোজ, লিনাক্স বা ম্যাকের Arduino IDE ব্যবহার করতে পারেন।
প্রথম ধাপ হল রাস্পবেরি পাইতে সেই খোলা ব্রাউজারের জন্য আরডুইনো আইডিই ইনস্টল করা এবং নীচের দেওয়া লিঙ্কটি খুলুন
Arduino পূর্ববর্তী IDE
তারপর লিনাক্স এআরএম সংস্করণ ডাউনলোড করুন এবং কমান্ড ব্যবহার করে এটি বের করুন
tar -xf ফাইলের নাম
এক্সট্রাক্ট করার পর আপনি একটি নতুন ডিরেক্টরি দেখতে পাবেন। এখানে আমি arduino-1.8.2 IDE ব্যবহার করছি। তারপর কমান্ড ব্যবহার করে ডিরেক্টরিতে যান।
cd arduino-1.8.1
Arduino IDE চালানোর জন্য, arduino-1.8.2 ডিরেক্টরিতে এই কমান্ডটি ব্যবহার করুন
./arduino
লাইব্রেরি কিভাবে ব্যবহার করবেন
আরডুইনোতে যেকোন লাইব্রেরি ইনস্টল করার জন্য, কেবল লাইব্রেরি ডাউনলোড করুন এবং আরডুইনো 1.8.2 ==> লাইব্রেরি ফোল্ডারে পেস্ট করুন।
দ্রষ্টব্য:-নিশ্চিত করুন যে প্রাক্তন (DHT- সেন্সর) এর জন্য লাইব্রেরি ফোল্ডারে কোন (-) নেই। যদি কোন (-) থাকে, তার নাম পরিবর্তন করুন।
আমরা এই নির্দেশে দুটি লাইব্রেরি ব্যবহার করব, DHT_Sensor এবং Adafruit_Sensor
ধাপ 3: Arduino এর জন্য কোড
এখন, পাইথন এবং Arduino একসঙ্গে কথা বলা যাক। সিরিয়াল পোর্টে Arduino পাঠানোর ডেটা পেতে প্রথমে আমাদের একটি সহজ প্রোগ্রাম দরকার। নিম্নলিখিত প্রোগ্রামটি একটি সহজ প্রোগ্রাম যা Arduino গণনা এবং সিরিয়াল পোর্টে ডেটা পাঠাবে।
Arduino কোড
#অন্তর্ভুক্ত "DHT.h" float tempC; // সি ভাসা tempF মধ্যে পরিবর্তনশীল বা হোল্ডিং temp; // F ভাসমান আর্দ্রতায় তাপমাত্রা ধরে রাখার জন্য পরিবর্তনশীল; // চাপ পড়ার জন্য পরিবর্তনশীল
#DHTPIN 7 সংজ্ঞায়িত করুন // আমরা কোন ডিজিটাল পিনের সাথে সংযুক্ত
#DHTTYPE DHT11 // DHT 11 নির্ধারণ করুন
//#DHTTYPE DHT22 সংজ্ঞায়িত করুন // DHT 22 (AM2302), AM2321
//#DHTTYPE DHT21 সংজ্ঞায়িত করুন // DHT 21 (AM2301)
// ডিএইচটি সেন্সর শুরু করুন।
DHT dht (DHTPIN, DHTTYPE);
অকার্যকর সেটআপ () {Serial.begin (115200); // সিরিয়াল মনিটর চালু করুন
dht.begin (); // dht আরম্ভ করুন}
অকার্যকর লুপ () {tempC = dht.readTemperature (); // আপনার ভেরিয়েবল ঘোষণা করতে ভুলবেন না
আর্দ্রতা = dht.readHumidity (); // আর্দ্রতা পড়ুন
Serial.print (tempC);
সিরিয়াল.প্রিন্ট (",");
সিরিয়াল.প্রিন্ট (আর্দ্রতা);
সিরিয়াল.প্রিন্ট ("\ n"); // নতুন লাইনডাইয়ের জন্য (2000); // পড়ার মধ্যে বিরতি দিন। }
একবার স্কেচ কম্পাইল হয়ে গেলে বোর্ড এবং পোর্ট নির্বাচন করে আপলোড করুন।
ধাপ 4: রাস্পবেরি পাই সেটআপ করুন
একবার কোড আপলোড হয়ে গেলে, কিছু লাইব্রেরি ইনস্টল করুন যাতে আমরা ডেটার গ্রাফ তৈরি করতে পারি যা ক্রমাগত Arduino Uno থেকে আসছে।
1. PySerial একটি লাইব্রেরি যা বিভিন্ন ডিভাইসে সিরিয়াল সংযোগের জন্য সহায়তা প্রদান করে। এটি ইনস্টল করতে কমান্ড ব্যবহার করুন।
Sudo apt-get python-serial ইনস্টল করুন
2. Numpy একটি প্যাকেজ যা একটি বহু-মাত্রিক অ্যারে বস্তু এবং এটির সাথে যুক্ত দ্রুত গণিত ফাংশন সংজ্ঞায়িত করে। এটি রৈখিক বীজগণিত এবং এফএফটি (ফাস্ট ফুরিয়ার ট্রান্সফর্ম) এবং অত্যাধুনিক র্যান্ডম-সংখ্যা প্রজন্মের জন্য সহজ রুটিন সরবরাহ করে। আপনি এটি অনেক উপায়ে ইনস্টল করতে পারেন হয় apt প্যাকেজ বা পিপ ব্যবহার করুন। এখানে আমি পিপ ব্যবহার করে ইনস্টল করছি প্রথমে আমাদের পিপ ইনস্টল করতে হবে
sudo apt-get python-pip python-dev build-essential ইনস্টল করুন
sudo pip numpy ইনস্টল করুন
অথবা আপনি যদি apt প্যাকেজ ব্যবহার করতে চান
sudo apt python-numpy ইনস্টল করুন
3. ম্যাটপ্লটলিব একটি 2 ডি প্লটিং লাইব্রেরি যা টকিন্টার, wxPython, Qt, বা GTK+এর মত সাধারণ-উদ্দেশ্য GUI টুলকিট ব্যবহার করে অ্যাপ্লিকেশনগুলিতে প্লট এম্বেড করার জন্য একটি অবজেক্ট-ভিত্তিক API প্রদান করে। এটি ইনস্টল করার জন্য কমান্ড ব্যবহার করুন
sudo pip matplotlib ইনস্টল করুন
অথবা
sudo apt python-matplotlib ইনস্টল করুন
4. আমরা MATLAB- এ "imshow" ব্যবহার করে ড্রোনউ সাধারণত প্রতিটি পুনরাবৃত্তির পরে ফলাফল দেখতে ব্যবহৃত হয়। এটি ইনস্টল করতে কমান্ড ব্যবহার করুন
sudo pip install drawnow
ধাপ 5: পাইথন স্কিপ
পরবর্তী ধাপ হল একটি পাইথন স্ক্রিপ্ট লিখার জন্য আপনি এটি লিখতে যে কোন সম্পাদক ব্যবহার করতে পারেন।
1. একটি গ্রাফে প্লট ডেটা
আমদানি সিরিয়াল # আমদানি সিরিয়াল লাইব্রেরি
আমদানি numpy # আমদানি numpy
plt #import matplotlib লাইব্রেরি হিসাবে matplotlib.pyplot আমদানি করুন
drawnow আমদানি থেকে *
tempC = #খালি অ্যারেহুমিডিটি =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # ইন্টারেক্টিভ মোড লাইভ ডেটাকাউন্ট = 0 প্লট করার জন্য
def makeFig (): #একটি ফাংশন তৈরি করুন যা আমাদের কাঙ্ক্ষিত প্লট তৈরি করে
plt.ylim (20, 30) #সেট y মিনিট এবং সর্বোচ্চ মান
plt.title ('রিয়েল টাইম DHT11 ডেটা') #শিরোনামটি প্লট করুন
plt.grid (সত্য) #গ্রিড চালু করুন
plt.ylabel ('Temp C') #সেট ylabel
plt.plot (tempC, 'b^-', label = 'Degree C') #প্লট তাপমাত্রা
plt.legend (loc = 'উপরের ডান') #কিংবদন্তি প্লট করুন
plt2 = plt.twinx () #একটি দ্বিতীয় y অক্ষ তৈরি করুন
plt.ylim (50, 70) #দ্বিতীয় y অক্ষের সীমা নির্ধারণ করুন
plt2.plot (আর্দ্রতা, 'g*-', লেবেল = 'আর্দ্রতা') #প্লট চাপের তথ্য
plt2.set_ylabel ('আর্দ্রতা') #লেবেল দ্বিতীয় y অক্ষ
plt2.ticklabel_format (useOffset = মিথ্যা)
plt2.legend (loc = 'উপরের বাম')
while True: # while লুপ যে loops চিরতরে
while (arduino.inWaiting () == 0): #ডেটা না হওয়া পর্যন্ত এখানে অপেক্ষা করুন
#কিছু করো না
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #এটি একটি অ্যারেতে বিভক্ত করুন
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
আর্দ্রতা।
অঙ্কন (makeFig)
বিরতি (.000001)
count = count+1 if (count> 20): #শুধুমাত্র শেষ 20 টি ডেটা নিন যদি ডেটা বেশি হয় তবে এটি প্রথমে পপ হবে
tempC.pop (0)
আর্দ্রতা পপ (0)
2. আর্দ্রতা এবং তাপমাত্রা আলাদাভাবে চক্রান্ত করা
আমদানি সিরিয়াল # আমদানি সিরিয়াল লাইব্রেরি
আমদানি numpy # আমদানি numpy
plt #import matplotlib লাইব্রেরি হিসাবে matplotlib.pyplot আমদানি করুন
drawnow আমদানি থেকে *
tempC = #ফাঁকা অ্যারে
আর্দ্রতা =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #সিরিয়াল পোর্ট যার সাথে arduino সংযুক্ত এবং Baudrate
plt.ion () #matplotlib বলুন আপনি লাইভ ডেটা চক্রান্ত করতে ইন্টারেক্টিভ মোড চান
def CreatePlot (): #একটি ফাংশন তৈরি করুন যা আমাদের কাঙ্ক্ষিত প্লট তৈরি করে
plt.subplot (2, 1, 1) #উচ্চতা, প্রস্থ, প্রথম চক্রান্ত
plt.ylim (22, 34) #সেট y মিনিট এবং সর্বোচ্চ মান
plt.title ('রিয়েল টাইম DHT11 ডেটা') #শিরোনামটি প্লট করুন
plt.grid (সত্য) #গ্রিড চালু করুন
plt.ylabel ('Temp C') #ylabels সেট করুন
plt.plot (tempC, 'b^-', label = 'Degree C') #প্লট তাপমাত্রা
plt.legend (loc = 'উপরের কেন্দ্র') #কিংবদন্তি প্লট করুন
plt.subplot (2, 1, 2) # উচ্চতা, প্রস্থ, দ্বিতীয় চক্রান্ত
plt.grid (সত্য)
plt.ylim (45, 70) #দ্বিতীয় y অক্ষের সীমা নির্ধারণ করুন
plt.plot (আর্দ্রতা, 'g*-', লেবেল = 'আর্দ্রতা (g/m^3)') #প্লট আর্দ্রতা ডেটা
plt.ylabel ('আর্দ্রতা (g/m^3)') #লেবেল দ্বিতীয় y অক্ষ
plt.ticklabel_format (useOffset = মিথ্যা) #অটোস্কেল y অক্ষ বন্ধ করতে
plt.legend (loc = 'উপরের কেন্দ্র')
while True: # while লুপ যে loops চিরতরে
while (arduino.inWaiting () == 0): #অপেক্ষা করুন যতক্ষণ না ডাটা পাস হয় #কিছুই করবেন না
arduinoString = arduino.readline () #সিরিয়াল পোর্ট থেকে ডেটা পড়ুন
dataArray = arduinoString.split (',') #এটি একটি অ্যারেতে বিভক্ত করুন
temp = float (dataArray [0]) #প্রথম উপাদানটিকে ভাসমান সংখ্যায় রূপান্তর করুন এবং টেম্পারে রাখুন
hum = float (dataArray [1]) #দ্বিতীয় উপাদানটিকে ভাসমান সংখ্যায় রূপান্তর করুন এবং হাম দিন
tempC.append (temp) #টেম্প রিডিং যোগ করে আমাদের tempC অ্যারে তৈরি করুন
humid.append (hum) #হাম পড়া যোগ করে আমাদের আর্দ্রতা অ্যারে তৈরি করা
drawnow (CreatePlot)
বিরতি (.000001)
count = count+1
if (count> 20): #শুধুমাত্র শেষ 20 টি ডেটা নিন যদি ডেটা বেশি হয় তবে এটি প্রথমে পপ হবে
tempC.pop (0) # প্রথম উপাদান পপ আউট
আর্দ্রতা পপ (0)
ধাপ 6: সার্কিট ডায়াগ্রাম
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> আউট
প্রস্তাবিত:
লাইভ আরডুইনো ডেটা থেকে সুন্দর প্লট তৈরি করুন (এবং এক্সেলে ডেটা সংরক্ষণ করুন): 3 টি ধাপ
লাইভ Arduino ডেটা থেকে সুন্দর প্লট তৈরি করুন (এবং এক্সেল এ ডেটা সংরক্ষণ করুন): আমরা সবাই আমাদের P … লটার ফাংশন Arduino IDE তে খেলতে পছন্দ করি। পয়েন্ট যোগ করা হয় এবং এটি বিশেষ করে চোখের জন্য সুখকর নয়। Arduino IDE চক্রান্তকারী না
আর্ডুইনো ইউএনও এবং এসডি-কার্ড দিয়ে আর্দ্রতা এবং তাপমাত্রা রিয়েল টাইম ডেটা রেকর্ডার কিভাবে তৈরি করবেন - প্রোটিয়াসে DHT11 ডেটা-লগার সিমুলেশন: 5 টি ধাপ
আর্ডুইনো ইউএনও এবং এসডি-কার্ড দিয়ে আর্দ্রতা এবং তাপমাত্রা রিয়েল টাইম ডেটা রেকর্ডার কিভাবে তৈরি করবেন | প্রোটিয়াসে DHT11 ডেটা-লগার সিমুলেশন: ভূমিকা: হাই, এটি লিওনো মেকার, এখানে ইউটিউব লিঙ্ক রয়েছে। আমরা আরডুইনো দিয়ে সৃজনশীল প্রকল্প তৈরি করছি এবং এমবেডেড সিস্টেমে কাজ করছি।
আরডুইনো এবং পাইথনের আরডুইনো মাস্টার লাইব্রেরি ব্যবহার করে হালকা তীব্রতা প্লট করা: 5 টি ধাপ
আরডুইনো এবং পাইথনের আরডুইনো মাস্টার লাইব্রেরি ব্যবহার করে হালকা তীব্রতার প্লট করা: আরডুইনো একটি অর্থনৈতিক কিন্তু অত্যন্ত দক্ষ এবং কার্যকরী হাতিয়ার, এটিকে এমবেডেড সি -তে প্রোগ্রাম করা প্রকল্পগুলিকে ক্লান্তিকর করে তোলে! পাইথনের আরডুইনো_মাস্টার মডিউল এটিকে সহজ করে এবং আমাদের গণনা করতে দেয়, আবর্জনার মান অপসারণ করে
লগ ডেটা এবং NodeMCU, মাইএসকিউএল, পিএইচপি এবং Chartjs.org ব্যবহার করে একটি গ্রাফ অনলাইন প্লট করুন: 4 টি ধাপ
লগ ডেটা এবং NodeMCU, MySQL, PHP এবং Chartjs.org ব্যবহার করে একটি গ্রাফ অনলাইনে প্লট করুন: এই নির্দেশাবলী বর্ণনা করে যে কিভাবে আমরা একাধিক সেন্সর থেকে তথ্য সংগ্রহ করার জন্য নোড MCU বোর্ড ব্যবহার করতে পারি, এই ডেটা একটি হোস্ট করা PHP ফাইলে পাঠাতে পারি যা তারপর তথ্য যোগ করে একটি মাইএসকিউএল ডাটাবেস। তথ্যটি তখন গ্রাফ হিসাবে অনলাইনে দেখা যেতে পারে, chart.js.A ba ব্যবহার করে
কোডিং এবং অ্যান্ড্রয়েড অ্যাপ সহ ইউএনও আর 3, এইচসি -05 এবং এল 293 ডি মোটরশিল্ড ব্যবহার করে আরডুইনো 4 হুইল ড্রাইভ ব্লুটুথ আরসি কার: 8 টি ধাপ
কোডিং এবং অ্যান্ড্রয়েড অ্যাপ দিয়ে UNO R3, HC-05 এবং L293D মোটরশিল্ড ব্যবহার করে Arduino 4 হুইল ড্রাইভ ব্লুটুথ আরসি কার: আজ আমি আপনাকে HC 05, L293 মোটর শিল্ড ব্যবহার করে কিভাবে একটি arduino 4 চাকা ড্রাইভ ব্লুটুথ আরসি কার তৈরি করতে হয় সে সম্পর্কে বলব, 4 ডিসি মোটর, কোডিং এবং অ্যাপের সাথে অ্যান্ড্রয়েড গাড়ি নিয়ন্ত্রণ করার জন্য ব্যবহৃত উপাদান।