Агуулгын хүснэгт:

RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр: 3 алхам (зурагтай)
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр: 3 алхам (зурагтай)

Видео: RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр: 3 алхам (зурагтай)

Видео: RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр: 3 алхам (зурагтай)
Видео: Превратите свой Raspberry Pi Pico в ПЛК Mitsubishi FX1N 2024, Долдугаар сарын
Anonim
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр

Энэхүү заавар нь RuuviTag -аас Raspi Pi Zero W бүхий Bluetooth ашиглан температур, чийгшлийн өгөгдлийг уншиж, утгыг хоёртын тоогоор Pimoroni blinkt дээр харуулах аргыг тайлбарласан болно. PHAT. Эсвэл товчхондоо: хамгийн сүүлийн үеийн дэвшилтэт техник, термометрийг хэрхэн яаж бүтээх талаар.

RuuviTag нь температур, чийгшил/даралт, хурдатгалын мэдрэгчтэй ирдэг нээлттэй эх үүсвэр бүхий bluetooth гэрэлтүүлэгч боловч Eddystone ™/iBeacon стандартын ойролцоох гэрэлт цамхаг болж чаддаг. Энэ бол Kickstarter -ийн маш амжилттай төсөл байсан бөгөөд би хэдэн долоо хоногийн өмнө миний төслийг авсан. RuuviTag -ийг бөөрөлзгөнө ашиглан унших python програмтай Github байдаг бөгөөд би тэдний нэг жишээг зарим нэмэлтээр ашигласан болно.

Raspberry Pi Zero W нь RPi гэр бүлийн хамгийн сүүлийн гишүүн бөгөөд үндсэндээ Bluetooth болон WLAN -тэй Pi Zero юм.

Нүдээ анив! Пиморонигийн pHAT нь үндсэндээ Raspberry Pi -ийн малгай болгон тохируулсан найман RBG LED зурвас юм. Энэ нь ашиглахад тун хялбар бөгөөд питон номын сантай хамт ирдэг. Санаа нь RuuviTag -аас өгөгдлийг уншиж, анивчих ашиглан харуулах явдал байв! Малгай. Утга нь LED-ийн 7-ийг ашиглан хоёртын тоогоор харуулдаг бол найман нь чийгшил эсвэл температур (+/-/0) утгыг харуулахыг харуулдаг.

Алхам 1: Системийг тохируулах

Системийг тохируулахад хялбар байдаг:- RuuviTag-ийг асаах (RuuviTag температур мэдрэгчийн хувилбар).

- Raspi Zero W, RPi3 эсвэл bluetooth багтаамжтай бусад RPi -ийг www.raspberrypi.org дээрх зааврыг дагаж тохируулна уу.

- Нүдээ анивч! RPi дээр HAT (унтраах үед).

- Нүдний шилийг суулгаарай! болон RuuviTag програм хангамжийг GitHub -ийн харгалзах хуудсуудад заасан болно.

- Та одоо RuuviTag -ийнхаа MAC хаягийг тодорхойлох ёстой

- хавсаргасан Python програмыг хуулж Python 3 -д зориулсан IDLE ашиглан нээнэ үү

- RuuviTag -ийн MAC хаягийг өөрчилж, програмаа хадгалаад ажиллуулна уу.

- програмыг өөрчлөх, оновчтой болгоход чөлөөтэй байх. Хөтөлбөрийг өөрийн эрсдэлээр ашиглахын тулд ямар нэгэн хохирол учруулахгүй.

Алхам 2: Төхөөрөмж ба програм

Төхөөрөмж ба програм
Төхөөрөмж ба програм
Төхөөрөмж ба програм
Төхөөрөмж ба програм
Төхөөрөмж ба програм
Төхөөрөмж ба програм
Төхөөрөмж ба програм
Төхөөрөмж ба програм

Дээр дурдсанчлан, гэрэлт цамхаг дээрх өгөгдлийг уншиж, тоон утгыг анивчихад харуулах энгийн бөгөөд хямд системийг бүтээх санаа байсан юм! HAT, эсвэл үүнтэй төстэй LED зурвас.

RPi суурилсан системээр хэмжих температурын утгын хүрээ ихэнх тохиолдолд -50 ° C -аас +80 ° C -ийн хооронд, чийгшил 0 -ээс 100%хооронд байх болно. Тиймээс -100 -аас +100 хүртэлх утгыг өгөх боломжтой дэлгэц нь ихэнх програмуудад хангалттай байх болно. 128 -аас жижиг аравтын тоог 7 бит (эсвэл LED) бүхий хоёртын тоогоор харуулах боломжтой. Тиймээс програм нь температур, чийгшлийн утгыг RuuviTag -аас "хөвөгч" тоо болгон аваад тэдгээрийг хоёртын тоо болгон хувиргадаг бөгөөд үүнийг дараа нь анивчдаг.

Эхний алхам бол тоог дугуйруулж, эерэг, сөрөг эсвэл тэг эсэхийг шинжилж, дараа нь "abs" ашиглан эерэг тоо болгон хувиргана. Дараа нь аравтын бутархай тоог 7 оронтой хоёртын тоо болгон хөрвүүлдэг бөгөөд үндсэндээ 0 ба 1-ийн мөрөнд дүн шинжилгээ хийж, блинктийн сүүлийн 7 пиксел дээр харуулдаг.

Температурын утгын хувьд эхний пиксел нь эерэг (улаан), тэг (ягаан) эсвэл сөрөг (цэнхэр) утгыг илэрхийлнэ. Чийгшлийн утгыг харуулахдаа ногоон болгож тохируулна. Температур ба чийгшлийн ялгааг хялбарчлахын тулд хоёртын пикселийг температурын хувьд цагаан, чийгийг шараар тохируулна. Хоёртын тоонуудын ойлгомжтой байдлыг сайжруулахын тулд "0" пикселийг бүрэн унтраасангүй, харин "1" төлөвтэй харьцуулахад хамаагүй сул байна. Яг л анивчих шиг! пикселүүд нь маш тод, та "тод" параметрийг өөрчлөх замаар ерөнхий тод байдлыг тохируулж болно.

Хөтөлбөр нь процессын утга, хэсгүүдийг дэлгэц дээр харуулдаг. Нэмж хэлэхэд та хэд хэдэн хаагдсан (#) хэвлэх зааврыг олох болно. Дууг нээхгүй бол үйл явцыг ойлгоход тустай байж магадгүй тул би тэднийг үлдээсэн.

Мөн утгыг бүртгэлийн файлд хадгалж болно.

Алхам 3: Програмын код

Кодыг арай дибаг хийж, оновчтой болгосон. Та одоо 3 -р хувилбарыг (20_03_2017) олж болно.

'Энэ програм нь температур, чийгшил, даралтын утгыг RuuviTag хэлбэрээр уншиж, температур, чийгшлийн утгыг Pimorini blinkt дээр хоёртын тоогоор харуулах зорилготой юм! Малгай. '' '' Энэ нь github дахь ruuvitag номын сангийн print_to_screen.py жишээнд үндэслэсэн болно. '' Pi Zero W, Pi 3 эсвэл bluetooth -ээр тоноглогдсон бусад RPi болон шаардлагатай бүх номын санг суулгах шаардлагатай. '

импортлох хугацаа

datetime -аас os импортлох datetime

ruuvitag_sensor.ruuvi -аас RuuviTagSensor импортлох

blinkt импортоос set_clear_on_exit, set_pixel, цэвэрлэх, харуулах

def temp_blinkt (bt):

# энэ горим нь температурын утгыг аваад blinkt дээр хоёртын тоо болгон харуулдаг!

тодорхой ()

"1" пикселийн # өнгө ба эрч хүч: цагаан

r1 = 64 g1 = 64 b1 = 64

#0 пикселийн өнгө ба эрч хүч: цагаан

r0 = 5 g0 = 5 b0 = 5

# Бөөрөнхийлж бүхэл тоо болгон хөрвүүлнэ

r = дугуй (bt)

# vz нь заагч пикселийн алгебрийн тэмдгийг илэрхийлнэ

if (r> 0): vz = 1 # эерэг elif (r <0): vz = 2 # сөрөг өөр: vz = 0 # тэг # хэвлэх (vz) i = abs (r) # хэвлэх (i)

# үнэмлэхүй, 7 оронтой хоёртын тоо болгон хувиргах

i1 = i + 128 # нь 1 үр дүнгээс эхлэн 8 оронтой хоёртын тоог гаргадаг (i1)

b = "{0: b}". формат (i1) # хоёртын формат руу хөрвүүлэх

# хэвлэх (б)

b0 = str (b) # мөр рүү хөрвүүлэх

b1 = b0 [1: 8] #эхний битийг таслаарай

хэвлэх ("хоёртын дугаар:", b1)

# Blinkt дээр пиксел тохируулна уу!

# хоёртын дугаар тохируулах

h -ийн хувьд (0, 7): f = (h+1) if (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " нь 1, пиксел ", f) өөр: set_pixel (f, r0, g0, b0) # хэвлэх (" тэг ")

# Үзүүлэлтийн пикселийг тохируулна уу

if (vz == 1): set_pixel (0, 64, 0, 0) # улаан эерэг утгуудын хувьд elif (vz == 2): set_pixel (0, 0, 0, 64) # сөрөг утгын хувьд цэнхэр: set_pixel (0, 64, 0, 64) # улаан бол тэг бол

шоу ()

temp_blinkt -ийн # төгсгөл ()

def hum_blinkt (bh):

# Энэ нь чийгшлийн утгыг аваад blinkt дээр хоёртын тоо болгон харуулна!

тодорхой ()

"1" пикселийн өнгө, эрч хүч: шар

r1 = 64 g1 = 64 b1 = 0

#0 пикселийн өнгө ба эрч хүч:

r0 = 5 g0 = 5 b0 = 0

# Бөөрөнхийлж бүхэл тоо болгон хувиргана уу

r = дугуй (bh)

# үнэмлэхүй, 7 оронтой хоёртын дугаарт хувиргах i = abs (r) # хэвлэх (i)

i1 = i + 128 # нь i-ээс эхлэн 8 оронтой хоёртын тоог өгдөг

# хэвлэх (i1)

b = "{0: b}". формат (i1)

# хэвлэх (б)

b0 = str (b)

b1 = b0 [1: 8] #эхний битийг таслаарай

хэвлэх ("хоёртын дугаар:", b1)

# Blinkt дээр пиксел тохируулна уу!

# хоёртын дугаарыг пиксел болгон тохируулна уу

h -ийн хувьд (0, 7): f = (h+1) if (b1 [h] == "1"): set_pixel (f, r1, g1, b1) өөр: # хоосон LED -ийн дууг хаах set_pixel (f, 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 (mac)

үнэн байхад:

өгөгдөл = sensor.update ()

line_sen = str.format ('Мэдрэгч - {0}', mac)

line_tem = str.format ('Температур: {0} C', өгөгдөл ['температур']) line_hum = str.format ('Чийглэг: {0} %', өгөгдөл ['чийгшил']) line_pre = str.format ('Даралт: {0}', өгөгдөл ['даралт'])

хэвлэх ()

# дэлгэцийн температур blinkt дээр! ba = str.format ('{0}', өгөгдөл ['температур']) bt = хөвөх (ba) хэвлэх (bt, "Â ° C") temp_blinkt (bt) хэвлэх ()

time.sleep (10) # дэлгэцийн температурыг 10 секундын турш харуулна

# чийгшлийг blinkt дээр харуулна!

bg = str.format ('{0}', өгөгдөл ['чийгшил']) bh = хөвөх (bg) хэвлэх (bh, " %") hum_blinkt (bh) хэвлэх ()

# Дэлгэцийг цэвэрлэж, мэдрэгчийн өгөгдлийг дэлгэц дээр хэвлэх

os.system ('clear') print ('Ctrl+C дарж гарах. / n / n') хэвлэх (str (datetime.now ())) хэвлэх (line_sen) хэвлэх (line_tem) хэвлэх (line_hum) хэвлэх (line_pre) хэвлэх ('\ n / n / r …….')

# Хэдхэн секунд хүлээгээд дахин эхлүүлээрэй

оролдох: time.sleep (8) Keyboard -аас бусад Тасалдал: # Ctrl+C дарагдсан үед while давталтын гүйцэтгэлийг зогсоох ажлыг зогсоох ('Exit') clear () show () break

Зөвлөмж болгож буй: