Բովանդակություն:

Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր `9 քայլ
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր `9 քայլ

Video: Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր `9 քայլ

Video: Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր `9 քայլ
Video: Աշոտավան․ ինչպես կանայք ազնվամորիով գյուղ զարգացրին 2024, Նոյեմբեր
Anonim
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր

Industrialերմաստիճանը և խոնավությունը տվյալների կարևոր կետերն են այսօրվա արդյունաբերական աշխարհում: Սերվերային սենյակների, առևտրային սառնարանների և արտադրական գծերի բնապահպանական տվյալների մոնիտորինգը անհրաժեշտ է, որպեսզի ամեն ինչ սահուն աշխատի: Կան բազմաթիվ լուծումներ ՝ սկսած հիմնականից մինչև բարդ, և դա կարող է ճնշող թվալ, թե ինչ է պետք ձեր բիզնեսին և որտեղ սկսել:

Մենք կքննարկենք, թե ինչպես կարելի է վերահսկել ջերմաստիճանը Raspberry Pi- ով և տարբեր ջերմաստիճանի տվիչներով, որոնք կարող եք օգտագործել: Սա լավ վայր է սկսելու համար, քանի որ այս լուծումները էժան են, հեշտ է անել և հիմք են տալիս հիմք դնել շրջակա միջավայրի այլ մոնիտորինգի համար:

Պարագաներ

  • Ազնվամորի Pi (3, 4 կամ Zero WH)
  • Temերմաստիճանի տվիչ (DHT2, DSB18B20, BME280 կամ Sense HAT)
  • 6 դյույմանոց 40-Pin IDE Male to Female Extension Cable (Sense HAT Solution)
  • 10K Resistor, Breadboard, 40-Pin Breakout Board + Ribbon Cable, Wires (For DSB18B20 Solution)

Քայլ 1: Ազնվամորի Պի

Raspberry Pi- ն էժան մեկ տախտակ ունեցող համակարգիչ է, որը թույլ կտա միանալ ջերմաստիճանի տվիչին և տվյալները փոխանցել տվյալների արտացոլման ծրագրակազմ: Raspberry Pi– ն սկսեց որպես ուսուցման գործիք և վերածվեց արդյունաբերական աշխատավայրի գործիքի: Օգտագործման դյուրինությունը և Python- ի ՝ ամենաարագ զարգացող ծրագրավորման լեզվի հետ կոդավորելու ունակությունը, դրանք դրդել է լուծման:

Դուք կցանկանաք Raspberry Pi- ն, որն ունի WiFi ներկառուցված, որոնք են 3, 4 և 0 զրոյական W/WH մոդելները: Նրանց միջև, որոնք կարող եք ընտրել ՝ հիմնվելով գների և առանձնահատկությունների վրա: Zero W/WH- ն ամենաէժանն է, բայց եթե ձեզ ավելի շատ ֆունկցիոնալություն է անհրաժեշտ, կարող եք ընտրել 3 -ից 4 -ը: Դուք կարող եք միանգամից գնել միայն մեկ Zero W/WH `Raspberry Pi Foundation- ի սահմանափակումների պատճառով: Ինչ Pi- ն էլ ընտրեք, համոզվեք, որ լիցքավորիչ եք գնում, որովհետև Raspbian- ով Pi- ի և SD քարտի միջոցով միացնելու եք օպերացիոն համակարգի հնարավորինս հեշտ տեղադրումը:

Կան մեկ այլ տախտակ ունեցող համակարգիչ, որը նույնպես կարող է աշխատել, բայց դա այլ ժամանակի և այլ հոդվածի համար է:

Քայլ 2: Սենսորներ

Կան երեք տվիչներ, որոնք խորհուրդ ենք տալիս օգտագործել, քանի որ դրանք էժան են, հեշտ են միանում և ճշգրիտ ընթերցումներ են տալիս. DSB18B20, DHT22 և Raspberry Pi Sense HAT:

DHT22 - Այս ջերմաստիճանի և խոնավության սենսորը ունի ջերմաստիճանի ճշգրտություն +/- 0.5 C և խոնավության միջակայք 0 -ից 100 տոկոս: Հեշտ է միացնել Raspberry Pi- ը և չի պահանջում քաշքշման դիմադրություններ:

DSB18B20 - Այս ջերմաստիճանի տվիչն ունի թվային ելք, որը լավ է աշխատում Raspberry Pi- ի հետ: Այն ունի երեք լար և միացման համար պահանջում է տախտակ և դիմադրություն:

BME280 - Այս սենսորը չափում է ջերմաստիճանը, խոնավությունը և բարոմետրիկ ճնշումը: Այն կարող է օգտագործվել ինչպես SPI- ում, այնպես էլ I2C- ում:

Sense HAT - Սա Raspberry Pi- ի համար հավելում է, որն ունի LED- ներ, տվիչներ և փոքրիկ ջոյսթիկ: Այն անմիջապես միանում է Raspberry Pi- ի GPIO- ին, բայց ժապավենային մալուխի օգտագործումը տալիս է ավելի ճշգրիտ ջերմաստիճանի ընթերցումներ:

Քայլ 3: Ազնվամորի Պի կարգավորում

Եթե սա առաջին անգամն է, երբ ձեր Raspberry Pi- ն տեղադրեք, ապա ձեզ հարկավոր է տեղադրել Raspbian օպերացիոն համակարգը և միացնել ձեր Pi- ն WiFi- ին: Դա կպահանջի մոնիտոր և ստեղնաշար ՝ Pi- ին միանալու համար: Երբ այն գործարկեք և միացեք WiFI- ին, ձեր Pi- ն պատրաստ է գնալ:

Քայլ 4. Սկզբնական պետական հաշիվ

Սկզբնական պետական հաշիվ
Սկզբնական պետական հաշիվ
Սկզբնական պետական հաշիվ
Սկզբնական պետական հաշիվ

Ձեզ անհրաժեշտ կլինի ինչ-որ տեղ ՝ ձեր տվյալները ուղարկելու համար ՝ պատմական տեղեկամատյան պահելու և իրական ժամանակի տվյալների հոսքը դիտելու համար, որպեսզի մենք օգտագործենք Նախնական վիճակը: Գնացեք https://iot.app.initialstate.com և ստեղծեք նոր հաշիվ կամ մուտք գործեք ձեր գոյություն ունեցող հաշիվ:

Հաջորդը, մենք պետք է տեղադրենք Initial State Python մոդուլը ձեր Pi- ի վրա: Հրամանի հուշման մեջ (նախ չմոռանաք SSH մուտքագրել ձեր Pi- ին), գործարկեք հետևյալ հրամանը.

$ cd/home/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Հրամանի տողում curl հրամանը մուտքագրելուց հետո էկրանին կտեսնեք հետևյալ արտադրանքի նման մի բան.

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Գաղտնաբառ. սկսվող ISStreamer Python Հեշտ տեղադրում: Տեղադրումը կարող է տևել մի քանի րոպե, սուրճ խմել:) Բայց մի մոռացեք վերադառնալ, ես հարցեր կունենամ ավելի ուշ: Գտնվել է easy_install: setuptools 1.1.6 Գտնվել է pip. Pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip հիմնական տարբերակ. 5 ISStreamer- ը գտնվել է, թարմացվում է … Պահանջն արդեն արդիական է. ISStreamer- ը /Library/Python/2.7/site-packages- ում Մաքրում … youանկանու՞մ եք ավտոմատ կերպով ստանալ օրինակ սցենար: [y/N] Որտե՞ղ եք ցանկանում պահպանել օրինակը: [կանխադրված..initialstate.com օգտվողի անունը. Մուտքագրեք iot.app.initialstate.com գաղտնաբառը:

Երբ հուշում է ավտոմատ կերպով ստանալ օրինակ սցենար, մուտքագրեք y: Սա կստեղծի թեստային սցենար, որը մենք կարող ենք գործարկել `ապահովելու համար, որ մենք կարող ենք տվյալներ փոխանցել Նախնական վիճակ: Հաջորդ հուշումը կհարցնի, թե որտեղ եք ցանկանում պահպանել օրինակելի ֆայլը: Դուք կարող եք կամ մուտքագրել հատուկ տեղական ուղի կամ սեղմել enter ՝ կանխադրված վայրը ընդունելու համար: Վերջապես, ձեզ կհարցնեն, թե որ սկզբնական վիճակի ծրագիրն եք օգտագործում: Եթե վերջերս հաշիվ եք ստեղծել, ընտրեք տարբերակ 2, մուտքագրեք ձեր օգտվողի անունը և գաղտնաբառը: Դրանից հետո տեղադրումը կավարտվի:

Եկեք նայենք ստեղծված սցենարի օրինակին:

$ nano is_example.py

15 -րդ տողում դուք կտեսնեք մի տող, որը սկսվում է streamer = Streamer (bucket_… նույն տողի պարամետրը: Տառերի և թվերի այդ երկար շարանը ձեր սկզբնական վիճակի հաշվի մուտքի բանալին է: Եթե ձեր վեբ դիտարկիչում գնում եք ձեր սկզբնական վիճակի հաշիվ, վերևի աջ կողմում կտտացրեք ձեր օգտվողի անունին, այնուհետև գնացեք «իմ կարգավորումները»:, այստեղ կգտնեք նույն մուտքի բանալին «Հոսքային մուտքի բանալիներ» բաժնում:

Ամեն անգամ, երբ ստեղծում եք տվյալների հոսք, մուտքի այդ բանալին այդ տվյալների հոսքը կուղղորդի դեպի ձեր հաշիվ (ուստի ձեր բանալին ոչ ոքի մի կիսեք):

Գործարկեք փորձարկման սցենարը `համոզվելու համար, որ մենք կարող ենք տվյալների հոսք ստեղծել ձեր Նախնական վիճակի հաշվին: Գործարկեք հետևյալը.

$ python is_example.py

Վերադարձեք ձեր սկզբնական վիճակի հաշվին ձեր վեբ դիտարկիչում: Տվյալների նոր դույլ, որը կոչվում է «Python Stream Օրինակ», պետք է հայտնվեր ձեր մատյանների դարակում ձախ կողմում (գուցե ստիպված լինեք թարմացնել էջը): Կտտացրեք այս դույլի վրա, այնուհետև կտտացրեք Waves պատկերակին ՝ փորձարկման տվյալները դիտելու համար

Եթե օգտագործում եք Python 3 -ը, կարող եք տեղադրել Initial State Streamer մոդուլը, որը կարող եք տեղադրել ՝ օգտագործելով հետևյալ հրամանը.

pip3 տեղադրել ISStreamer

Այժմ մենք պատրաստ ենք ջերմաստիճանի տվիչը տեղադրել Pi- ով ՝ ջերմաստիճանը վահանակ տեղափոխելու համար:

Քայլ 5: DHT22 լուծում

DHT22 լուծում
DHT22 լուծում

DHT22- ը կունենա երեք կապ `5V, Gnd և տվյալներ: DHT22- ի միացման համար պետք է լինի պին պիտակ (օրինակ ՝ «+» կամ «5V»): Միացրեք սա Pi- ի 2 -րդ կապին (վերին աջ կապում, 5V): Gnd քորոցը կպիտակավորվի «-» կամ «Gnd» կամ համարժեք այլ բանով: Միացրեք սա Pi 6 -ի 6 Gnd (երկու կապում 5V պինից ներքև) կապին: DHT22- ի մնացած քորոցը տվյալների քորոցն է և կպիտակավորվի «դուրս» կամ «ներ» կամ «տվյալներ»: Միացրեք այն Pi- ի GPIO կապումներից մեկին, ինչպիսին է GPIO4- ը (փին 7): Երբ սա միացված է, միացրեք ձեր Pi- ին:

Տեղադրեք Adafruit DHT Python մոդուլը հրամանի տողում ՝ DHT22 սենսորային տվյալների ընթերցումը շատ հեշտ դարձնելու համար.

$ sudo pip տեղադրեք Adafruit_DHT

Մեր երկու օպերացիոն համակարգով, որը տեղադրված է մեր երկու Python մոդուլների հետ ՝ սենսորային տվյալներ կարդալու և տվյալները նախնական վիճակ ուղարկելու համար, մենք պատրաստ ենք գրել մեր Python սցենարը: Հետևյալ սցենարը կստեղծի/կցի Նախնական վիճակի տվյալների շերեփին, կկարդա DHT22 սենսորի տվյալները և այդ տվյալները կուղարկի իրական ժամանակի կառավարման վահանակ: Այն, ինչ պետք է անեք, փոփոխել 6-11 տողերը:

ներմուծել Adafruit_DHT

ISStreamer. Streamer ներմուծում Streamer ներմուծման ժամանակը# --------- Օգտվողի կարգավորումներ --------- SENSOR_LOCATION_NAME = "Գրասենյակ" BUCKET_NAME = ". մասամբ արևոտ. սենյակային ջերմաստիճաններ" BUCKET_KEY = "rt0129" ACCESS_KEY = "Տեղադրեք ձեր սկզբնական պետական մուտքի բանալին այստեղ" MINUTES_BETWEEN_READS = 10METRIC_UNITS = Կեղծ # -------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) while True: խոնավություն, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) եթե METRIC_UNITS: streamer.log (SENSOR_log): temp_f = ֆորմատ (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "peratերմաստիճան (F)", temp_f) խոնավություն = ձևաչափ (խոնավություն, ".2f") streamer.log (SENSOR_LOCATION_NAME + «Խոնավություն (%)», խոնավություն) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • Տող 6 - Այս արժեքը պետք է լինի եզակի յուրաքանչյուր հանգույցի/ջերմաստիճանի տվիչի համար: Սա կարող է լինել ձեր սենսորային հանգույցի սենյակի անունը, ֆիզիկական վայրը, եզակի նույնացուցիչը կամ որևէ այլ բան: Պարզապես համոզվեք, որ յուրաքանչյուր հանգույցի համար այն եզակի է `ապահովելու համար, որ այս հանգույցի տվյալները ձեր վահանակի տվյալների սեփական հոսքին են անցնում:
  • Տող 7 - Սա տվյալների շերտի անունն է: Սա կարող է փոխվել ցանկացած պահի Initial State UI- ում:
  • Տող 8 - Սա ձեր դույլի բանալին է: Այն պետք է լինի նույն դույլի բանալին յուրաքանչյուր հանգույցի համար, որը ցանկանում եք ցուցադրել նույն վահանակում:
  • Տող 9 - Սա ձեր սկզբնական վիճակի հաշվի մուտքի բանալին է: Պատճենեք և տեղադրեք այս բանալին ձեր սկզբնական վիճակի հաշվից:
  • Տող 10 - Սա սենսորային ընթերցումների միջև ընկած ժամանակն է: Փոխել համապատասխանաբար:
  • Տող 11 - 11 -րդ տողում կարող եք նշել մետրային կամ կայսերական միավորներ:

Ձեր Python- ի ձեր Python սցենարում 6-11 տողերը սահմանելուց հետո պահպանեք և դուրս եկեք տեքստային խմբագրիչից: Գործարկեք սցենարը հետևյալ հրամանով.

$ python tempsensor.py

Այժմ դուք կունենաք տվյալներ, որոնք ուղարկվում են Նախնական վիճակի վահանակին: Գնացեք այս հոդվածի վերջին բաժին ՝ մանրամասնելու համար, թե ինչպես հարմարեցնել ձեր վահանակը:

Քայլ 6: DSB18B20 լուծում

DSB18B20 լուծում
DSB18B20 լուծում
DSB18B20 լուծում
DSB18B20 լուծում

Ribապավենային մալուխը միանում է PiI- ի GPIO կապումներին: DS18B20- ն ունի երեք լար: Կարմիր մետաղալարը միանում է 3.3 Վ -ին: Կապույտ/սև մետաղալարը միանում է գետնին: Դեղին մետաղալարը միանում է ձգվող ռեզիստորին/քորոցին 4. Այն միացնելուց հետո միացրեք ձեր Pi- ն:

Raspbian- ի վերջին տարբերակը (միջուկ 3.18) պահանջում է հավելում ձեր /boot/config.txt ֆայլում, որպեսզի Pi- ն DS18B20- ի հետ հաղորդակցվի: Այս ֆայլը խմբագրելու համար գործարկեք հետևյալը.

$ sudo nano /boot/config.txt

Եթե հետևյալ տողն այս ֆայլի մեջ չէ (եթե կա, ապա, ամենայն հավանականությամբ, դրա ներքևում է), ավելացրեք այն և պահեք ֆայլը:

dtoverlay = w1-gpio, gpiopin = 4

Վերագործարկեք ձեր Pi- ն ՝ փոփոխություններն ուժի մեջ մտնելու համար:

$ sudo վերագործարկում

Temperatureերմաստիճանի տվիչի ընթերցման ինտերֆեյսը գործարկելու համար մենք պետք է գործարկենք երկու հրաման: Գնացեք ձեր Pi- ի կամ SSH- ի հրամանի հուշում ձեր Pi- ում: Մուտքագրեք հետևյալ հրամանները.

$ sudo modprobe w1-gpio $ sudo modprobe w1-term

Ձեր ջերմաստիճանի տվիչի ելքը այժմ գրվում է ձեր Pi- ի ֆայլում: Այդ ֆայլը գտնելու համար.

$ cd/sys/bus/w1/սարքեր

Այս գրացուցակում կլինի ենթագրացուցակ, որը սկսվում է «28-» -ով: «28-» -ից հետո գալիս է ձեր տվիչի սերիական համարը: cd այդ գրացուցակում: Այս գրացուցակի ներսում w1_slave անունով ֆայլը պարունակում է ձեր տվիչի ելքը: Օգտագործեք nano ՝ ֆայլի բովանդակությունը դիտելու համար: Ֆայլը մուտքագրելուց հետո այն կունենա այսպիսի տեսք.

a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125

«T =» - ից հետո թիվը մեր ուզած թիվն է: Սա ջերմաստիճանն է 1ելսիուսի 1/1000 աստիճանում (վերը նշված օրինակում `ջերմաստիճանը 26,125 C): Մեզ պարզապես անհրաժեշտ է մի պարզ ծրագիր, որը կարդում է այս ֆայլը և վերլուծում այդ թիվը: Մենք դրան կհասնենք ընդամենը մեկ վայրկյանում:

Այժմ ամեն ինչ պատրաստ է, որպեսզի մենք սկսենք հոսքային տվյալները: Տեքստային խմբագրիչը բացելու համար հրամանի տողում մուտքագրեք հետևյալը.

$ nano temperature.py

Պատճենեք և տեղադրեք ներքևի ծածկագիրը տեքստային խմբագրիչի մեջ:

ներմուծել os

import glob ներմուծման ժամանակը ISStreamer. Streamer ներմուծման Streamerstreamer = Streamer (bucket_name = "peratերմաստիճանի հոսք", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gp -therm ') base_dir ='/sys/bus/w1/devices/'device_folder = glob.glob (base_dir + '28*') [0] device_file = device_folder + '/w1_slave' def read_temp_raw (): f = բաց (device_file, 'r') lines = f.readlines () f.close () վերադարձնել գծերը def read_temp (): lines = read_temp_raw () մինչ տողերը [0].strip () [-3:]! = 'YES': time.sleep (0.2) տող = read_temp_raw () equals_pos = տողեր [1]. գտեք ('t =') եթե հավասար է_pos! = -1: temp_string = տողեր [1] [equals_pos+2:] temp_c = float (temp_string) / 1000.0 վերադարձնել temp_c մինչ ճշմարիտ. (.5)

PUT_YOUR_ACCESS_KEY_HERE- ի փոխարեն դուք պետք է տեղադրեք ձեր Սկզբնական վիճակի մուտքի բանալին 6 -րդ տողում (պատճենեք հոսքային բանալին «Իմ հաշիվից» ձեր սեղմատախտակին և տեղադրեք այն տերմինալում nano կոդի մեջ):

6 -րդ տողը կստեղծի «peratերմաստիճանի հոսք» անվանումը ձեր նախնական վիճակի հաշվին (եթե ենթադրենք, որ ճիշտ եք նշել ձեր մուտքի բանալին այս նույն տողում): Այս սցենարի 8 -ից 30 -րդ տողերը պարզապես միանում են DS18B20 սենսորին `դրա ջերմաստիճանը w1_slave ֆայլից կարդալու համար, որը մենք քննարկեցինք ավելի վաղ: 15 -րդ տողում read_temp_raw () գործառույթը կարդում է չմշակված w1_slave ֆայլը: Read_temp () ֆունկցիան 21 տողում վերլուծում է այդ ֆայլի ջերմաստիճանը: Տող 34 -ը կանչում է այս գործառույթները `ընթացիկ ջերմաստիճանը ստանալու համար: 35 -րդ տողը ջերմաստիճանը elsելսիուսից վերածում է Ֆարենհայտի: 35 -րդ և 36 -րդ տողերում ջերմաստիճանը հոսում է ձեր Նախնական վիճակի հաշվին: 37 -րդ տողը դադարեցնում է սցենարը 0,5 վայրկյան `սահմանելով, թե որքան հաճախ է ջերմաստիճանի տվիչը կարդալու և հեռարձակվելու:

Մենք պատրաստ ենք սկսել հոսքը: Գործարկեք հետևյալ հրամանը.

$ sudo python temperature.py

Վերադարձեք ձեր սկզբնական վիճակի ձեր վեբ դիտարկիչում և փնտրեք տվյալների նոր դույլ, որը կոչվում է ջերմաստիճանի հոսք: Դուք պետք է տեսնեք ջերմաստիճանի տվյալների հոսքը ուղիղ եթերում: Փոփոխեք տվիչի ջերմաստիճանը ՝ այն բռնելով ձեր ձեռքում կամ դնելով այն մի բաժակ սառույցի մեջ:

Այժմ դուք կունենաք տվյալներ, որոնք ուղարկվում են Նախնական վիճակի վահանակին: Գնացեք այս հոդվածի վերջին բաժին ՝ մանրամասնելու համար, թե ինչպես հարմարեցնել ձեր վահանակը:

Քայլ 7: BME280 լուծում

Այս լուծումը կառուցելու համար ձեզ հարկավոր կլինի հետևյալը.

-BME280 ureնշման, ջերմաստիճանի և խոնավության ցուցիչ

Այս սենսորը գալիս է կապում, որոնք ձեզ հարկավոր է սոսնձի վրա ամրացնել: Ես խորհուրդ եմ տալիս օգտագործել տախտակ, որի հետ կապում են երկար կողքերը դեպի տախտակի մեջ, որպեսզի ավելի հեշտ լինի զոդումը: Սա ավարտելուց հետո մենք պետք է սենսորը միացնենք Pi- ին:

Սենսորի VIN կապը միացրեք Pi- ի 3.3V պին 1 -ին: Սենսորի վրա միացրեք GND կապը, Pi- ի վրա հիմնված 6 -րդ կապը: Սենսորի վրա SCK կապը միացրեք Pi- ի SCL 5 -ին: Սենսորի SDI կապը միացրեք Pi- ի SDA կապին 3 -ին: Այս լուծման համար դուք պետք է օգտագործեք Python 3 -ը և տեղադրեք Initial State Streamer մոդուլը ՝ օգտագործելով pip3 տեղադրման մեթոդը:

Դուք նաև պետք է տեղադրեք Adafruit Python գրադարաններ:

pip3 տեղադրել adafruit-blinkapip3 տեղադրել pureio pip3 տեղադրել spidev pip3 տեղադրել adafruit-GPIO pip3 տեղադրել adafruit-circuitpython-bme280

Սենսորից օգտվելու համար մենք պետք է միացնենք I2C- ը Pi- ի վրա:

sudo raspi-config

Սա կբացի Raspberry Pi ծրագրակազմի կազմաձևման գործիքը: Գնացեք տարբերակ 5 Ինտերֆեյսերի ընտրանքներ: Այստեղից գնացեք I2C: Այն կհուշի ձեզ հարցնել, թե արդյոք ցանկանում եք միացնել I2C- ը, ընտրել Այո և Ավարտել: Այժմ դուք միացված եք I2C- ին ՝ սենսորի հետ հաղորդակցվելու համար:

Մենք կարող ենք դա ստուգել ՝ գործարկելով հետևյալը.

sudo i2cdetect -y 1

Սա կհաստատի, որ ձեր Pi- ն տեսնում է սենսորը: Ինչպես է այն միացված, այն պետք է ցույց տա սենսորը 77 հասցեում: Եթե դուք չեք հայտնաբերում սենսորը, վերագործարկեք ձեր Pi- ը, միացրեք ձեր Pi- ի վրա I2C ինտերֆեյսի տարբերակը և նորից փորձեք: Երբ ձեր սենսորը հայտնաբերվի, ժամանակն է գործարկել մեր հիմնական կոդը, որը տվյալներ կուղարկի Նախնական Պետություն: Նանո հրամանով ստեղծեց bme280sensor.py անունով ֆայլ: Պատճենեք և տեղադրեք ծածկագիրը հիմնականից տեքստային խմբագրիչի մեջ: Դուք պետք է փոփոխություններ կատարեք 12–19 տողերում:

ներմուծման ժամանակը

ներմուծում -Օգտվողի կարգավորումներ --------- SENSOR_LOCATION_NAME = "Գրասենյակ" BUCKET_NAME = ". Մասամբ արևոտ. Սենյակի ջերմաստիճան" BUCKET_KEY = "temp1" ACCESS_KEY = "YOUR ACCESS KEY HERE" # փոխեք սա `տեղադրության ճնշմանը համապատասխանելու համար (hPa) ծովի մակարդակում bme280.sea_level_pressure = 1013.25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = Կեղծ # --------------------------------- # ԿԱՄ ստեղծենք գրադարանային օբյեկտ ՝ օգտագործելով մեր Bus SPI նավահանգիստը #spi = busio. SPI (տախտակ. SCK, տախտակ. MOSI, տախտակ. MISO) #bme_cs = digitalio. DigitalInOut (տախտակ. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) մինչդեռ ճշմարիտ: re եթե METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "peratերմաստիճան (C)", temp_c) այլ ՝ temp_f = ձևաչափ (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "peratերմաստիճան (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + «Խոնավություն (%)», խոնավություն) streamer.log (SENSOR_LOCATION_NAME + «ureնշում (hPA)», ճնշում) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • Տող 12- Այս արժեքը պետք է լինի եզակի յուրաքանչյուր հանգույցի/ջերմաստիճանի տվիչի համար: Սա կարող է լինել ձեր սենսորային հանգույցի սենյակի անունը, ֆիզիկական վայրը, եզակի նույնացուցիչը կամ որևէ այլ բան: Պարզապես համոզվեք, որ յուրաքանչյուր հանգույցի համար այն եզակի է `ապահովելու համար, որ այս հանգույցի տվյալները ձեր վահանակի տվյալների սեփական հոսքին են անցնում:
  • Տող 13- Սա տվյալների շերտի անունն է: Սա կարող է փոխվել ցանկացած պահի Initial State UI- ում:
  • Տող 14- Սա ձեր դույլի բանալին է: Այն պետք է լինի նույն դույլի բանալին յուրաքանչյուր ցանկալի հանգույցի համար, որը կցուցադրվի նույն վահանակում:
  • Տող 15- Սա ձեր սկզբնական վիճակի հաշվի մուտքի բանալին է: Պատճենեք և տեղադրեք այս բանալին ձեր սկզբնական վիճակի հաշվից:
  • Տող 17- Սա ձեր գտնվելու վայրի ճնշումն է (hPa) ծովի մակարդակում: Այս տեղեկատվությունը կարող եք գտնել եղանակային կայքերի մեծ մասում:
  • Տող 18 - Սա սենսորային ընթերցումների միջև ընկած ժամանակն է: Փոխեք համապատասխանաբար: Գիծ 19- Այստեղ կարող եք նշել մետրային կամ կայսերական միավորներ:

Ձեր Pi Zero WH- ի Python սցենարում 12–19 տողերը սահմանելուց հետո պահպանեք և դուրս եկեք տեքստային խմբագրիչից: Գործարկեք սցենարը հետևյալ հրամանով.

$ python3 bme280sensor.py

Այժմ դուք կունենաք տվյալներ, որոնք ուղարկվում են Նախնական վիճակի վահանակին: Գնացեք այս հոդվածի վերջին բաժին ՝ մանրամասնելու համար, թե ինչպես հարմարեցնել ձեր վահանակը:

Քայլ 8: enseգացեք գլխարկը

Sense HAT
Sense HAT
Sense HAT
Sense HAT

Sense HAT- ի օգտագործման առաջին քայլը ֆիզիկապես տեղադրել այն ձեր Pi- ի վրա: Pi- ն անջատված վիճակում ամրացրեք գլխարկը, ինչպես ցույց է տրված նկարում:

Եթե որոշեք օգտագործել լուծումը, ինչպես ցույց է տրված վերևում, կարող եք նկատել, որ ձեր Sense HAT- ի ջերմաստիճանի ցուցանիշները մի փոքր բարձր կլինեն. Դա այն պատճառով է, որ դրանք այդպես են: Մեղավորը Pi- ի պրոցեսորից առաջացած ջերմությունն է, որը տաքացնում է օդը Sense HAT- ի շուրջը, երբ այն նստած է Pi- ի գագաթին: Temperatureերմաստիճանի տվիչը օգտակար դարձնելու համար մենք պետք է կա՛մ հեռացնենք HAT- ը Pi- ից, կա՛մ փորձենք ճշգրտել ջերմաստիճանի տվիչի ընթերցումը: Սենսորը Pi- ից հեռացնելու լավ լուծում է մալուխը, որը թույլ է տալիս Sense HAT- ը հեռու մնալ Pi- ից: 6 դյույմանոց, 40-պինանոց IDE արականից իգական երկարացման մալուխը հնարքը կանի:

Երկու տարբերակների մասին որոշում կայացնելուց հետո միացրեք ձեր Pi- ն: Մենք պետք է տեղադրենք Python գրադարանը, որպեսզի հեշտ լինի կարդալ սենսորների արժեքները Sense HAT- ից: Նախ, դուք պետք է համոզվեք, որ Raspbian- ի ձեր տարբերակում ամեն ինչ արդիական է.

$ sudo apt-get թարմացում

Հաջորդը, տեղադրեք Sense HAT Python գրադարանը.

$ sudo apt-get install sense-hat

Վերագործարկեք ձեր Pi- ն: Մենք պատրաստ ենք փորձարկել Sense HAT- ը ՝ կարդալով դրանից սենսորների տվյալները և ուղարկելով այդ տվյալները Նախնական վիճակ:

Ստեղծեք sensehat անունով ֆայլ և բացեք այն տեքստային խմբագրիչում ՝ հրամանի տողում մուտքագրելով հետևյալը.

$ nano sensehat.py

Պատճենեք և տեղադրեք ներքևի ծածկագիրը տեքստային խմբագրիչում:

sense_hat- ից ներմուծել SenseHat- ը

ներմուծման ժամանակ ներմուծման sys ISStreamer. Streamer import Streamer # --------- User Settings --------- BUCKET_NAME = "Գրասենյակային եղանակ" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " Գրասենյակ "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # --------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () while True: # Կարդացեք սենսորները temp_c = sense.get_temperature () խոնավություն = զգացում. get_humidity () press_mb = sense.get_pressure () # Ձևաչափեք տվյալների temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". Ձևաչափ (temp_f)) խոնավություն = float ("{0:.2f}". Ձևաչափ (խոնավություն)) press_in = 0.03937008*(pressure_mb) press_in = float ("{ 0:.2f} ". Ձևաչափ (ճնշման մեջ)) # Տպել և հոսել տպել SENSOR_LOCATION_NAME +" peratերմաստիճանը (F). " + Փող (temp_f) տպել SENSOR_LOCATION_NAME +" Խոնավություն (%). " + Փող (խոնավություն) տպել SENSOR_LOCATION_NAME +" Pressնշում (IN) ՝ " + str (pressure_in) streamer.log (": sunny: " + SEN SOR_LOCATION_NAME + "peratերմաստիճան (F)", temp_f) streamer.log (": sweat_drops:" + SENSOR_LOCATION_NAME + "Խոնավություն (%)", խոնավություն) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "ureնշում (IN)"), pressure_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)

Առաջին տողում նշեք, որ մենք SenseHat գրադարանը ներմուծում ենք սցենարի մեջ: Նախքան այս սցենարը գործարկելը, մենք պետք է կարգավորենք մեր օգտագործողի պարամետրերը:

# --------- Օգտագործողի կարգավորումներ ---------

BUCKET_NAME = "Գրասենյակի եղանակը" BUCKET_KEY = "sensehat" ACCESS_KEY = "Ձեր_Մուտքի_բանալին" SENSOR_LOCATION_NAME = "Գրասենյակ" MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------

Մասնավորապես, դուք պետք է ձեր ACCESS_KEY- ը սահմանեք ձեր սկզբնական պետության հաշվի մուտքի բանալին: Դուք կարող եք BUCKET_NAME- ը և SENSOR_LOCATION_NAME- ը փոխել սենսորի իրական վայրին: Պահեք և դուրս եկեք տեքստային խմբագրիչից:

Ձեր Pi- ի հրամանի տողում գործարկեք սցենարը.

$ sudo python sensehat.py

Այժմ դուք կունենաք տվյալներ, որոնք ուղարկվում են Նախնական վիճակի վահանակին: Գնացեք այս հոդվածի վերջին բաժին ՝ մանրամասնելու համար, թե ինչպես հարմարեցնել ձեր վահանակը:

Քայլ 9: Անհատականացրեք ձեր սկզբնական վիճակի վահանակը

Անհատականացրեք ձեր սկզբնական վիճակի վահանակը
Անհատականացրեք ձեր սկզբնական վիճակի վահանակը

Գնացեք ձեր Նախնական վիճակի հաշիվ և նայեք ձեր տվյալները: Կարող եք աջ սեղմել Սալիկի վրա ՝ գծապատկերի տեսակը փոխելու համար և սեղմել Խմբագրել սալիկներ `ձեր սալիկները չափափոխելու և տեղաշարժելու համար: Ես խորհուրդ կտայի օգտագործել ջերմաչափի ջերմաստիճանը ջերմաստիճանի համար և հեղուկի մակարդակը խոնավության համար: Դուք կարող եք գծերի գծապատկերներ ստեղծել ինչպես ջերմաստիճանի, այնպես էլ խոնավության համար ՝ ժամանակի ընթացքում փոփոխություններ տեսնելու համար: Կարող եք նաև ֆոնի պատկեր ավելացնել ձեր վահանակին:

Դուք կարող եք կարգաբերել ազդանշանների ազդանշանը, որպեսզի կարողանաք ստանալ SMS կամ էլփոստ, եթե ջերմաստիճանը իջնի կամ որոշակի շեմից բարձր լինի: Գնացեք ձեր տվյալների շտեմարան և կտտացրեք կարգավորումներ: Այնտեղից անցեք Triggers ներդիրին: Մուտքագրեք հոսքի բանալին, որը ցանկանում եք վերահսկել, օպերատորը, որը ցանկանում եք օգտագործել և շեմի արժեքը: Սեղմեք գումարած նշանին ՝ ձգան ավելացնելու համար: Այնուհետև մուտքագրեք ձեր էլ. Փոստը կամ հեռախոսահամարը ՝ ահազանգը ստանալու համար և կտտացրեք գումարած նշանին: Ձեր բոլոր գործարկիչները կարգավորելուց հետո կտտացրեք «Կատարված» կոճակը ներքևում:

Այժմ, երբ դուք ստեղծել եք ջերմաստիճանի մոնիտոր ՝ օգտագործելով ջերմաստիճանի տվիչ և Raspberry Pi, կարող եք սկսել մտածել այն մասին, թե շրջակա միջավայրի այլ տվյալներ որոնք կարող եք վերահսկել հաջորդիվ:

Խորհուրդ ենք տալիս: