Բովանդակություն:
- Քայլ 1: Temերմաստիճանի մոնիտորինգ
- Քայլ 2: Կարգավորեք Cloud4Rpi.io- ն
- Քայլ 3: UPS մոնիտորինգ
- Քայլ 4. «Արտադրության» պատրաստում
- Քայլ 5: Կառավարման վահանակի տեղադրում
Video: DIY տան մոնիտորինգ RaspberryPi- ի և Cloud4Rpi- ի միջոցով. 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Մի ձմեռային հանգստյան օրեր ես գնացի իմ գյուղական տուն և պարզեցի, որ այնտեղ շատ ցուրտ էր: Էլեկտրաէներգիայի հետ ինչ -որ բան էր պատահել, և RCD անջատիչն այն անջատել էր, և ջեռուցումն նույնպես անջատվել էր: Իմ բախտը բերեց, որ եկա այնտեղ, այլապես մի քանի օրից ամեն ինչ սառած կլիներ, ինչը շատ վատ է խողովակների և մարտկոցների համար:
Ես ունեի մի քանի Raspberry Pi և ջերմային տվիչ, ուստի մտածեցի. Ստորև բերված հրահանգները ենթադրում են, որ ունեք Raspberry Pi- ով Raspbian և ցանցային միացում: Իմ դեպքում դա Raspberry Pi B+ է Raspbian- ով (2018–06–27-raspbian-stretch-lite):
Քայլ 1: Temերմաստիճանի մոնիտորինգ
Ինչպե՞ս միացնել DS18B20 ջերմաստիճանի տվիչ: Ուղղակի google- ում արեք, թե ինչպես դա անել, և կտեսնեք այսպիսի շատ նկարներ.
Իմ դեպքում ես ունեի սև, դեղին և կարմիր լարեր: Սևը հիմնավորված է, անցնում է Ground pin- ի, կարմիրը `հզորության - անցնում է 3.3v pin- ի, իսկ դեղինը` տվյալների, պետք է անցնի GPIO4 փին, տվյալների և հզորության միջև միացված 4.7 kOm ռեզիստորով: Նշում, կարող եք միացնել մի քանի տվիչ զուգահեռաբար (դրանք թվային են և ունեն տարբեր հասցեներ), ձեզ հարկավոր է միայն մեկ դիմադրություն: Սենսորը միացնելուց հետո դուք պետք է միացնեք 1Wire- ը raspi-config- ում.
sudo raspi-config
Գնացեք Ինտերֆեյսինգի 5 տարբերակ, միացրեք P7 1-Wire և վերագործարկեք:
Այնուհետև կարող եք ստուգել, արդյոք տեսնում եք սենսորը.
sudo modprobe w1-gpiosudo modprobe w1-thermls/sys/bus/w1/devices/
Դուք պետք է տեսնեք այսպիսի բան.
pi@vcontrol: ~ $ ls/sys/bus/w1/devices/28–00044eae2dff w1_bus_master1
28–00044eae2dff- ը մեր ջերմաստիճանի տվիչն է:
Սարքավորումը պատրաստ է: Այժմ ես պետք է կարգավորեմ մոնիտորինգի հատվածը: Ինձ պետք է մի բան, որը ցույց կտա ինձ տվյալները և կտեղեկացնի ինձ, եթե սարքը որոշ ժամանակով անջատված է կամ հոսանք չկա, կամ ջերմաստիճանը ցածր է: Ակնհայտ է, որ դա չի կարող լինել ազնվամորի pi- ն, ինտերնետում պետք է լինի ինչ -որ սերվեր կամ ծառայություն, որը վերահսկում է իմ սարքը:
Ես կարող եմ ստեղծել մի պարզ սերվեր, ստանալ հոստինգ և կարգավորել ամեն ինչ, բայց անկեղծորեն, ես չեմ ուզում: Բարեբախտաբար, ինչ -որ մեկն արդեն մտածել է այս մասին և ստեղծել cloud4rpi.io ՝ ձեր սարքի ամպային կառավարման վահանակը:
Քայլ 2: Կարգավորեք Cloud4Rpi.io- ն
Cloud4Rpi- ն տրամադրում է ծառայություն, որը թույլ է տալիս ձեր սարքին ուղարկել և ստանալ տվյալներ ՝ օգտագործելով MQTT կամ HTTP արձանագրությունները: Նրանք ունեն հաճախորդների գրադարան Python- ի համար, այնպես որ ես կօգտագործեմ Python- ը:
Python- ի օրինակները, որոնք գալիս են Cloud4Rpi ծառայության հետ, արդեն պարունակում են ծածկագիր DS18B20 ջերմաստիճանի տվիչի համար:
Այսպիսով, ես գնացի https://cloud4rpi.io, ստեղծեցի հաշիվ և այնտեղ ավելացրի նոր սարք: Սարքի էջն ունի նշան `տող, որը նույնականացնում է սարքը և որը պետք է նշվի տվյալներ ուղարկող ծրագրում:
Սկսելու համար, միշտ լավ գաղափար է փաթեթների կառավարչի թարմացումը և փաթեթների արդիականացումը (նշեք. Դա կարող է տևել ժամեր, եթե որոշ ժամանակ չեք արդիականացրել):
sudo apt-get update && sudo apt-get upgrade
Այնուհետև տեղադրեք git, Python և դրա փաթեթների կառավարիչ Pip:
sudo apt-get տեղադրել git python python-pip
Այնուհետև տեղադրեք cloud4rpi Python գրադարանը.
sudo pip- ը տեղադրել cloud4rpi
Վերջապես, ես պատրաստ եմ գրել իմ կառավարման ծրագիրը: Ես սկսում եմ օրինակից ՝
git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi… cloud4rpicd cloud4rpi
Հիմնական ծրագրի ֆայլը control.py է - ես պետք է փոփոխեմ այն իմ կարիքների համար: Նախ խմբագրեք ծրագիրը և տեղադրեք նշան.
sudo nano control.py
Գտեք DEVICE_TOKEN = '…'] տող և այնտեղ նշեք սարքի նշանը: Դրանից հետո ես կարող եմ պարզապես գործարկել ծրագիրը. Այն աշխատում է և հաղորդում ջերմաստիճան RoomTemp փոփոխականում.
sudo python control.py
Այն աշխատում և հաղորդում է ջերմաստիճանը RoomTemp փոփոխականում:
Նկատի ունեցեք, որ այն հայտնաբերում է բոլոր onewire ds18b20 տվիչները
ds_sensors = ds18b20. DS18B20.find_all ()
և օգտագործում է առաջին գտած սենսորը ՝
RoomTemp ': {' type ':' numeric ',' bind ': ds_sensors [0] if ds_sensors else None}
Լավ, դա հեշտ էր, քանի որ ընտրանքային ծրագիրն ունի այն ամենը, ինչ անհրաժեշտ է Raspberry Pi- ի վրա ds18b20 սենսորով աշխատելու համար: Այժմ ես պետք է գտնեմ էներգիայի կարգավիճակի մասին հաշվետվության ձևը:
Քայլ 3: UPS մոնիտորինգ
Հաջորդ բանը, որ ես ուզում եմ վերահսկել, UPS- ի կարգավիճակն է, այնպես որ, եթե հոսանքի անջատում լինի, ես դրա մասին կիմանամ նախքան ամեն ինչ անջատվելը:
Ես ունեմ APC UPS ՝ USB հսկողությամբ, ուստի արագ գուգլեցի և պարզեցի, որ ինձ apcupsd է պետք: https://www.anites.com/2013/09/monitoring-ups.html… Ես մի քանի անգամ փորձեցի տեղադրել apt-get- ի միջոցով, և դա ինձ համար տարբեր պատճառներով չէր աշխատում: Ես ցույց կտամ, թե ինչպես տեղադրել այն աղբյուրներից:
wget https://sourceforge.net/projects/apcupsd/files/ap…tar xvf apcupsd-3.14.14.tar.gz cd apcupsd-3.14.14./configure --enable-usb sudo make sudo make install
Հետո ես խմբագրում եմ apcupsd.conf- ը ՝ USB- ի միջոցով իմ UPS- ին միանալու համար:
sudo nano /etc/apcupsd/apcupsd.conf# #UPSCABLE խելացի UPSCABLE usb ##UPSTYPE apcsmart #ՍԱՐՔ/dev/ttyS0 UPSTYPE usb ՍԱՐՔ
Այժմ ես կարող եմ միացնել USB մալուխը UPS- ից RaspberryPi- ին և ստուգել, թե արդյոք UPS- ը կգտնվի:
sudo apctest
Այն չպետք է ձեզ սխալ հաղորդագրություններ տա:
Այժմ sevice apcupsd- ը պետք է սկսել.
sudo systemctl սկսել apcupsd
UPS- ի կարգավիճակը հարցնելու համար կարող եմ օգտագործել կարգավիճակի հրաման.
sudo /etc/init.d/apcupsd կարգավիճակը
Եվ դա մոտավորապես ինչ -որ բան կարտադրի.
APC: 001, 035, 0855 ԹՎԱԿԱՆԸ ՝ 2018-10-14 16:55:30 +0300 ՀԱՅԱՍՏԱՆԸ ՝ vcontrol VERSION ՝ 3.14.14 (31 մայիսի 2016) debian UPSNAME: vcontrol CABLE: USB Cable DRIVER: USB UPS Driver UPSMODE: Stand Alone ՍԿՍԱ 0 վայրկյան զգացում. Միջին LOTRANS: 140.0 վոլտ HITRANS: 300.0 վոլտ ALARMDEL: 30 վայրկյան BATTV: 14.2 վոլտ LASTXFER.: 2014-06-10 NOMINV: 230 վոլտ NOMBATTV: 12.0 վոլտ NOMPOWER: 390 Վտ FIRMWARE: 892. R3. I USB FW: R3 END APC: 2018-10-14 16:55:38 +0300
Ինձ պետք է կարգավիճակ, որը «ՍՏԱՏՈ:Ս» տողն է:
Cloud4rpi գրադարանը պարունակում է «rpy.py» մոդուլ, որը վերադարձնում է Raspberry Pi համակարգի պարամետրերը, ինչպիսիք են հյուրընկալողի անունը կամ պրոցեսորի ջերմաստիճանը: Քանի որ այդ բոլոր պարամետրերը որոշ հրամանների գործարկման և ելքի վերլուծման արդյունք են, այն պարունակում է նաև հարմար «parse_output» գործառույթ, որն անում է այն, ինչ ինձ պետք է: Ահա թե ինչպես ստանալ իմ UPS կարգավիճակը.
def ups_status (): result = rpi.parse_output (r'STATUS / s+: / s+(S+) ', [' /etc/init.d/apcupsd ',' status '])) եթե արդյունքը. վերադարձ արդյունքը այլ: վերադարձ «ԱՆՀԱՅՏ»
Այս կարգավիճակը cloud4rpi- ին ուղարկելու համար ես պետք է հայտարարեմ փոփոխական UPSStatus և կապեմ այն իմ ups_status գործառույթին. Այժմ ես կարող եմ գործարկել իմ ծրագիրը.
variables = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
Եվ ես կարող եմ անմիջապես տեսնել իմ փոփոխականը cloud4rpi սարքի էջում:
Քայլ 4. «Արտադրության» պատրաստում
Ամեն ինչ աշխատում է, և այժմ ես պետք է սարքս պատրաստեմ առանց հսկողության ռեժիմի:
Սկզբից ես պատրաստվում եմ հարմարեցնել ժամանակային ընդմիջումները: Հարցման միջակայքը սահմանում է, թե որքան հաճախ է ծրագիրը ստուգում ջերմաստիճանը և UPS- ի կարգավիճակը. Սահմանեք այն մեկ վայրկյանի վրա:
Արդյունքները ամպ են ուղարկվում ամեն 5 րոպեն մեկ, իսկ ախտորոշիչ տեղեկատվությունը `ամեն ժամ:
# Հաստատուններ DATA_SENDING_INTERVAL = 300 # վրկ DIAG_SENDING_INTERVAL = 3600 # վրկ POLL_INTERVAL = 1 # վրկ
Երբ UPS- ի կարգավիճակը փոխվում է. Ես չեմ ուզում, որ իմ սարքը սպասի 5 րոպե, և ես անմիջապես տվյալներ եմ ուղարկում: Այսպիսով, ես մի փոքր փոփոխեցի հիմնական օղակը, և այն հետևյալն է թվում.
data_timer = 0diag_timer = 0 prevUPS = 'ONLINE' մինչդեռ True: newUPS = ups_status () if (data_timer <= 0) or (newUPS! = prevUPS): device.publish_data () data_timer = DATA_SENDING_INTERVAL prevUPS = new = = device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL քուն (POLL_INTERVAL) diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
Փորձարկում. Գործարկեք սցենարը.
sudo python control.py
Եվ ես կարող եմ դիտել UPS կարգավիճակը իմ սարքի էջում:
Եթե անջատեմ UPS- ի սնուցումը, կարգավիճակը փոխվում է մի քանի վայրկյանում, այնպես որ ամեն ինչ աշխատում է: Այժմ ես պետք է սկսեմ apcupsd և իմ control.py համակարգի գործարկման վրա: Apcupsd ծառայությունը հին է, և այն ժամանակակից raspbian- ով սկսելու համար ես պետք է փոփոխեմ /etc/init.d/apcupsd ֆայլը ՝ ավելացնելով այս տողերը վերևում ՝
### ՍԿՍԵԼ INIT INFO # Ապահովում է ՝ apcupsd # Պահանջվող-Սկիզբ ՝ $ all # Պահանջվող-Կանգառ ՝ # Լռելյայն-Սկիզբ ՝ 2 3 4 5 # Լռելյայն-Կանգառ. ՏԵFԵԿՈԹՅՈՆՆԵՐ#
Այնուհետև միացրեք ծառայությունը.
sudo systemctl միացնել apcupsd- ը
Այնուհետև սկսեք ծառայությունը.
sudo systemctl սկսել apcupsd
Այժմ apcupsd- ը կսկսվի համակարգի գործարկման ժամանակ:
Control.py- ն որպես ծառայություն տեղադրելու համար ես օգտագործեցի մատուցվող service_install.sh սցենարը.
sudo bash service_install.sh/cloud4rpi/control.py
Այժմ ծառայությունը սկսված է, և այն պետք է գոյատևի վերաբեռնումից հետո:
Քայլ 5: Կառավարման վահանակի տեղադրում
Cloud4rpi- ն թույլ է տալիս տեղադրել իմ սարքի կառավարման վահանակը: Կարող եք ավելացնել «վիջեթներ» և դրանք կապել սարքի փոփոխականների հետ:
Իմ սարքն ապահովում է միայն կարդալու երկու փոփոխական `RoomTemp և UPSStatus:
variables = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
Ես ավելացրել եմ 3 վիջեթ - RoomTemp- ի համար, UPSStatus- ի համար տեքստ և RoomTemp- ի գծապատկեր:
Ես կարող եմ ահազանգեր տեղադրել, այնպես որ ես նամակ եմ ստանում, երբ ջերմաստիճանը նշված սահմաններից դուրս է, UPS- ն անցանց է լինում, կամ սարքն ինքնին տվյալներ չի ուղարկում: երբ ինչ -որ բան այն չէ, այնպես որ կարող եմ զանգահարել հարևաններին և խնդրել նրանց ստուգել, թե ինչ է կատարվում: Ահա control.py- ի իրական կոդը:
Խորհուրդ ենք տալիս:
Raspberry Pi- ի և AIS328DQTR- ի միջոցով արագացման մոնիտորինգ Python- ի միջոցով. 6 քայլ
Raspberry Pi- ի և AIS328DQTR- ի միջոցով Python- ի միջոցով արագացման մոնիտորինգ. Կարծում եմ, որ ֆիզիկայի որոշ օրենքների համաձայն արագացումը վերջնական է:- Terry Riley Չետան օգտագործում է զարմանալի արագացում և արագության արագ փոփոխություններ հետապնդելիս: Ամենաարագ արարածը մեկ -մեկ ափ է օգտագործում իր ամենաբարձր արագությունը ՝ որս բռնելու համար: The
RaspberryPi տան ավտոմատացում OpenHAB- ի միջոցով. 9 քայլ
RaspberryPi տան ավտոմատացում OpenHAB- ի միջոցով. Տան ավտոմատացում ՝ օգտագործելով Raspberry Pi 3B և OpenHAB: [Լրացուցիչ] Մենք կօգտագործենք Google Home- ը (կամ Google Assistant) ՝ ձայնային կառավարումը միացնելու համար
Տան խոնավության և ջերմաստիճանի մոնիտորինգ `11 քայլ
Տան խոնավության և ջերմաստիճանի մոնիտորինգ. Բարև տղերք: Լավագույն կերպով սկսելու համար `նախագծի մասին մի փոքրիկ պատմություն: Վերջերս ավարտեցի և տեղափոխվեցի Ավստրիա `ճարտարագետի իմ առաջին պաշտոնի համար: Երկիրը գեղեցիկ է, բայց շատ ցուրտ & խոնավ ձմռանը: Արագ սկսեցի
DIY ձայնով/ինտերնետով վերահսկվող տան ավտոմատացում և մոնիտորինգ ՝ օգտագործելով ESP8266 և Google Home Mini ՝ 6 քայլ
DIY ձայնով/ինտերնետով վերահսկվող տան ավտոմատացում և մոնիտորինգ ESP8266- ի և Google Home Mini- ի միջոցով. Երկար ընդմիջումից հետո ես այստեղ եմ, քանի որ մենք բոլորս պետք է ձանձրացնող (աշխատանք) ինչ -որ բան անենք: Վաստակելու համար տնային ավտոմատացման բոլոր հոդվածներից հետո ես գրել եմ BLUETOOTH, IR, Local WIFI, Cloud, այսինքն `դժվարին, * ՀԻՄԱ * գալիս է ամենահեշտ, բայց ամենաարդյունավետ
Խելացի տան մոնիտորինգ Alexa- ի և Arduino- ի միջոցով. 9 քայլ (նկարներով)
Alexa- ի և Arduino- ի միջոցով խելացի տան մոնիտորինգ. Worldամանակակից աշխարհում մարդիկ ավելի շատ ժամանակ են անցկացնում աշխատավայրում, քան իրենց տներում: Հետևաբար, անհրաժեշտ է տնային մոնիտորինգի համակարգ, որտեղ մարդիկ աշխատանքի ընթացքում կարող են ծանոթանալ տան պայմաններին: Ավելի լավ կլիներ, եթե մեկը