Բովանդակություն:
- Պարագաներ
- Քայլ 1: Ազնվամորի Պի
- Քայլ 2: Սենսորներ
- Քայլ 3: Ազնվամորի Պի կարգավորում
- Քայլ 4. Սկզբնական պետական հաշիվ
- Քայլ 5: DHT22 լուծում
- Քայլ 6: DSB18B20 լուծում
- Քայլ 7: BME280 լուծում
- Քայլ 8: enseգացեք գլխարկը
- Քայլ 9: Անհատականացրեք ձեր սկզբնական վիճակի վահանակը
Video: Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր `9 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
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- ը կունենա երեք կապ `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 լուծում
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- ի օգտագործման առաջին քայլը ֆիզիկապես տեղադրել այն ձեր 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, կարող եք սկսել մտածել այն մասին, թե շրջակա միջավայրի այլ տվյալներ որոնք կարող եք վերահսկել հաջորդիվ:
Խորհուրդ ենք տալիս:
Ինչպես կառուցել գործարանի մոնիտոր Arduino- ով. 7 քայլ
Ինչպես կառուցել բույսերի մոնիտոր Arduino- ով. Այս ձեռնարկում մենք կսովորենք, թե ինչպես կարելի է հայտնաբերել հողի խոնավությունը խոնավության սենսորով և կանաչ լույս վառել, եթե ամեն ինչ կարգին է և OLED Display և Visuino: Դիտեք տեսանյութը
Ինչպես օգտագործել DHT11 ջերմաստիճանի տվիչը Arduino- ով և տպման ջերմաստիճանի ջերմություն և խոնավություն. 5 քայլ
Ինչպես օգտագործել DHT11 ջերմաստիճանի տվիչը Arduino- ի և տպման ջերմաստիճանի ջերմության և խոնավության հետ. DHT11 տվիչը օգտագործվում է ջերմաստիճանը և խոնավությունը չափելու համար: Նրանք շատ սիրված էլեկտրոնիկայի սիրահարներ են: DHT11 խոնավության և ջերմաստիճանի տվիչը իսկապես հեշտացնում է խոնավության և ջերմաստիճանի տվյալները ձեր DIY էլեկտրոնիկայի նախագծերին ավելացնելը: Այն ըստ
Ինչպես կառուցել ջերմաստիճանի խորանարդ: 5 քայլ
Ինչպես կառուցել ջերմաստիճանի խորանարդ: Պատկերացրեք, որ կարող եք մոլորակ ուսումնասիրել ՝ օգտագործելով ոչ այլ ինչ, քան 10x10x10 խորանարդ: Այժմ դուք կարող եք: (Նշում. Այս նախագիծը իրականում լուսին չի գնա, կներեք) Իմ անունը Ալիսսա է, և այս Ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես են իմ երկու գործընկերները (Սթորմի և Հ
Ինչպես կառուցել ԷՍԳ և սրտի զարկերի թվային մոնիտոր `6 քայլ
Ինչպես կառուցել ԷՍԳ և սրտի զարկերի թվային մոնիտոր Կա էլեկտրական իմպուլս, որը հայտնի է նաև որպես ալիք, որն անցնում է սրտի միջով ՝ սրտի մկանները դարձնելու համար
Ինչպես կառուցել կիթառի խոսնակների տուփ կամ կառուցել երկու ձեր ստերեոյի համար. 17 քայլ (նկարներով)
Ինչպես կառուցել կիթառի խոսնակների արկղ կամ կառուցել երկու ձեր ստերեոյի համար. Բարձրախոսը դուրս կգա իմ խանութում, այնպես որ կարիք չկա չափազանց առանձնահատուկ բան լինել: Tolex ծածկույթը կարող է շատ հեշտությամբ վնասվել, այնպես որ ես պարզապես սև ցողեցի թեթև ավազից հետո