সুচিপত্র:

Inky_pHAT আবহাওয়া কেন্দ্র: 5 টি ধাপ
Inky_pHAT আবহাওয়া কেন্দ্র: 5 টি ধাপ

ভিডিও: Inky_pHAT আবহাওয়া কেন্দ্র: 5 টি ধাপ

ভিডিও: Inky_pHAT আবহাওয়া কেন্দ্র: 5 টি ধাপ
ভিডিও: Inky pHAT test - Raspberry Pi Zero 2024, নভেম্বর
Anonim
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন
Inky_pHAT আবহাওয়া স্টেশন

আমি এখানে একটি খুব সহজ এবং কমপ্যাক্ট, রাস্পবেরি পাই জিরো-ভিত্তিক আবহাওয়া স্টেশন বর্ণনা করতে চাই, যা একটি Pimoroni Inky pHAT e-paper/e-ink ডিসপ্লেতে BME280 তাপমাত্রা/চাপ/আর্দ্রতা সেন্সর দ্বারা পরিমাপ করা মান প্রদর্শন করে। Pi এর GPIO এর সাথে সেন্সর এবং pHAT এর সংযোগের অনুমতি দেওয়ার জন্য আমি একটি Pimorini Pico HAT হ্যাকারকে GPIO এবং ডিসপ্লের মধ্যে দুটি মহিলা হেডার যুক্ত করে রেখেছি। ডিভাইসটি বেশ কয়েকটি সেন্সর সংযুক্ত করতে ব্যবহৃত হয়েছে, তাই এখানে বর্ণিত BME280 সংস্করণটি কেবল একটি উদাহরণ।

এলসিডি ডিসপ্লে থেকে ভিন্ন, ই-কালি ডিসপ্লে ইমেজ ধরে রাখে এমনকি বিদ্যুৎ বন্ধ থাকলেও। অতএব এগুলি একটি খুব ভাল সমাধান যদি আপনি এমন তথ্য প্রদর্শন করতে চান যা সময়ে সময়ে আপডেট করা হয়, বিশেষ করে কম শক্তির ডিভাইস তৈরি করতে। ইঙ্কি পিএইচএটি-র একরঙা/কালো সংস্করণের প্রধান সুবিধা হল যে তিন-রঙের সংস্করণগুলির জন্য দশ থেকে পনের সেকেন্ডের পরিবর্তে ডিসপ্লে আপডেট করতে প্রায় এক সেকেন্ড সময় লাগে। সিনেমা দেখ.

অ্যাডাফ্রুট এর ব্লিঙ্কা লাইব্রেরি রাস্পবেরি পাইতে সার্কিট পাইথন কোড চালানোর অনুমতি দেয় এবং অ্যাডাফ্রুট থেকে বিভিন্ন ধরণের সেন্সরের জন্য সার্কিট পাইথনের নমুনা পাওয়া যায়। ব্লিঙ্কা এবং সার্কিট পাইথন কোডগুলি কীভাবে ইনস্টল করবেন তার বিশদ বিবরণ অ্যাডাফ্রুট ওয়েবসাইটে পাওয়া যাবে। আমি এখন পর্যন্ত যা লাইব্রেরি পরীক্ষা করেছি (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) খুব ভালোভাবে কাজ করছিল, যখন কিছু উদাহরণ কোডে ছোটখাটো সমস্যা ছিল।

BME280 হল তাপমাত্রা, আর্দ্রতা এবং বায়ুমণ্ডলীয় চাপ পরিমাপের একটি সেন্সর। BMP280 ব্রেকআউটগুলি Adafruit সহ অনেক বিক্রেতাদের কাছ থেকে পাওয়া যায়, কিন্তু আমি এখানে একটি সস্তা চীনা সংস্করণ ব্যবহার করছিলাম। দয়া করে সচেতন থাকুন যে এগুলি বিভিন্ন i2c ঠিকানা ব্যবহার করছে (Adafruit: 0x77, অন্যান্য: 0x76)।

ব্রেকআউটটি i2c দ্বারা Pi এর সাথে সংযুক্ত এবং লাইব্রেরি এবং উদাহরণ কোড ব্যবহার করে সেন্সর পড়া খুবই সহজ।

ধাপ 1: ব্যবহৃত উপকরণ

ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ
ব্যবহৃত উপকরণ

একটি রাস্পবেরি পাই জিরো, একটি পুরুষ শিরোনাম সংযুক্ত। কিন্তু কোন রাস্পবেরি পাই সংস্করণ করবে।

একটি Pimoroni Inky pHAT, কালো/একরঙা সংস্করণ, 25 € | 22 £ | 20US $, Pimoroni এ।

একটি Pimoroni Pico HAT হ্যাকার, 2.50 € | 2 £, দুটি মহিলা হেডার সংযুক্ত, তাদের মধ্যে একটি লম্বা পিন সহ একটি বুস্টার হেডার। আমি দুটি ভিন্ন সংস্করণ তৈরি করেছি, নীচের বিবরণ দেখুন।

একটি BME280 ব্রেকআউট, Amazon.de A 7.50 via এর মাধ্যমে AZ ডেলিভারি, হেডার সংযুক্ত।

দীর্ঘায়িত জাম্পার তারগুলি

চ্ছিক:

একটি ইউএসবি পাওয়ার প্যাক, মোবাইল অ্যাপ্লিকেশনের জন্য

পাই বা ডিভাইসের জন্য একটি আবাসন (এখানে দেখানো হয়নি)

ধাপ 2: সমাবেশ

সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
  • Pico HAT হ্যাকারের কাছে মহিলা হেডার বিক্রি করুন। সোল্ডারিংয়ের আগে, সঠিক ওরিয়েন্টেশনের জন্য পরীক্ষা করুন। আমি বিভিন্ন উদ্দেশ্যে, এর দুটি সংস্করণ তৈরি করেছি। সামনের সারিতে বসানো ডাউন ফেসিং বুস্টার হেডার এবং পিছনের সারিতে একটি স্বাভাবিক, আপ/ফেসিং হেডার এবং পিছনের সারিতে ডাউন ফেসিং বুস্টার হেডারের সাথে একটি সংস্করণ এবং সামনের সারিতে একটি ডান-কোণ মহিলা হেডার । ছবি দেখুন। প্রথম সংস্করণটি সেন্সর এবং তারগুলি সংযুক্ত করা এবং আদান -প্রদান করতে খুব সহজ, যখন অভ্যন্তরীণ মুখোমুখি শিরোনামের সংস্করণটি পাই, সেন্সর এবং ইঙ্কি পিএইচএটিকে একটি আবাসনে আবদ্ধ করার অনুমতি দেয়। বিকল্পভাবে আপনি জিপিআইও এবং সেন্সর সংযোগকারী তারগুলি সরাসরি পিকো হ্যাট হ্যাকারের কাছে বিক্রি করতে পারেন এবং/অথবা পিকো হ্যাট হ্যাকারকে সরাসরি জিপিআইও পিনগুলিতে বিক্রি করতে পারেন। যে কোনও ক্ষেত্রে প্রয়োজনীয় সংখ্যক ঝাল ব্যবহার করুন।
  • প্রয়োজনে শিরোলেখটি সেন্সরে বিক্রি করুন।
  • Pi তে পরিবর্তিত পিকো HAT হ্যাকার ইউনিট স্ট্যাক করুন, তারপর ইনকি pHAT যোগ করুন। প্রয়োজন হলে, কিছু সমর্থন সন্নিবেশ করান, যেমন ইনকি পিএইচএটি-র জন্য একটি ফোম ব্লক বা স্ট্যান্ড-অফ।
  • 3V, GND, SDA এবং SCL পোর্ট ব্যবহার করে কেবল এবং সেন্সর সংযুক্ত করুন। সমস্ত সেন্সর 5V টিকে থাকবে না, তাই 5V পোর্টের সাথে সংযোগ করার আগে দয়া করে পরীক্ষা করুন।
  • Blinka লাইব্রেরি ইনস্টল করুন, তারপর Adafruit থেকে সার্কিট পাইথন BME280 লাইব্রেরি ইনস্টল করুন।
  • Pimoroni থেকে Inky pHAT লাইব্রেরি ইনস্টল করুন।
  • পরবর্তী ধাপে বর্ণিত পাইথন কোড ইনস্টল করুন এবং এই নির্দেশের সাথে সংযুক্ত করুন।
  • কোডটি চালান।

ধাপ 3: ডিভাইস ব্যবহার করা

ডিভাইস ব্যবহার করে
ডিভাইস ব্যবহার করে

ডিভাইসটি ব্যবহার করার জন্য দুটি বিকল্প রয়েছে।

এখানে দেখানো কোডটি একটি সংযুক্ত স্ক্রিন ব্যবহার করে শুরু করা হবে, কিন্তু তারপর ছাড়া চলতে পারে।

কোডে ছোটখাটো পরিবর্তন করে আপনি নির্ধারিত সময় পয়েন্টে পরিমাপ করতে ক্রন্টাব ব্যবহার করতে পারেন। এর ফলে বিদ্যুৎ খরচ আরও কমে যাবে। ক্রোনট্যাব কীভাবে ব্যবহার করবেন তা চমৎকার বর্ণনা অন্যত্র পাওয়া যাবে।

একটি পাওয়ার প্যাকের সাথে মিলিয়ে আপনি একটি মোবাইল ডিভাইস তৈরি করতে পারেন এবং এটি ফ্রিজে, সউনা, আপনার হিউমিডর, ওয়াইন সেলার, সমতলে, ভিতরে বা বাইরের অবস্থা পরিমাপ করতে ব্যবহার করতে পারেন।

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

ধাপ 4: BME280 স্ক্রিপ্ট

BME280 স্ক্রিপ্ট
BME280 স্ক্রিপ্ট

আগেই উল্লেখ করা হয়েছে, আপনাকে Adafruit Blinka এবং Circuit Python BME280 লাইব্রেরির পাশাপাশি Pimoroni Inky pHAT লাইব্রেরি ইনস্টল করতে হবে।

কোডটি প্রথমে সেন্সর এবং ইনকি পিএইচএটি শুরু করে, তারপর সেন্সর থেকে তাপমাত্রা, চাপ এবং আর্দ্রতার মানগুলি পড়ে এবং সেগুলি স্ক্রিন এবং ই-কালি ডিসপ্লেতে প্রদর্শন করে। Time.sleep () কমান্ড ব্যবহার করে, প্রতি মিনিটে পরিমাপ নেওয়া হয়। প্রয়োজন অনুযায়ী সামঞ্জস্য করুন। একটি ভাষা প্যারামিটার সেট করে, আপনি ফলাফল প্রদর্শন করতে ব্যবহৃত ভাষা পরিবর্তন করতে পারেন।

ইনকি পিএইচএটি ই-কালি ডিসপ্লে ব্যবহার করে, আপনি প্রথমে ইঙ্কিকেফট.শো () কমান্ড ব্যবহার করে স্ক্রিনে স্থানান্তরের আগে ছবিটি মেমরিতে প্রদর্শনের জন্য তৈরি করুন। ইনকি পিএইচএটি লাইব্রেরি প্রক্রিয়াটিকে সরল করছে, টেক্সট, লাইন, আয়তক্ষেত্র, বৃত্ত বা ব্যাকগ্রাউন্ড ইমেজ ব্যবহার এবং ফর্ম্যাট করার জন্য কমান্ড প্রদান করছে।

পরিমাপ করা মান ছাড়াও, পরিমাপের সময়ও প্রদর্শিত হয়।

অনুগ্রহ করে মনে রাখবেন যে স্ক্রিপ্ট এবং লাইব্রেরিগুলি পাইথন 3 এ লেখা হয়েছে, তাই Py3 IDLE বা সমতুল্য ব্যবহার করে খুলুন এবং চালান।

# Bme280 তাপমাত্রা/চাপ/আর্দ্রতা সেন্সর (নন -অ্যাডাফ্রুট সংস্করণ) # এবং কালি pHAT - কালো সংস্করণ # # সংস্করণ ডিসেম্বর 01 2018, ড H এইচ # # অ্যাডাফ্রুট ব্লিঙ্কা এবং সার্কিট পাইথন BME280 লাইব্রেরির প্রয়োজন # এবং পিমোরোনি ইনকি pHAT লাইব্রেরি আমদানি সময় আমদানি ডেটটাইম আমদানি বোর্ড আমদানি adafruit_bme280 থেকে আমদানি Adafruit_BME280 থেকে adafruit_BME280 আমদানি Adafruit_BME280_I2C আমদানি ইনকাইফ্যাট আমদানি sys PIL আমদানি থেকে ImageFont inkyphat.set_colour ('কালো') # b/w inky phat এর জন্য 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Select standard font font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Standard font data # lang = "DE" # set language parameter, ডিফল্ট ("") -> ইংরেজি lang = "EN" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # default i2c address (Adafruit BMP280 এর জন্য) 0x77 (default), চাইনিজ ব্রেকআউটের জন্য 0x76) # সেট রেফারেন্স চাপ # আল এর জন্য প্রয়োজন titute হিসাব, অনুগ্রহ করে সামঞ্জস্য করুন। স্ট্যান্ডার্ড মান 1013.25 hPa # ম্যানুয়াল ইনপুট: #reference_hPa = ইনপুট ("hPa তে রেফারেন্স চাপ লিখুন:") # অথবা # রেফারেন্স হিসাবে শুরুর সময় চাপ চাপুন, যেমন আপেক্ষিক উচ্চতা পরিমাপের সময় ঘুম (1) # 1 ম পরিমাপের আগে এক সেকেন্ড অপেক্ষা করুন j = 0 pres_norm_sum = 0 যখন j পরিসরে (5): # রেফারেন্স মান নির্ধারণ করতে পাঁচটি পরিমাপ নিন pres_norm_sum = pres_norm_sum + bmp.pressure j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # উচ্চতা পরিমাপ bmp.sea_level_pressure = float (reference_hPa) মুদ্রণ () সত্য করতে # রেফারেন্স পয়েন্ট হিসাবে প্রাথমিক পরিমাপ সেট করুন মান t = bmp.temperature p = bmp.pressure h = bmp.humidity a = bmp.altitude # adafruit Library দ্বারা চাপ থেকে গণনা করা হয় #timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '। ফরম্যাট (ts) # টাইমস্ট্যাম্প - তারিখ, EN ফর্ম্যাট ts0_DE =' {:%d।%m।%Y} '। ফরম্যাট (ts) # টাইমস্ট্যাম্প - তারিখ, জার্মান ফরম্যাট ts1 =' {: %H:%M:%S} '। বিন্যাস (ts) # টাইমস্ট্যাম্প - সময় tmp = "{0: 0.1f}"। = "{0: 0.1f}"। Text_EN = "আর্দ্রতা:" hText_DE = "rel। LF: "aText_EN =" Altitude: "aText_DE =" Höhe üNN: " # exakt: ü। NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText = pText = pText: # ডিফল্ট ইংরেজি ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # মুদ্রণ মান প্রদর্শনের জন্য মুদ্রণ (ts) মুদ্রণ (tText, tmp, "° C") মুদ্রণ (pText, pre, "hPa") প্রিন্ট (hText, hyg, " %") মুদ্রণ (aText, alt, "m") মুদ্রণ () # মুদ্রণ মান ইনকি pHAT t1 = 5 # ট্যাব 1, ফ্রিস্ট কলাম, লেআউট অপটিমাইজেশন সহজ করে t2 = 110 # ট্যাব 2, দ্বিতীয় কলাম ইনকিফ্যাট। clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # write timestamp date inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # write timestamp time inkyphat.line ((t1, 25, 207, 25), 1, 3) # একটি লাইন আঁকুন inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat। BLACK, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # বিকল্পভাবে গণনা করা উচ্চতা প্রদর্শন করুন # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # পরবর্তী পরিমাপের আগে কয়েক সেকেন্ড অপেক্ষা করুন, প্রতি চক্র +19 সেকেন্ড ইনকাইফ্যাট.ক্লিয়ার () # খালি ইঙ্কি পিএইচএটি ডিসপ্লে পদ্ধতি, ইনকিফ্যাট.শো () ক্রোনটাব-সংস্করণের জন্য # নীরবতা

ধাপ 5: BMP280 স্ক্রিপ্ট

BMP280 BME280 সেন্সরের অনুরূপ, কিন্তু শুধুমাত্র তাপমাত্রা এবং চাপ পরিমাপ করে। স্ক্রিপ্টগুলি খুব অনুরূপ, তবে আপনার বিভিন্ন সার্কিট পাইথন লাইব্রেরির প্রয়োজন। এখানে আর্দ্রতার পরিবর্তে একটি রেফারেন্স চাপের উপর ভিত্তি করে একটি গণনা করা উচ্চতা প্রদর্শিত হয়।

সংযুক্ত আপনি স্ক্রিপ্ট খুঁজে।

প্রস্তাবিত: