विषयसूची:
वीडियो: RuuviTag और PiZero W और Blinkt! एक ब्लूटूथ बीकन आधारित थर्मामीटर: 3 चरण (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
यह निर्देशयोग्य रास्पबेरी पाई ज़ीरो डब्ल्यू के साथ ब्लूटूथ का उपयोग करके रुविटैग से तापमान और आर्द्रता डेटा पढ़ने और पिमोरोनी ब्लिंक पर बाइनरी नंबरों में मूल्यों को प्रदर्शित करने के लिए एक दृष्टिकोण का वर्णन करता है! pHAT.या संक्षेप में कहें तो: अत्याधुनिक और थोडा नीरस थर्मामीटर कैसे बनाया जाए।
RuuviTag एक खुला स्रोत सेंसर ब्लूटूथ बीकन है जो तापमान/आर्द्रता/दबाव और त्वरण सेंसर के साथ आता है, लेकिन यह एक मानक Eddystone™/iBeacon निकटता बीकन के रूप में भी कार्य कर सकता है। यह एक बहुत ही सफलतापूर्वक किकस्टार्टर प्रोजेक्ट था और मुझे कुछ हफ्ते पहले मेरा मिल गया था। रास्पबेरी का उपयोग करके RuuviTag को पढ़ने के लिए अजगर सॉफ्टवेयर के साथ एक Github है, और मैंने कुछ अतिरिक्त के साथ उनके उदाहरणों में से एक का उपयोग किया है।
रास्पबेरी पाई ज़ीरो डब्ल्यू आरपीआई परिवार का नवीनतम सदस्य है, मूल रूप से ब्लूटूथ और डब्ल्यूएलएएन के साथ एक पाई ज़ीरो जोड़ा गया है।
पलक! पिमोरोनी से पीएचएटी मूल रूप से आठ आरबीजी एल ई डी की एक पट्टी है जिसे रास्पबेरी पीआई के लिए एचएटी के रूप में कॉन्फ़िगर किया गया है। इसका उपयोग करना बहुत आसान है और एक अजगर पुस्तकालय के साथ आता है। विचार RuuviTag से डेटा को पढ़ने और ब्लिंक्ट का उपयोग करके इसे प्रदर्शित करने का था! टोपी। मूल्यों को एल ई डी के 7 का उपयोग करके बाइनरी संख्याओं के रूप में प्रदर्शित किया जाता है, जबकि आठ का उपयोग यह इंगित करने के लिए किया जाता है कि आर्द्रता या तापमान (+/-/0) मान प्रदर्शित होते हैं या नहीं।
चरण 1: सिस्टम की स्थापना
सिस्टम को सेट करना आसान है:- RuuviTag (RuuviTag तापमान सेंसर संस्करण) पर स्विच करें।
- www.raspberrypi.org पर दिए गए निर्देशों का पालन करते हुए अपने RPi Zero W, RPi3, या किसी अन्य RPi को ब्लूटूथ क्षमता के साथ सेट करें।
- पलक झपकाएं! आरपीआई पर एचएटी (बंद होने पर)।
- ब्लिंक्ट स्थापित करें! और RuuviTag सॉफ़्टवेयर, जैसा कि संबंधित GitHub पृष्ठों पर दर्शाया गया है।
- अब आपको अपने RuuviTag. के MAC एड्रेस को पहचानना होगा
- संलग्न पायथन प्रोग्राम को कॉपी करें, इसे Python 3 के लिए IDLE के साथ खोलें
- RuuviTag के MAC एड्रेस को अपने में बदलें, फिर प्रोग्राम को सेव और रन करें।
- कार्यक्रम को संशोधित और अनुकूलित करने के लिए स्वतंत्र महसूस करें। कार्यक्रम वैसे ही आता है, जैसा कि आपके अपने जोखिम पर उपयोग किया जाता है, किसी भी नुकसान के लिए कोई देनदारी नहीं ली जाती है।
चरण 2: डिवाइस और प्रोग्राम
जैसा कि ऊपर उल्लेख किया गया है, बीकन से डेटा पढ़ने और पलक झपकते ही संख्यात्मक मान प्रदर्शित करने के लिए एक सरल और सस्ती प्रणाली का निर्माण करने का विचार था! एचएटी, या एक समान एलईडी पट्टी।
आरपीआई आधारित प्रणाली के साथ मापा जाने वाले तापमान के लिए मूल्यों की सीमा ज्यादातर मामलों में कहीं - ५० डिग्री सेल्सियस और +८० डिग्री सेल्सियस के बीच होगी, आर्द्रता के लिए ० और १००% के बीच। तो एक डिस्प्ले जो -100 से +100 तक मान दे सकता है, अधिकांश अनुप्रयोगों के लिए पर्याप्त होगा। 128 से छोटी दशमलव संख्या को 7 बिट्स (या एलईडी) के साथ बाइनरी नंबर के रूप में प्रदर्शित किया जा सकता है। तो प्रोग्राम रूविटैग से "फ्लोट" नंबर के रूप में तापमान और आर्द्रता मान लेता है और उन्हें बाइनरी नंबरों में बदल देता है, जो तब ब्लिंक्ट पर प्रदर्शित होते हैं!
पहले चरण के रूप में, संख्या को गोल किया जाता है, सकारात्मक, नकारात्मक या शून्य होने पर विश्लेषण किया जाता है, और फिर "abs" का उपयोग करके सकारात्मक संख्या में बदल दिया जाता है। फिर दशमलव संख्या को 7-अंकीय बाइनरी संख्या में बदल दिया जाता है, मूल रूप से 0s और 1s की एक स्ट्रिंग, जिसका विश्लेषण किया जाता है और ब्लिंक्ट के अंतिम 7 पिक्सेल पर प्रदर्शित किया जाता है!।
तापमान मानों के लिए पहला पिक्सेल इंगित करता है कि मान धनात्मक (लाल), शून्य (मैजेंटा) या ऋणात्मक (नीला) है। आर्द्रता मान प्रदर्शित करते हुए इसे हरे रंग में सेट किया गया है। तापमान और आर्द्रता मूल्यों के बीच भेदभाव को आसान बनाने के लिए बाइनरी पिक्सल तापमान के लिए सफेद और आर्द्रता के लिए पीले रंग में सेट होते हैं। बाइनरी नंबरों की सुपाठ्यता बढ़ाने के लिए, "0" पिक्सेल पूरी तरह से बंद नहीं होते हैं, बल्कि "1" स्थिति की तुलना में बहुत कमजोर सेट होते हैं। पलक के रूप में! पिक्सेल बहुत उज्ज्वल हैं, आप "उज्ज्वल" पैरामीटर को बदलते हुए सामान्य चमक सेट कर सकते हैं
कार्यक्रम मूल्यों और प्रक्रिया के कुछ हिस्सों को स्क्रीन पर भी प्रदर्शित करता है। इसके अलावा आपको कई म्यूट (#) प्रिंट निर्देश मिलेंगे। मैंने उन्हें अंदर छोड़ दिया, क्योंकि अनम्यूट होने पर आपको प्रक्रिया को समझने में मदद मिल सकती है।
मान लॉग फ़ाइल में भी संग्रहीत किए जा सकते हैं।
चरण 3: प्रोग्राम कोड
कोड थोड़ा डिबग और अनुकूलित था। अब आपको संस्करण 3 (20_03_2017) मिल सकता है।
' इस कार्यक्रम का उद्देश्य तापमान, आर्द्रता और दबाव के मूल्यों को एक रूविटैग' बनाना है और तापमान और आर्द्रता मूल्यों को पिमोरिनी ब्लिंक्ट पर बाइनरी नंबरों के रूप में प्रदर्शित करना है! टोपी। '' '' ' यह गीथब पर ruuvitag पुस्तकालय से print_to_screen.py उदाहरण पर आधारित है। ' 'एक Pi Zero W, Pi 3 या ब्लूटूथ से लैस कोई अन्य RPi और सभी आवश्यक पुस्तकालय स्थापित करने की आवश्यकता है।'
आयात समय
डेटाटाइम से आयात ओएस डेटाटाइम आयात करें
ruuvitag_sensor.ruuvi से आयात करें RuuviTagSensor
ब्लिंक्ट इम्पोर्ट से set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (बीटी):
# यह दिनचर्या तापमान मान लेती है और इसे ब्लिंक्ट पर बाइनरी नंबर के रूप में प्रदर्शित करती है!
स्पष्ट ()
# "1" पिक्सेल का रंग और तीव्रता: सफ़ेद
r1 = 64 g1 = 64 b1 = 64
#रंग और तीव्रता "0" पिक्सेल: सफ़ेद
r0 = 5 g0 = 5 b0 = 5
# गोल करें और पूर्णांक में बदलें
आर = गोल (बीटी)
# vz संकेतक पिक्सेल के लिए बीजीय चिह्न का प्रतिनिधित्व करता है
अगर (r>0): vz = 1 # सकारात्मक elif (r<0): vz= 2 # नकारात्मक अन्य: vz= 0 # शून्य # प्रिंट (vz) i = abs(r) #print (i)
# निरपेक्ष, 7-अंकीय बाइनरी संख्या में बदलना
i1 = i + 128 # के लिए i परिणाम 1 # प्रिंट (i1) से शुरू होने वाले 8-अंकीय बाइनरी नंबर में होता है
b = "{0:b}".format(i1) # बाइनरी में कनवर्ट करें
# प्रिंट (बी)
b0 = str (b) # स्ट्रिंग में कनवर्ट करें
b1 = b0 [1:8] # पहले बिट को छोटा करें
प्रिंट ("बाइनरी नंबर:", बी 1)
# ब्लिंक्ट पर पिक्सल सेट करें!
# बाइनरी नंबर सेट करें
h रेंज में (0, 7) के लिए: f = (h+1) if (b1[h] == "1"): set_pixel (f, r1, g1, b1) # प्रिंट ("बिट", एच, " 1 है, पिक्सेल ", f) और: set_pixel (f, r0, g0, b0) # प्रिंट ("शून्य")
# संकेतक पिक्सेल सेट करें
अगर (vz==1): set_pixel (0, 64, 0, 0) # सकारात्मक मानों के लिए लाल elif (vz==2): set_pixel (0, 0, 0, 64) # नकारात्मक मानों के लिए नीला: set_pixel (०, ६४, ०, ६४) # मैजेंटा अगर शून्य
प्रदर्शन()
# temp_blinkt का अंत ()
def hum_blinkt (बीएच):
# यह आर्द्रता मान लेता है और इसे ब्लिंक्ट पर बाइनरी नंबर के रूप में प्रदर्शित करता है!
स्पष्ट()
# "1" पिक्सेल का रंग और तीव्रता: पीला
r1 = 64 g1 = 64 b1 = 0
#रंग और "0" पिक्सेल की तीव्रता:
r0 = 5 g0 = 5 b0 = 0
# गोल और पूर्णांक में बदलना
आर = गोल (बीएच)
# निरपेक्ष, 7-अंकीय बाइनरी संख्या में बदलना i = abs(r) #print (i)
i1 = i + 128 # के लिए i 1. से शुरू होने वाली 8-अंकीय बाइनरी संख्या देता है
# प्रिंट (i1)
बी = "{0:बी}"। प्रारूप (i1)
# प्रिंट (बी)
बी0 = स्ट्र (बी)
b1 = b0 [1:8] # पहले बिट को छोटा करें
प्रिंट ("बाइनरी नंबर:", बी 1)
# ब्लिंक्ट पर पिक्सल सेट करें!
# बाइनरी नंबर को पिक्सल पर सेट करें
रेंज में h के लिए (0, 7): f = (h+1) if (b1[h] == "1"): set_pixel (f, r1, g1, b1) और: # म्यूट टू ब्लैंक LED set_pixel (f, r0, g0, b0) # म्यूट टू ब्लैंक एल ई डी
# संकेतक पिक्सेल सेट करें
set_pixel (0, 0, 64, 0) # नमी के लिए हरा
प्रदर्शन()
# hum_blinkt का अंत ()
set_clear_on_exit ()
# RuuviTag. से डेटा पढ़ना
मैक = 'ईसी: 6 डी: 59: 6 डी: 01: 1 सी' # अपने डिवाइस के मैक पते में बदलें
प्रिंट ('शुरू')
सेंसर = रुविटैग सेंसर (मैक)
जबकि सच:
डेटा = सेंसर। अपडेट ()
line_sen = str.format ('सेंसर - {0}', मैक)
line_tem = str.format ('तापमान: {0} C', डेटा ['तापमान']) line_hum = str.format ('आर्द्रता: {0} %', डेटा ['आर्द्रता']) line_pre = str.format('दबाव: {0}', डेटा ['दबाव'])
प्रिंट ()
# ब्लिंक्ट पर तापमान प्रदर्शित करें! बीए = str.format ('{0}', डेटा ['तापमान']) बीटी = फ्लोट (बीए) प्रिंट (बीटी, "°C") temp_blinkt (बीटी) प्रिंट ()
समय। नींद (10) # 10 सेकंड के लिए तापमान प्रदर्शित करें
# पलक झपकते ही नमी दिखाओ!
bg = str.format('{0}', data['humidity']) bh = फ्लोट (bg) प्रिंट (bh, "%") hum_blinkt (bh) प्रिंट ()
# स्क्रीन पर साफ़ स्क्रीन और प्रिंट सेंसर डेटा
os.system('clear') प्रिंट ('छोड़ने के लिए Ctrl+C दबाएं।) प्रिंट ('\n\n\r…….')
# कुछ सेकंड रुकें और फिर से शुरू करें
कोशिश करें: time.sleep(8) कीबोर्डइंटरप्ट को छोड़कर: # जब Ctrl + C दबाया जाता है, जबकि लूप बंद हो जाता है, तो प्रिंट ('बाहर निकलें') क्लियर () शो () ब्रेक
सिफारिश की:
स्मार्टफोन को गैर संपर्क थर्मामीटर / पोर्टेबल थर्मामीटर के रूप में उपयोग करें: 8 कदम (चित्रों के साथ)
स्मार्टफोन को नॉन कॉन्टैक्ट थर्मामीटर / पोर्टेबल थर्मामीटर के रूप में इस्तेमाल करें: थर्मो गन की तरह नॉन-कॉन्टैक्ट / कॉन्टैक्टलेस से शरीर के तापमान को मापना। मैंने यह प्रोजेक्ट इसलिए बनाया क्योंकि थर्मो गन अब बहुत महंगी है, इसलिए मुझे DIY बनाने का विकल्प मिलना चाहिए। और उद्देश्य कम बजट संस्करण के साथ बनाना है। आपूर्तिMLX90614Ardu
2 सेंसर के साथ DIY लॉगिंग थर्मामीटर: 3 चरण (चित्रों के साथ)
2 सेंसर के साथ DIY लॉगिंग थर्मामीटर: यह प्रोजेक्ट मेरे पिछले प्रोजेक्ट "DIY लॉगिंग थर्मामीटर" का एक एन्हांसमेंट है। यह एक माइक्रो एसडी कार्ड में तापमान माप को लॉग करता है। हार्डवेयर परिवर्तनमैंने रीयल टाइम क्लॉक मॉड्यूल में एक DS18B20 तापमान सेंसर जोड़ा, जहां पीआर है
Arduino आधारित डिजिटल थर्मामीटर: 3 चरण
Arduino आधारित डिजिटल थर्मामीटर: इस परियोजना में, एक Arduino आधारित डिजिटल थर्मामीटर डिज़ाइन किया गया है जिसका उपयोग कमरे के तापमान का विश्लेषण करने के लिए किया जा सकता है। थर्मामीटर का उपयोग आमतौर पर तापमान मापने के उपकरण के रूप में किया जाता है। ऐसे कई सिद्धांत हैं जिनका उपयोग मापने के लिए किया जा सकता है
Arduino आधारित गैर संपर्क इन्फ्रारेड थर्मामीटर - Arduino का उपयोग करते हुए IR आधारित थर्मामीटर: 4 चरण
Arduino आधारित गैर संपर्क इन्फ्रारेड थर्मामीटर | Arduino का उपयोग करते हुए IR आधारित थर्मामीटर: हाय दोस्तों इस निर्देश में हम arduino का उपयोग करके एक गैर संपर्क थर्मामीटर बनाएंगे। चूंकि कभी-कभी तरल / ठोस का तापमान बहुत अधिक होता है या कम होता है और फिर इसके साथ संपर्क बनाना और इसे पढ़ना कठिन होता है। तापमान तो उस दृश्य में
मौसम आधारित संगीत जेनरेटर (ESP8266 आधारित मिडी जेनरेटर): 4 चरण (चित्रों के साथ)
वेदर बेस्ड म्यूजिक जेनरेटर (ESP8266 बेस्ड मिडी जेनरेटर): हाय, आज मैं आपको बताऊंगा कि कैसे अपना खुद का छोटा वेदर बेस्ड म्यूजिक जेनरेटर बनाया जाता है। यह ESP8266 पर आधारित है, जो एक Arduino की तरह है, और यह तापमान, बारिश पर प्रतिक्रिया करता है और प्रकाश की तीव्रता। यह उम्मीद न करें कि यह संपूर्ण गीत या राग कार्यक्रम बना देगा