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

Bird Feeder Monitor V2.0: 12 քայլ (նկարներով)
Bird Feeder Monitor V2.0: 12 քայլ (նկարներով)

Video: Bird Feeder Monitor V2.0: 12 քայլ (նկարներով)

Video: Bird Feeder Monitor V2.0: 12 քայլ (նկարներով)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Նոյեմբեր
Anonim
Image
Image
Թռչունների սնուցող մոնիտոր V2.0
Թռչունների սնուցող մոնիտոր V2.0

Սա նախագիծ է ՝ մոնիտորինգի, լուսանկարման և գրանցման համար թռչունների կողմից մեր թռչնակերին այցելող թվի և ժամանակի վրա: Այս նախագծի համար օգտագործվել են բազմաթիվ Raspberry Pi- ներ (RPi): Մեկն օգտագործվել է որպես տարողունակ հպման տվիչ ՝ Adafruit CAP1188 ՝ թռչունների կերակրման լուսանկարները հայտնաբերելու, գրանցելու և գործարկելու համար: Մեկ այլ RPi կազմաձևված է `վերահսկելու այս մոնիտորինգի համակարգը, ինչպես նաև մոնիտորինգի և վերլուծության համար տվյալները պահելու և պահպանելու համար: Վերջին RPi- ն կազմաձևվել է որպես Տեսախցիկ `լուսանկարելու սնուցող յուրաքանչյուր թռչուն:

Պարագաներ

  1. 1 եա - Ազնվամորի Պի Վ
  2. 1 ea - Raspberry Pi 3 - Model B+ - MQTT Server- ի համար
  3. 1 եա - Ազնվամորու Պի տեսախցիկով - ըստ ցանկության
  4. 2 եա - RPi- ի և CAP1188 ցուցիչի եղանակային անջրանցիկ պատյաններ
  5. 1 եա - Պղնձե փայլաթիթեղի ժապավեն `հաղորդիչ սոսինձով
  6. Լար - 18-22 AWG
  7. Sոդման երկաթ և զոդիչ
  8. Oldոդման հոսք էլեկտրոնիկայի համար
  9. Սիլիկոնային ամրացում*
  10. 8 եա - M3 x 25 մեքենայի պտուտակներ*
  11. 8 եա - M3 ընկույզ*
  12. 1 ea - Proto Board CAP1188- ի տեղադրման համար
  13. 1 ea - 1x8 իգական Dupont միակցիչ
  14. 1 ea - 1x6 Արական Dupont միակցիչ
  15. 1 եա - CAP1188 - 8 -Key Capacitive Touch Sensor
  16. 2 ea - PG7 Անջրանցիկ IP68 Նեյլոնե մալուխային գեղձի համատեղ կարգավորելի կողպեք 3 մմ -6,5 մմ Dia Cable Wire- ի համար
  17. 1 հավաքածու - 2 Pin Way Car Անջրանցիկ էլեկտրական միակցիչ խրոցը Wire AWG Marine փաթեթով 10 հատ
  18. 3 ea - 5VDC էլեկտրամատակարարում `մեկը յուրաքանչյուր RPi- ի համար
  19. 1 եա - թռչունների սնուցող (CedarWorks պլաստիկ հոպեր թռչնակեր) կամ ցանկացած թռչուն սնուցող `պլաստմասե կամ փայտե թեքերով

*3D տպագրված եղանակից պաշտպանվող պատյանների համար

Քայլ 1. Թռչնակերների մոնիտորինգի համակարգի ակնարկ

Թռչնակերների մոնիտորինգի համակարգի ակնարկ
Թռչնակերների մոնիտորինգի համակարգի ակնարկ

Սա մոնիտորինգի համակարգ է, որը նախատեսված է մեր թռչունների սնուցող թռչուններին հաշվելու, ժամանակի, գրանցման և լուսանկարման համար: Իմ Bird Feeder Monitor- ի նախորդ տարբերակը օգտագործում էր Arduino Yun- ը և տվյալները պահում էր իմ Google Drive- ի աղյուսակում: Այս տարբերակը օգտագործում է բազմաթիվ Raspberry Pi, MQTT հաղորդակցություններ և տվյալների և լուսանկարների տեղական պահեստավորում:

Bird Feeder- ը հագեցած է Raspberry Pi Zero W- ով և Capacitive Touch Sensor- ով (CAP1188): Birdsանկացած թռչուն, որը լուսավորվում է թեքերի վրա, ակտիվացնում է հպման տվիչը, որը գործարկում է ժամանակաչափ `յուրաքանչյուր իրադարձության տևողությունը որոշելու համար: Հպումն ակտիվանալուն պես «մոնիտոր/սնուցող/նկար» MQTT հաղորդագրությունը հրապարակվում է Bird Feeder Monitor- ի կողմից: Այս հաղորդագրությունը տեղեկացնում է Raspberry Pi տեսախցիկին լուսանկարելու համար: Եթե MQTT Server- ը հրապարակի «մոնիտոր/սնուցող/getcount» հաղորդագրություն, ապա Թռչունների սնուցող մոնիտորը կպատասխանի «մոնիտոր/սնուցող/հաշվիչ» MQTT հաղորդագրությամբ, որը սերվերը կպահի:

MQTT սերվերը կատարում է մի քանի առաջադրանք: Այն պահանջում և պահում է տվյալներ Bird Feeder Monitor- ից և վերահսկում է մոնիտորի աշխատանքը: Այն լուսաբացին միացնում է մոնիտորը և անջատում այն մթնշաղին: Այն նաև վերահսկում է տվյալների խնդրման ժամկետների միջակայքը, ինչպես նաև վերահսկում է ընթացիկ եղանակային պայմանները DarkSky- ի միջոցով: Եղանակի պայմանները վերահսկվում են մի քանի պատճառով: Առաջին հերթին, տեղումների քանակը կարող է ազդել տվիչների վրա: Եթե դա տեղի ունենա, սենսորները վերալիցքավորվում են սովորական ռեժիմով, մինչ անձրևը տեղում է: Երկրորդ պատճառն այն է, որ վերահսկել և գրանցել եղանակային պայմանները թռչունների թվի տվյալների հետ հարաբերակցության համար:

Raspberry Pi տեսախցիկը RPi + Raspberry Pi Camera մոդուլ է: Այս նախագծի համար օգտագործվող տեսախցիկի ծրագրակազմը չի աշխատում USB վեբ -տեսախցիկի հետ: RPi տեսախցիկը հագեցած է WIFI- ով և գործում է MQTT Client ծրագրակազմով: Այն բաժանորդագրվում է «մոնիտոր/սնուցող/նկար» MQTT հաղորդագրություններին և լուսանկարում ամեն անգամ, երբ այս հաղորդագրությունը ստացվում է: Լուսանկարները պահվում են RPi Camera- ում և կառավարվում են հեռակա կարգով:

Քայլ 2. Raspbian- ի տեղադրում Bird Feeder Monitor- ում

Raspbian- ի տեղադրում Bird Feeder Monitor- ում
Raspbian- ի տեղադրում Bird Feeder Monitor- ում

Տեղադրեք Raspbian Lite- ի վերջին տարբերակը Raspberry Pi Zero W.- ի վրա: Ես խորհուրդ եմ տալիս հետևել քայլ առ քայլ հրահանգներին, որոնք կարելի է գտնել Adafruit's Raspberry Pi Zero Headless Quick Start- ում:

Հետևյալ քայլերը ներառված էին վերը նշված հրահանգներում, բայց արժանի են կրկնելու.

Միացեք RPi- ին ssh- ի միջոցով և գործարկեք հետևյալ հրամանները.

sudo apt-get updatesudo apt-get upgrade

Վերոնշյալ հրամանների կատարումը որոշ ժամանակ կպահանջի, բայց այս հրամանների գործարկումը կապահովի, որ դուք արդի եք վերջին փաթեթների հետ:

Հաջորդը, գործարկեք հետևյալ հրամանը ՝ RPi ծրագրակազմը կազմաձևելու համար.

sudo raspi-config

Փոխեք ձեր գաղտնաբառը, միացրեք SPI և I2C և ընդլայնեք ֆայլերի համակարգը: Երբ դրանք ավարտվեն, ապա դուրս եկեք raspi-config- ից:

Քայլ 3. RPi- ի և CAP1188- ի լարերի միացում

RPi- ի և CAP1188- ի լարերի միացում
RPi- ի և CAP1188- ի լարերի միացում

Raspberry Pi W (RPi) և CAP1188 լարերը միացված են I2C- ի միջոցով: Գոյություն ունեն այլ տարողունակ հպման տվիչներ `մեկ, հինգ կամ ութ սենսորներով: Ես ընտրեցի ութը, քանի որ իմ թռչնակերն ունի վեց կողմ:

Հաղորդալարեր

  • CAP1188 SDA == RPi կապ 3
  • CAP1188 SCK == RPi կապ 5
  • CAP1188 VIN == RPi կապ 1 (+3.3VDC)
  • CAP1188 GND == RPi կապ 9 (GND)
  • CAP1188 C1-C8 == Յուրաքանչյուր թեքի լարերին միացեք 1x8 իգական Dupont միակցիչի միջոցով
  • CAP1188 3Vo == CAP1188 մ.թ. - Hardwire the I2C Address to 0x28
  • RPi Pin 2 == +5VDC
  • RPi Pin 14 == GND

RPi- ի էներգիան տրամադրվում էր արտաքինից ՝ իմ ավտոտնակից գետնին հոսող մետաղալարով և խողովակի միջով, որն օգտագործվում էր որպես թռչունների սնուցիչ: RPi Bird Feeder Monitor- ը միացնելու համար մետաղալարերի ծայրին ամրացվել է 2-պտույտ եղանակային անջրանցիկ միակցիչ: Լարի մյուս ծայրը միացված էր ավտոտնակում միաձուլված 5-VDC սնուցման աղբյուրին: Այս նախագիծը պետք է աշխատի մարտկոցների հետ, բայց ես չէի ցանկանում, որ մարտահրավերները սովորական ռեժիմով փոխվեն:

Ես կառուցեցի 16 դյույմ երկար մալուխ ՝ RPi- ն պարունակող Եղանակի արկղը CAP1188- ը պարունակող եղանակային տուփին միացնելու համար: Կոնդենսատիվ սենսորը պետք է հնարավորինս մոտ լինի թռիչքներին:

RPi Zero- ն և CAP1188- ը կարող էին փաթեթավորված լինել մեկ եղանակապաշտպան տուփի մեջ, բայց ես նախընտրեցի դրանք առանձին փաթեթավորել:

Քայլ 4. Կարգավորեք Թռչունների սնուցման մոնիտորը

Bird Feeder Monitor- ի կազմաձևում
Bird Feeder Monitor- ի կազմաձևում
Bird Feeder Monitor- ի կազմաձևում
Bird Feeder Monitor- ի կազմաձևում

Մուտք գործեք Raspberry Pi Zero W և կատարեք հետևյալ քայլերը:

Տեղադրեք pip:

sudo apt-get տեղադրել python3-pip

Տեղադրեք Adafruit CircuitPython:

sudo pip3 install -թարմացնել setuptools- ը

Ստուգեք I2C և SPI սարքերի համար.

ls /dev /i2c* /dev /spi*

Դուք պետք է տեսնեք հետևյալ պատասխանը.

/dev/i2c-1 /dev/spidev0.0 /dev/spidev0.1

Հաջորդը տեղադրեք GPIO և Adafruit blinka փաթեթ.

pip3 տեղադրել RPI. GPIOpip3 տեղադրել adafruit-blinka

Տեղադրեք Adafruit- ի CAP1188 մոդուլը.

pip3 տեղադրել adafruit-circuitpython-cap1188

Տեղադրեք I2C գործիքներ.

sudo apt-get տեղադրել python-smbussudo apt-get տեղադրել i2c- գործիքներ

Ստուգեք I2C հասցեները վերը նշված գործիքի միջոցով.

i2cdetect -y 1

Եթե CAP1188- ը միացված է, դուք կտեսնեք նույն պատասխանը, ինչպես երևում է վերևի լուսանկարում, ինչը ցույց է տալիս, որ սենսորը գտնվում է I2C հասցեում 0x28 (կամ 0x29 ՝ կախված ձեր ընտրած I2C հասցեից):

Տեղադրեք mosquitto, mosquitto-client և paho-mqtt:

sudo apt-get տեղադրել mosquitto mosquitto-clients python-mosquitto

sudo pip3 տեղադրել paho-mqtt

Խորհուրդ եմ տալիս օգտագործել Adafruit- ի Configuring MQTT- ը Raspberry Pi- ում `այս RPi- ում MQTT կազմաձևելու և կարգավորելու համար:

Տեղադրեք Bird Feeder Monitor ծրագիրը:

cd

sudo apt-get տեղադրել git git clone "https://github.com/sbkirby/RPi_bird_feeder_monitor.git"

Ստեղծեք տեղեկամատյանների գրացուցակ.

cd

mkdir տեղեկամատյանները

Միացրեք CAP1188 սենսորը RPi- ին և MQTT սերվերի գործարկումից հետո համակարգը փորձարկելու համար կատարեք հետևյալը.

cd RPi_bird_feeder_monitor

sudo nano config.json

Փոխարինեք «OIP_HOST», «MQTT_USER», «MQTT_PW» և «MQTT_PORT» արժեքները ՝ ձեր տեղական կարգավորմանը համապատասխանելու համար: Ելք և պահեք ձեր փոփոխությունները:

Գործարկել գործարկման ժամանակ

Դեռևս/home/pi/RPi_bird_feeder_monitor գրացուցակում:

nano launcher.sh

Ներառեք հետևյալ տեքստը launcher.sh- ում

#!/bin/sh

# launcher.sh # նավարկեք դեպի տնային գրացուցակ, այնուհետև այս գրացուցակում, այնուհետև կատարեք python սցենարը, այնուհետև տուն cd /cd home /pi /RPi_bird_feeder_monitor sudo python3 feeder_mqtt_client.py cd /

Դուրս եկեք և պահեք launcher.sh- ը

Մենք պետք է սցենարը դարձնենք գործարկելի:

chmod 755 գործարկիչ: շ

Փորձարկեք սցենարը:

sh գործարկիչ.շ

Հաջորդը, մենք պետք է խմբագրենք crontab- ը (linux առաջադրանքի կառավարիչ) `սկիզբը գործարկելիս սցենարը գործարկելու համար: Նշում. Մենք արդեն ստեղծել ենք /logs գրացուցակը:

sudo crontab -e

Սա կբերի crontab պատուհանը, ինչպես վերևում է: Գնացեք ֆայլի վերջ և մուտքագրեք հետևյալ տողը:

@reboot sh /home/pi/RPi_bird_feeder_monitor/launcher.sh>/home/pi/logs/cronlog 2> & 1

Ելք և պահեք ֆայլը և վերագործարկեք RPi- ն: RPi- ի վերաբեռնումից հետո սցենարը պետք է սկսի feeder_mqtt_client.py սցենարը: Սցենարի կարգավիճակը կարելի է ստուգել /logs պանակում տեղակայված տեղեկամատյաններում:

Քայլ 5: 3D տպագիր մասեր

3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր
3D տպագիր մասեր

Այս STL ֆայլերը նախատեսված են 3D տպագիր մասերի համար, որոնք ես ստեղծել եմ այս նախագծի համար, և այս բոլոր մասերը պարտադիր չեն: Եղանակից անջրանցիկ պատյանները կարող են պատրաստվել կամ գնվել տեղում: CedarWorks Bird Feeder- ի «Մոնտաժային սեպը» նույնպես պարտադիր չէ: Այս հատվածը անհրաժեշտ էր CAP1188 սենսորային պատյանը տեղադրելու համար:

Քայլ 6: Թռչնակերների մոնիտորի հավաքում

Թռչունների սնուցող մոնիտորի հավաքում
Թռչունների սնուցող մոնիտորի հավաքում

Raspbian- ը տեղադրելուց, RPi և CAP1188 տվիչների կարգավորումից և փորձարկումից հետո, ինչպես նշվեց նախկինում, այժմ ժամանակն է տեղադրել այս սարքերը եղանակային անջրանցիկ պատյաններում:

RPi և CAP1188 ցուցիչ տեղադրելու համար ես օգտագործեցի տպագրված երկու եղանակային անջրանցիկ պատյաններ: Նախևառաջ, ես յուրաքանչյուր գործի մեկ ծայրում փորեցի 1/2 դյույմ անցք: Հորատեք անցքը RPi պատյանով ՝ SD քարտի հակառակ կողմում: Յուրաքանչյուր փոսում տեղադրեք նեյլոնե մալուխի գեղձի միացում `կարգավորելի կողպեքով: Գործարկեք չորսը: յուրաքանչյուր պատյանի միջև տեղադրեք և ամրացրեք 2 Pin Car Անջրանցիկ Էլեկտրական Իգական Միակցիչը RPi- ին, ինչպես ցույց է տրված վերևում նկարում: Կարմիր մետաղալարը կպցրեք RPi +5VDC Pin 2 -ին, իսկ սև մետաղալարը GND- ին կամ 14 -ին: Տեսեք RPi- ում օգտագործվող մյուս միացումների միացման սխեմա:

Անցեք չորս հաղորդալարերի մյուս ծայրը Gland Joint- ով CAP1188 պատյանով և ամրացրեք լարերը, ինչպես նշված է էլեկտրագծերի գծապատկերում: Բոլոր CAP1188 տարողունակ հպման տվիչներն ամրացված են 8 փին կին Dupont միակցիչին: Այս միակցիչը պատյանի կողքին է, որպեսզի գագաթը կիրառելիս թույլ տա ջրակայուն կնքումը: Նշում. Երկու դեպքերի վերևում, հավանաբար, կպահանջվեն փոփոխություններ `Gland Joint Connectors- ի ընկույզները թույլ տալու համար:

Փակելուց առաջ ես սիլիկոնային ամրացում եմ կիրառում յուրաքանչյուր պատյանի եզրերին, իսկ Gland Joints- ի լարերի շուրջ `պատյանները փակելու համար: Ես նաև սիլիկոն եմ ավելացնում Dupont միակցիչի հետևի մասում, որպեսզի այն կնքվի տարրերից:

Քայլ 7: Թռչուն սնուցողի միացում

Թռչուն սնուցողի լարերի միացում
Թռչուն սնուցողի լարերի միացում
Թռչուն սնուցողի լարերի միացում
Թռչուն սնուցողի լարերի միացում
Թռչուն սնուցողի լարերի միացում
Թռչուն սնուցողի լարերի միացում

Սնուցիչի վրա տեղադրված յուրաքանչյուր թեքը ծածկված էր 1/4 լայնությամբ ինքնասոսնձվող պղնձե փայլաթիթեղի ժապավենով: Կասետի և թառի միջով մի փոքր անցք էր փորված, և մետաղալարերը կպցվում էին փայլաթիթեղի ժապավենին և հոսում սնուցողի տակ: լարերը միացված են արական 6 փին Dupont միակցիչին:

Նշում. Վերևում ցուցադրված թռչունների սնուցողի միջոցով ես խորհուրդ եմ տալիս բաց թողնել յուրաքանչյուր 1/6 " - 1 1/2" նրբաթիթեղի յուրաքանչյուր շերտի ծայրերի միջև: Ես հայտնաբերեցի, որ ավելի մեծ թռչունները, ինչպիսիք են ճռճռոցը և աղավնիները, ունակ են միաժամանակ դիպչել փայլաթիթեղի երկու շերտերին, եթե դրանք տեղադրվեն իրար մոտ:

Նախկինում հիշատակված «Մոնտաժային սեպ» -ը տպագրվել և սոսնձվել է սնուցողի ներքևին ՝ ապահովելով CAP1188 պարունակող Եղանակակայուն արկղը տեղադրելու հարթ մակերես: Տուփի վրա, ինչպես նաև փայտե բլոկի վրա ամրացված միջոց ապահովելու համար կիրառվեց Velcro ժապավեն: Սա երևում է ավարտված հավաքի վերևում գտնվող լուսանկարում: Velcro ժապավենը օգտագործվում է խողովակի շուրջը փաթաթելու համար, իսկ RPi տուփը `դրանք սնուցողի տակ ամրացնելու համար:

Թռչունների սնուցողը լիցքավորվում է սենսորով և սնուցողին ամրացված RPi- ով, և քանի դեռ այն գտնվում է խողովակի տակդիրի վրա: Բարեբախտաբար, ես 6'2 բարձրություն ունեմ և առանց մեծ ջանքերի հասնում եմ բեռնարկղին:

Քայլ 8: MQTT սերվեր

MQTT սերվեր
MQTT սերվեր
MQTT սերվեր
MQTT սերվեր
MQTT սերվեր
MQTT սերվեր

Եթե դուք արդեն շփոթված եք IOT աշխարհում, կարող եք արդեն ունենալ MQTT սերվեր, որը գործում է ձեր ցանցում: Եթե դա չեք անում, խորհուրդ եմ տալիս օգտագործել Raspberry Pi 3-ը MQTT սերվերի համար, իսկ ցուցումները և IMG պատկերի ֆայլը ՝ Անդրեաս Սփիեսի «Node-Red, InfuxDB & Grafana Installation» կայքում: Անդրեասն ունի նաև տեղեկատվական տեսանյութ այս թեմայով #255 Node-Red, InfluxDB և Grafana Tutorial Raspberry Pi- ի վերաբերյալ:

Երբ Node-Red Server- ը գործարկվի, կարող եք ներմուծել Bird Feeder Monitor հոսքը `պատճենելով տվյալները ~/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Flow.json- ում և օգտագործելով Import> Clipboard ՝ սեղմատախտակը նոր հոսքի մեջ կպցնելու համար:

Այս հոսքը կպահանջի հետևյալ հանգույցները.

  • node-red-node-darksky-Այս հանգույցն օգտագործելու համար պահանջվում է DarkSky API հաշիվ:
  • node-red-contrib-bigtimer-Big Timer by Scargill Tech
  • node-red-contrib-influxdb-InfluxDB տվյալների շտեմարան

Ձեր գտնվելու վայրի եղանակի տվյալները տրամադրվում են DarkSky- ի միջոցով: Եվ ես ներկայումս վերահսկում և արձանագրում եմ «precipIntensity», «ջերմաստիճան», «խոնավություն», «windSpeed», «windBearing», «windGust» և «cloudCover»: «Տեղումների ինտենսիվությունը» կարևոր է, քանի որ այն օգտագործվում է որոշելու, թե արդյոք անձրևի հետևանքով սենսորները պետք է նորից չափագրվեն:

Big Timer հանգույցը շվեյցարական բանակի ժամանակաչափ է: Այն օգտագործվում է ամեն օր Արշալույսին և մայրամուտին տվյալների գրանցումը սկսելու և դադարեցնելու համար:

InfluxDB- ն թեթև քաշ ունեցող, հեշտ օգտագործման ժամանակային շարքերի տվյալների շտեմարան է: Տվյալների բազան ինքնաբերաբար ավելացնում է ժամանակային նշան ամեն անգամ, երբ մենք տեղադրում ենք տվյալները: Ի տարբերություն SQLite- ի, դաշտերը պետք չէ սահմանել: Դրանք ավելացվում են ինքնաբերաբար, երբ տվյալները տեղադրվում են տվյալների բազայում:

Հանգույց-կարմիր կազմաձևում

Վերոնշյալ JSON ֆայլը կբեռնի Flow, որը պահանջում է մի քանի փոփոխություն `ձեր պահանջներին համապատասխան:

  1. Միացրեք «MQTT Publish» - ը և «monitor/feeder/#» - ը ձեր MQTT սերվերին:
  2. Տեղադրեք լայնությունը և երկայնությունը ձեր գտնվելու վայրին «Լուսաբաց և մթնշաղի ժամաչափ (կազմաձևում)» մեծ ժամաչափի հանգույցում:
  3. Կարգավորեք «մոնիտոր/սնուցող/աստղագիտություն (կազմաձևում)» հանգույցը: Տեսախցիկը կարող է միացվել/անջատվել յուրաքանչյուր պերճի համար: Օրինակ, իմ երկու թեքերը գտնվում են հետևի կողմում, և տեսախցիկն անջատված է այս թեքերի համար:
  4. Սահմանեք «Counter Timer (config)» հանգույցը ցանկալի ժամանակի միջակայքում: Լռելյայն = 5 րոպե
  5. «DarkSky (config)» հանգույցում տեղադրեք լայնությունը և երկայնությունը ձեր գտնվելու վայրին: Երկրորդ, մուտքագրեք ձեր DarkSky API բանալին darksky-credentials հանգույցում:
  6. Տեղադրեք տեղումների ինտենսիվությունը «մոնիտոր/սնուցող/վերահաշվարկ (կարգաբերում)» գործառույթի հանգույցում: Լռելյայն = 0.001 դ/ժ
  7. Խմբագրել «Թեմայի զտիչ MQTT ստացողի վրիպազերծման հանգույցի համար (կազմաձևում)» գործառույթի հանգույց ՝ MQTT հաղորդագրությունները զտելու համար, որոնք ՉԵՔ ցանկանում տեսնել:
  8. Լրացուցիչ. Եթե ցանկանում եք տվյալներ պահել ձեր Google Drive- ի Աղյուսակներում, ապա ձեզ հարկավոր է խմբագրել «Ստեղծել Google Փաստաթղթերի բեռնվածություն (կազմաձևում)» գործառույթի հանգույց ՝ ձևի դաշտի ID- ով:
  9. Լրացուցիչ. Ավելացրեք ձեր ուրույն ձևի URL- ը «Google Docs GET (config)» HTTP հարցման հանգույցի URL դաշտում:

Node-Red UI աշխատասեղան

Bird_Feeder_Monitor_Flow- ը ներառում է Օգտվողի միջերես (UI) `բջջային հեռախոսի միջոցով MQTT սերվեր մուտք գործելու համար: Մոնիտորը կարող է անջատվել կամ միացվել, ձեռքով վերահաստատել սենսորները կամ լուսանկարել: Theուցադրվում է նաև սենսորային «հպում», որը թույլ կտա մոտավոր պատկերացում կազմել սնուցող թռչունների քանակի մասին:

Քայլ 9: Գրաֆանա

Գրաֆանա
Գրաֆանա
Գրաֆանա
Գրաֆանա

«Grafana- ն բաց կոդով չափիչ վերլուծության և վիզուալիզացիայի հավաքակազմ է: Այն առավել հաճախ օգտագործվում է ենթակառուցվածքների և կիրառական վերլուծությունների ժամանակային շարքերի տվյալների տեսանելիության համար, սակայն շատերն այն օգտագործում են այլ ոլորտներում, ներառյալ արդյունաբերական տվիչները, տան ավտոմատացումը, եղանակը և գործընթացի վերահսկումը»: refn: Grafana Docs.

Այս ծրագրաշարը ներառված է Անդրեաս Սփիեսի պատկերի ֆայլում, որն օգտագործվում է իմ MQTT սերվեր ստեղծելու համար: MQTT սերվերի վրա InfluxDB տվյալների բազան կարգավորելուց հետո, Grafana- ն կարող է կազմաձևվել, որպեսզի օգտագործի այս տվյալների բազան, ինչպես երևում է վերևում պատկերում: Հաջորդը, այս ծրագրի կողմից օգտագործվող վահանակը կարող է բեռնվել JSON ֆայլից, որը գտնվում է ~/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Grafana.json- ում: Grafana- ի կազմաձևման վերաբերյալ խորհուրդներ կարելի է գտնել Անդրեաս Սփիեսի «Node-Red, InfuxDB & Grafana Installation» կայքում:

Քայլ 10: InfluxDB

InfluxDB
InfluxDB
InfluxDB
InfluxDB

Ինչպես արդեն նշվեց, Adreas Spiess- ն ունի հիանալի ուղեցույց և տեսանյութ, որը կարող է ձեզ քայլել InfluxDB- ի կազմաձևման միջոցով: Ահա այն քայլերը, որոնք ես ձեռնարկեցի տվյալների բազայի կազմաձևման համար:

Առաջին հերթին, ես մուտք գործեցի իմ MQTT սերվեր SSH- ի միջոցով և ստեղծեցի ՕԳՏԱԳՈՐՈԻՉ.

արմատ@MQTTPi: ~#

root@MQTTPi:# ներհոսք Միացված է «https:// localhost: 8086» տարբերակին 1.7.6 InfluxDB վահանակի տարբերակ ՝ 1.7.6 Մուտքագրեք InfluxQL հարցում> CREATE USER «pi» WITH PASSWORD- ի «ազնվամորիով» ԲՈԼՈՐ ԱՌԱՆՁՆԱՊԵՏՈԹՅՈՆՆԵՐՈՎ> OWՈOWՈ USՄ Օգտվողներին օգտվողի ադմինիստրատոր ---- ----- պի ճշմարիտ է

Հաջորդը, ես ստեղծեցի տվյալների բազա.

ՍՏԵԵԼ ՏՎՅԱԼՆԵՐԻ BIRD_FEEDER_MONITOR>> ՏԵATԵԿՈԹՅԱՆ ՏԵASԵԿՈԹՅՈՆՆԵՐԻ անուն. Տվյալների շտեմարանների անուն ---- _ ներքին BIRD_FEEDER_MONITOR>

Վերը նշված տվյալների բազան ստեղծելուց հետո կարող եք կարգավորել InfluxDB հանգույցը Node-Red- ում: Ինչպես երևում է վերևի լուսանկարում, ես Չափման անունը դնում եմ «սնուցողներ»: Սա կարելի է տեսնել InfluxDB- ում ՝ տվյալների սկզբնականացումից հետո.

ՕԳՏԱԳՈՐԵԼ BIRD_FEEDER_MONITOR Օգտագործելով տվյալների բազա BIRD_FEEDER_MONITOR

> OWՈOWՅԼ ՉԱՓԵՐԸ անվանումը. Չափումների անվանումը ---- սնուցող սարքեր>

InfluxDB- ի բազմաթիվ առանձնահատկություններից մեկն այն է, որ FIELDS կոնֆիգուրացիան պարտադիր չէ: ՏԵ dataԵՐԸ ավելացվում և կազմաձևվում են ինքնաբերաբար, երբ տվյալները մուտքագրվում են: Ահա FIELDS և FIELDTYPE այս տվյալների բազայի համար.

OWՈՈ FՄ ԴԱՇՏԱԲԱՆԱԿԱՆ Բանալիներ Անուն ՝ սնուցողների դաշտ Հիմնական դաշտ Տիպ -------- --------- ամպաթող բոցերի հաշվիչ_1 float count_2 float count_3 float count_4 float count_5 float count_6 float խոնավություն float name string string_Int float temp float time_1 float time_2 float time_3 float time_4 float time_5 float time_6 float winddir float windgust float windspeed float>

Տվյալների բազայից մի քանի գրառում կարելի է տեսնել ստորև.

ԸՆՏՐԵԼ * ՍՏԱՌՆԵՐԻ L LIMIT 10 անուն. Սնուցողների ժամանակը ամպի ծածկը count_1 count_2 count_3 count_4 count_5 count_6 խոնավության անվանումը precip_Int temp time_1 time_2 time_3 time_4 time_5 time_6 winddir windgust windspeed ---- ---------- ----- -------- ------- ------- ------- ------- -------- ----- --------- ---- ------ ------ ------ ------ ------ ------ ------- ------ -------- --------- 1550270591000000000 0 0 0 0 0 0 սնուցող 1 0 0 0 0 0 0 0 1550271814000000000 0 0 0 0 0 0 0 սնուցող 1 0 0 0 0 0 0 1550272230000000000 0 0 0 0 0 0 Feeder1 0 0 0 0 0 0 155027253000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 1527273000000000000 Սնուցող 0 0 0 0 0 0 0 սնուցող 1 0 0 0 0 0 0 0>

Քայլ 11: Ազնվամորի Պի տեսախցիկ

Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ
Raspberry Pi տեսախցիկ

Խորհուրդ եմ տալիս օգտագործել իմ Instructable, Remote CNC Stop and Monitor- ը ՝ Raspberry Pi տեսախցիկ հավաքելու համար: Տեսախցիկ ստեղծելու համար կատարեք նշված բոլոր քայլերը, բացառությամբ 6 -ի և 8 -ի:Խնդրում եմ նկատի ունենալ, որ ես օգտագործում եմ ավելի հին Raspberry Pi- ն իմ տեսախցիկի համար, բայց այն շատ լավ է աշխատել իմ Խանութի պատուհանից:

Թարմացրեք Rasbian- ը.

sudo apt-get updatesudo apt-get upgrade

Տեղադրեք PIP:

sudo apt-get տեղադրել python3-pip

Տեղադրեք paho-mqtt:

sudo pip3 տեղադրել paho-mqtt

Տեղադրեք git և Bird Monitoring Software:

cd

sudo apt-get տեղադրել git git clone "https://github.com/sbkirby/RPi_bird_feeder_monitor.git"

Եթե ցանկանում եք տեսախցիկներ պատրաստել տեսախցիկի նկարներից, տեղադրեք ffmpeg:

git կլոն "https://git.ffmpeg.org/ffmpeg.git" ffmpeg

cd ffmpeg./ կոնֆիգուրացնել make sudo make install

Թռչունների սնուցող մոնիտորինգի ծրագրակազմի թույլտվությունների կազմաձևում.

cd RPi_bird_feeder_monitor

sudo chmod 764 make_movie.sh sudo chmod 764 take_photo.sh sudo chown www-data: www-data make_movie.sh sudo chown www-data: www-data take_photo.sh

Անձամբ ես խորհուրդ չեմ տալիս օգտագործել make_movie.sh- ը RPi տեսախցիկում: RPi- ով աշխատելու համար անհրաժեշտ է շատ ռեսուրսներ: Ես խորհուրդ եմ տալիս պատկերները փոխանցել ձեր համակարգչին և այնտեղ գործարկել ffmpeg- ը:

Գործարկել գործարկման ժամանակ

Մուտք գործեք RPi և անցեք /RPi_bird_feeder_monitor գրացուցակին:

cd RPi_bird_feeder_monitor

nano launcher.sh

Ներառեք հետևյալ տեքստը launcher.sh- ում

#!/bin/sh

# launcher.sh # նավարկեք դեպի գլխավոր գրացուցակ, այնուհետև այս գրացուցակում, այնուհետև կատարեք python սցենարը, այնուհետև վերադառնաք տուն cd /cd home /pi /RPi_bird_feeder_monitor sudo python3 camera_mqtt_client.py cd /

Դուրս եկեք և պահեք launcher.sh- ը

Մենք պետք է դարձնենք սցենարը և կատարելի:

chmod 755 գործարկիչ: շ

Փորձարկեք սցենարը:

sh գործարկիչ.շ

Ստեղծեք տեղեկամատյան գրացուցակ.

cd

mkdir տեղեկամատյանները

Հաջորդը, մենք պետք է խմբագրենք crontab- ը (linux առաջադրանքի կառավարիչ) `սկիզբը գործարկելիս սցենարը գործարկելու համար:

sudo crontab -e

Սա կբերի crontab պատուհանը, ինչպես վերևում է: Գնացեք ֆայլի վերջ և մուտքագրեք հետևյալ տողը:

@reboot sh /home/pi/RPi_bird_feeder_monitor/launcher.sh>/home/pi/logs/cronlog 2> & 1

Ելք և պահեք ֆայլը և վերագործարկեք RPi- ն: RPi- ի վերաբեռնումից հետո սցենարը պետք է սկսի camera_mqtt_client.py սցենարը: Սցենարի կարգավիճակը կարելի է ստուգել /logs պանակում տեղակայված տեղեկամատյաններում:

Քայլ 12: Վայելեք

Վայելեք
Վայելեք

Մենք հաճույք ենք ստանում թռչունների դիտումից, սակայն չենք կարող սնուցողը տեղադրել առավելագույն վայելքի համար նախատեսված վայրում: Մեզանից շատերը դա տեսնում են նախաճաշի սեղանից, և ոչ բոլորն են այնտեղից տեսնում սնուցողին: Հետևաբար, Bird Feeder Monitor- ի միջոցով մենք կարող ենք հիանալ թռչուններով մեր հարմարության դեպքում:

Մոնիտորի հետ մեկ բան, որ մենք հայտնաբերեցինք, թռչունների մեկ պտույտի վրա վայրէջք կատարելու հաճախականությունն է, որին հաջորդում է ցատկելը դեպի հաջորդ թևը, մինչև նրանք շրջանցեն ամբողջ սնուցողը: Արդյունքում, թռչունների հաշվարկը WԱՆԱՊԱՐՀՈՄ է մեր սնուցող այցելող առանձին թռչունների քանակից: Թռչուններին «հաշվելու» համար, հավանաբար, ամենալավը կլինի միայն մեկ կամ երկու նեղ թռիչք ունեցող սնուցողը:

Սենսորների մրցույթ
Սենսորների մրցույթ
Սենսորների մրցույթ
Սենսորների մրցույթ

Երկրորդ մրցանակ սենսորների մրցույթում

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