ዝርዝር ሁኔታ:

RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር 3 ደረጃዎች (ከስዕሎች ጋር)
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር 3 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር 3 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር 3 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: BTT SKR2 - Установка прошивки FluiddPi и Klipper 2024, ሀምሌ
Anonim
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር
RuuviTag እና PiZero W እና Blinkt! በብሉቱዝ ቢኮን ላይ የተመሠረተ ቴርሞሜትር

ይህ ትምህርት ሰጪው ብሉቱዝን ከ Raspberry Pi Zero W ጋር በመጠቀም ከ RuuviTag የሙቀት እና የእርጥበት መረጃን ለማንበብ እና እሴቶቹን በፒሞሮኒ ብላይት ላይ በሁለትዮሽ ቁጥሮች ለማሳየት አቀራረብን ይገልጻል! pHAT ወይም በአጭሩ ለማስቀመጥ -የጥበብ ሁኔታን እና ትንሽ ነርቮር ቴርሞሜትር እንዴት እንደሚገነቡ።

RuuviTag ከሙቀት/እርጥበት/ግፊት እና የግፊት ዳሳሾች ጋር የሚመጣ ክፍት ምንጭ ዳሳሽ የብሉቱዝ መብራት ነው ፣ ግን እንደ መደበኛ ኤዲስተን ™/iBeacon ቅርበት ቢኮን ሆኖ ሊያገለግል ይችላል። እሱ በጣም በተሳካ ሁኔታ የ Kickstarter ፕሮጀክት ነበር እና ከጥቂት ሳምንታት በፊት የእኔን አገኘሁ። ራፕቤሪ በመጠቀም RuuviTag ን ለማንበብ ከፓይዘን ሶፍትዌር ጋር Github አለ ፣ እና ከአንዳንድ ምሳሌዎቻቸው አንዱን ከተጨማሪዎች ጋር ተጠቅሜያለሁ።

Raspberry Pi Zero W የ RPi ቤተሰብ የቅርብ አባል ነው ፣ በመሠረቱ ብሉቱዝ እና WLAN ያለው ፒ ፒ ዜሮ ነው።

ብልጭ ድርግም! ፒኤሞቲ ከፒሞሮኒ በመሠረቱ ለ Raspberry Pi እንደ ኮፍያ የተዋቀሩ ስምንት የ RBG LED ዎች ቁራጭ ነው። ለመጠቀም በጣም ቀላል እና ከፓይዘን ቤተ -መጽሐፍት ጋር ይመጣል። ሀሳቡ ከ RuuviTag ውሂቡን ማንበብ እና ብልጭታውን በመጠቀም ማሳየት ነበር! ኮፍያ። እሴቶቹ 7 የ LED ን በመጠቀም እንደ ሁለትዮሽ ቁጥሮች ይታያሉ ፣ ስምንቱ ደግሞ እርጥበት ወይም የሙቀት መጠን (+/-/0) እሴቶች ከታዩ ለማመልከት ያገለግላሉ።

ደረጃ 1 - ስርዓቱን ማዋቀር

ስርዓቱን ማዘጋጀት ቀላል ነው-- በ RuuviTag (የ RuuviTag የሙቀት ዳሳሽ ስሪት) ላይ ያብሩ።

- በ www.raspberrypi.org ላይ ያሉትን መመሪያዎች በመከተል የብሉቱዝ አቅም ታክሎ የእርስዎን RPi Zero W ፣ RPi3 ወይም ሌላ ማንኛውም RPi ያዋቅሩ።

- ብልጭታውን ያስቀምጡ! በ RPi ላይ ኮፍያ (ሲጠፋ)።

- ብልጭታውን ይጫኑ! እና የ RuuviTag ሶፍትዌር ፣ በተጓዳኙ የ GitHub ገጾች ላይ እንደተመለከተው።

- አሁን የ RuuviTagዎን የ MAC አድራሻ መለየት አለብዎት

- የተያያዘውን የ Python ፕሮግራም ይቅዱ ፣ ለ ‹Python 3› በ IDLE ይክፈቱት

- የ RuuviTag የ MAC አድራሻውን ወደ እርስዎ ይለውጡ ፣ ከዚያ ፕሮግራሙን ያስቀምጡ እና ያሂዱ።

- ፕሮግራሙን ለማሻሻል እና ለማሻሻል ነፃነት ይሰማዎ። መርሃግብሩ እንደመጣ ፣ በራስዎ አደጋ ላይ ለመዋል ፣ ለማንኛውም ጉዳቶች ምንም ዕዳ አይወሰዱም።

ደረጃ 2 - መሣሪያው እና ፕሮግራሙ

መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ
መሣሪያው እና ፕሮግራሙ

ከላይ እንደተጠቀሰው ፣ ሀሳቡ ቀላል እና ርካሽ ስርዓትን መገንባት ከቢከን ላይ መረጃን ለማንበብ እና በ blinkt ላይ የቁጥር እሴቶችን ለማሳየት ነበር! ኮፍያ ፣ ወይም ተመሳሳይ የ LED ንጣፍ።

በ RPi ላይ የተመሠረተ የሙቀት መጠን የሚለካው የሙቀት መጠን በአብዛኛዎቹ ሁኔታዎች ከ 50 እስከ 0 እና +80 ° ሴ ፣ ከ 0 እስከ 100%ባለው እርጥበት መካከል ይሆናል። ስለዚህ ከ -100 እስከ +100 እሴቶችን ሊሰጥ የሚችል ማሳያ ለአብዛኛዎቹ መተግበሪያዎች በቂ ይሆናል። የአስርዮሽ ቁጥሮች ከ 128 ያነሱ በ 7 ቢት (ወይም ኤልኢዲዎች) እንደ ሁለትዮሽ ቁጥሮች ሊታዩ ይችላሉ። ስለዚህ መርሃግብሩ የሙቀት መጠኑን እና የእርጥበት እሴቶችን ከ RuuviTag እንደ “ተንሳፋፊ” ቁጥሮች ወስዶ ወደ ሁለትዮሽ ቁጥሮች ይቀይሯቸዋል ፣ ከዚያ በ blinkt ላይ ይታያሉ!

እንደ መጀመሪያ ደረጃ ፣ ቁጥሩ የተጠጋጋ ፣ አዎንታዊ ፣ አሉታዊ ወይም ዜሮ ከሆነ ይተነትናል ፣ ከዚያም ‹አብስ› ን በመጠቀም ወደ አዎንታዊ ቁጥር ይለወጣል። ከዚያ የአስርዮሽ ቁጥር ወደ ባለ 7-አሃዝ ሁለትዮሽ ቁጥር ፣ በመሠረቱ የ 0 እና 1 ሕብረቁምፊ ይለወጣል ፣ ይህም በመጨረሻው 7 የፒክሰሎች ፒክሰሎች ላይ ይተነትናል እና ይታያል!

ለሙቀት እሴቶች የመጀመሪያው ፒክሴል እሴቱ አዎንታዊ (ቀይ) ፣ ዜሮ (ማጀንታ) ወይም አሉታዊ (ሰማያዊ) ከሆነ ያሳያል። የእርጥበት እሴቶችን ማሳየት ወደ አረንጓዴ ተዘጋጅቷል። በሙቀት እና በእርጥበት እሴቶች መካከል ያለውን አድልዎ ለማቃለል የሁለትዮሽ ፒክስሎች ለሙቀት ነጭ እና ቢጫ ለእርጥበት ተዘጋጅተዋል። የሁለትዮሽ ቁጥሮችን ተዓማኒነት ለማሳደግ ፣ “0” ፒክሴል ሙሉ በሙሉ አይጠፋም ፣ ይልቁንም ከ “1” ሁኔታ ይልቅ በጣም ደካማ ሆነው ይቀመጣሉ። እንደ ብልጭታ! ፒክሰሎች በጣም ብሩህ ናቸው ፣ ግቤቱን “ብሩህ” በመቀየር አጠቃላይ ብሩህነትን ማዘጋጀት ይችላሉ

ፕሮግራሙ በማያ ገጹ ላይ የሂደቱን እሴቶች እና ክፍሎችም ያሳያል። በተጨማሪም ብዙ ድምጸ -ከል የተደረጉ (#) የህትመት መመሪያዎችን ያገኛሉ። ድምጸ -ከል ከተደረገ ሂደቱን ለመረዳት አጋዥ ሆነው ሊያገ mayቸው ስለሚችሉ እኔ ተውኳቸው።

እሴቶቹ እንዲሁ በምዝግብ ማስታወሻ ፋይል ውስጥ ሊቀመጡ ይችላሉ።

ደረጃ 3 - የፕሮግራም ኮድ

ኮዱ ትንሽ ተስተካክሎ እና ተመቻችቷል። አሁን ስሪት 3 (20_03_2017) ሊያገኙ ይችላሉ።

‹ይህ ፕሮግራም የሙቀት ፣ የእርጥበት እና የግፊት እሴቶች RuuviTag ን እንዲያነቡ የታሰበ ነው እና የሙቀት እና የእርጥበት እሴቶችን በፒሞሪኒ ብላይት ላይ እንደ ሁለትዮሽ ቁጥሮች ለማሳየት የታሰበ ነው! ኮፍያ። '' '' በ github ከሚገኘው ruuvitag ቤተ -መጽሐፍት በ print_to_screen.py ምሳሌ ላይ የተመሠረተ ነው። '' በብሉቱዝ እና ሁሉም አስፈላጊ ቤተ -መጽሐፍት የተገጠሙ Pi Zero W ፣ Pi 3 ወይም ሌላ ማንኛውም RPi ይጠይቃል። ''

የማስመጣት ጊዜ

ከውጪ ጊዜ ማስመጣት የጊዜ ሰአት አስመጣ

ከ ruuvitag_sensor.ruuvi ማስመጣት RuuviTagSensor

ከ blinkt ማስመጣት set_clear_on_exit ፣ set_pixel ፣ ግልጽ ፣ አሳይ

def temp_blinkt (bt) ፦

# ይህ ተለምዷዊ የሙቀት መጠን እሴትን ወስዶ በብላይንት ላይ እንደ ሁለትዮሽ ቁጥር ያሳያል!

ግልጽ ()

# ቀለም እና የ “1” ፒክሰሎች ጥንካሬ - ነጭ

r1 = 64 g1 = 64 b1 = 64

#ቀለም እና የ “0” ፒክሴሎች ጥንካሬ - ነጭ

r0 = 5 g0 = 5 b0 = 5

# ክብ እና ወደ ኢንቲጀር ይለውጡ

r = ክብ (bt)

# vz ለአመልካች ፒክሴል የአልጀብራ ምልክት ይወክላል

ከሆነ (r> 0): vz = 1 # አዎንታዊ ኤሊፍ (r <0): vz = 2 # አሉታዊ ሌላ: vz = 0 # ዜሮ # ህትመት (vz) i = abs (r) # ህትመት (i)

# ወደ ፍፁም ፣ ባለ 7 አኃዝ ሁለትዮሽ ቁጥር ይለውጡ

i1 = i + 128 # ከ 1 # ህትመት (i1) ጀምሮ ባለ 8 አሃዝ የሁለትዮሽ ቁጥርን ያስከትላል።

b = "{0: b}". ቅርጸት (i1) # ወደ ሁለትዮሽ መለወጥ

# ህትመት (ለ)

b0 = str (ለ) # ወደ ሕብረቁምፊ ይለውጡ

b1 = b0 [1: 8] #የመጀመሪያውን ቢት ይከርክሙት

ማተም ("የሁለትዮሽ ቁጥር" ፣ ለ 1)

# ብልጭታ ላይ ፒክሰሎችን ያዘጋጁ!

# የሁለትዮሽ ቁጥርን ያዘጋጁ

በክልል ውስጥ ለ h (0 ፣ 7): f = (h+1) ከሆነ (ለ 1 ነው ፣ ፒክሴል”፣ ረ) ሌላ - set_pixel (f ፣ r0 ፣ g0 ፣ b0) # ህትመት (“ኒል”)

# አመላካች ፒክሰል ያዘጋጁ

ከሆነ (vz == 1): set_pixel (0, 64, 0, 0) # ቀይ ለአዎንታዊ እሴቶች ኤሊፍ (vz == 2): set_pixel (0, 0, 0, 64) # ሰማያዊ ለአሉታዊ እሴቶች ሌላ - set_pixel (0 ፣ 64 ፣ 0 ፣ 64) # ማጂንታ ዜሮ ከሆነ

አሳይ ()

# የ temp_blinkt መጨረሻ ()

def hum_blinkt (bh) ፦

# ይህ የእርጥበት ዋጋን ይወስዳል እና በብላይንት ላይ እንደ ሁለትዮሽ ቁጥር ያሳያል!

ግልጽ ()

የ “1” ፒክሰሎች # ቀለም እና ጥንካሬ -ቢጫ

r1 = 64 g1 = 64 b1 = 0

#ቀለም እና የ “0” ፒክሴሎች ጥንካሬ

r0 = 5 g0 = 5 b0 = 0

# ክብ እና ወደ ኢንቲጀር ይቀይሩ

r = ክብ (bh)

# ወደ ፍፁም ፣ ባለ 7 አኃዝ ሁለትዮሽ ቁጥር i = abs (r) # አሻራ (i)

i1 = i + 128 # ከ 1 ጀምሮ ባለ 8 አሃዝ የሁለትዮሽ ቁጥር እሰጣለሁ

# አትም (i1)

ለ = "{0: b}"። ቅርጸት (i1)

# ህትመት (ለ)

b0 = str (ለ)

b1 = b0 [1: 8] #የመጀመሪያውን ቢት ይከርክሙት

ማተም ("የሁለትዮሽ ቁጥር" ፣ ለ 1)

# ብልጭታ ላይ ፒክሰሎችን ያዘጋጁ!

# የሁለትዮሽ ቁጥርን ወደ ፒክሰሎች ያዘጋጁ

ለኤች ውስጥ በክልል (0 ፣ 7): f = (h+1) ከሆነ (ለ ፣ r0 ፣ g0 ፣ b0) # ወደ ባዶ LED ዎች # ድምጸ -ከል ያድርጉ

# አመላካች ፒክሰል ያዘጋጁ

set_pixel (0, 0, 64, 0) # ለእርጥበት አረንጓዴ

አሳይ ()

# የ hum_blinkt መጨረሻ ()

set_clear_on_exit ()

# ከ RuuviTag መረጃን በማንበብ

mac = 'EC: 6D: 59: 6D: 01: 1C' # ወደ የራስዎ መሣሪያ የማክ አድራሻ ይለውጡ

ማተም ('ጅምር')

ዳሳሽ = RuuviTagSensor (ማክ)

እውነት እያለ ፦

ውሂብ = sensor.update ()

line_sen = str.format ('ዳሳሽ - {0}' ፣ ማክ)

line_tem = str.format ('ሙቀት ፦ {0} C' ፣ ውሂብ ['ሙቀት']) line_hum = str.format ('እርጥበት ፦ {0} %' ፣ ውሂብ ['እርጥበት'])) line_pre = str.format ('ግፊት ፦ {0}' ፣ ውሂብ ['ግፊት'])

ማተም ()

blinkt ላይ # የማሳያ ሙቀት! ba = str.format ('{0}' ፣ ውሂብ ['ሙቀት'])) bt = ተንሳፋፊ (ባ) ህትመት (bt ፣ "Â ° C") temp_blinkt (bt) ህትመት ()

time.sleep (10) # የማሳያ ሙቀት ለ 10 ሰከንዶች

በ blinkt ላይ # እርጥበት ያሳዩ!

bg = str.format ('{0}' ፣ ውሂብ ['እርጥበት']) bh = ተንሳፋፊ (bg) ህትመት (bh ፣ " %") hum_blinkt (bh) ህትመት ()

# ማያ ገጹን ያፅዱ እና የዳሳሽ ውሂብን ወደ ማያ ያትሙ

os.system ('ግልጽ') ህትመት ('ለማቆም Ctrl+C ን ይጫኑ። / n / n') ህትመት (str (datetime.now ())) ህትመት (line_sen) ህትመት (line_tem) ህትመት (line_hum) ህትመት (line_pre)) ማተም ('\ n / n / r …….')

# ለጥቂት ሰከንዶች ይጠብቁ እና እንደገና ይጀምሩ

ሞክር: ጊዜ. እንቅልፍ (8) ከቁልፍ ሰሌዳ በስተቀር መቋረጥ - # Ctrl+C ተጭኖ ሲገፋ የ loop ሲቆም የህትመት ('ውጣ') ግልፅ () ትርኢት () ዕረፍት

የሚመከር: