Բովանդակություն:
- Պարագաներ
- Քայլ 1. Թռչնակերների մոնիտորինգի համակարգի ակնարկ
- Քայլ 2. Raspbian- ի տեղադրում Bird Feeder Monitor- ում
- Քայլ 3. RPi- ի և CAP1188- ի լարերի միացում
- Քայլ 4. Կարգավորեք Թռչունների սնուցման մոնիտորը
- Քայլ 5: 3D տպագիր մասեր
- Քայլ 6: Թռչնակերների մոնիտորի հավաքում
- Քայլ 7: Թռչուն սնուցողի միացում
- Քայլ 8: MQTT սերվեր
- Քայլ 9: Գրաֆանա
- Քայլ 10: InfluxDB
- Քայլ 11: Ազնվամորի Պի տեսախցիկ
- Քայլ 12: Վայելեք
Video: Bird Feeder Monitor V2.0: 12 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Սա նախագիծ է ՝ մոնիտորինգի, լուսանկարման և գրանցման համար թռչունների կողմից մեր թռչնակերին այցելող թվի և ժամանակի վրա: Այս նախագծի համար օգտագործվել են բազմաթիվ Raspberry Pi- ներ (RPi): Մեկն օգտագործվել է որպես տարողունակ հպման տվիչ ՝ Adafruit CAP1188 ՝ թռչունների կերակրման լուսանկարները հայտնաբերելու, գրանցելու և գործարկելու համար: Մեկ այլ RPi կազմաձևված է `վերահսկելու այս մոնիտորինգի համակարգը, ինչպես նաև մոնիտորինգի և վերլուծության համար տվյալները պահելու և պահպանելու համար: Վերջին RPi- ն կազմաձևվել է որպես Տեսախցիկ `լուսանկարելու սնուցող յուրաքանչյուր թռչուն:
Պարագաներ
- 1 եա - Ազնվամորի Պի Վ
- 1 ea - Raspberry Pi 3 - Model B+ - MQTT Server- ի համար
- 1 եա - Ազնվամորու Պի տեսախցիկով - ըստ ցանկության
- 2 եա - RPi- ի և CAP1188 ցուցիչի եղանակային անջրանցիկ պատյաններ
- 1 եա - Պղնձե փայլաթիթեղի ժապավեն `հաղորդիչ սոսինձով
- Լար - 18-22 AWG
- Sոդման երկաթ և զոդիչ
- Oldոդման հոսք էլեկտրոնիկայի համար
- Սիլիկոնային ամրացում*
- 8 եա - M3 x 25 մեքենայի պտուտակներ*
- 8 եա - M3 ընկույզ*
- 1 ea - Proto Board CAP1188- ի տեղադրման համար
- 1 ea - 1x8 իգական Dupont միակցիչ
- 1 ea - 1x6 Արական Dupont միակցիչ
- 1 եա - CAP1188 - 8 -Key Capacitive Touch Sensor
- 2 ea - PG7 Անջրանցիկ IP68 Նեյլոնե մալուխային գեղձի համատեղ կարգավորելի կողպեք 3 մմ -6,5 մմ Dia Cable Wire- ի համար
- 1 հավաքածու - 2 Pin Way Car Անջրանցիկ էլեկտրական միակցիչ խրոցը Wire AWG Marine փաթեթով 10 հատ
- 3 ea - 5VDC էլեկտրամատակարարում `մեկը յուրաքանչյուր RPi- ի համար
- 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 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- ի լարերի միացում
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. Կարգավորեք Թռչունների սնուցման մոնիտորը
Մուտք գործեք 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 տպագիր մասեր
Այս 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 սերվեր
Եթե դուք արդեն շփոթված եք 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, որը պահանջում է մի քանի փոփոխություն `ձեր պահանջներին համապատասխան:
- Միացրեք «MQTT Publish» - ը և «monitor/feeder/#» - ը ձեր MQTT սերվերին:
- Տեղադրեք լայնությունը և երկայնությունը ձեր գտնվելու վայրին «Լուսաբաց և մթնշաղի ժամաչափ (կազմաձևում)» մեծ ժամաչափի հանգույցում:
- Կարգավորեք «մոնիտոր/սնուցող/աստղագիտություն (կազմաձևում)» հանգույցը: Տեսախցիկը կարող է միացվել/անջատվել յուրաքանչյուր պերճի համար: Օրինակ, իմ երկու թեքերը գտնվում են հետևի կողմում, և տեսախցիկն անջատված է այս թեքերի համար:
- Սահմանեք «Counter Timer (config)» հանգույցը ցանկալի ժամանակի միջակայքում: Լռելյայն = 5 րոպե
- «DarkSky (config)» հանգույցում տեղադրեք լայնությունը և երկայնությունը ձեր գտնվելու վայրին: Երկրորդ, մուտքագրեք ձեր DarkSky API բանալին darksky-credentials հանգույցում:
- Տեղադրեք տեղումների ինտենսիվությունը «մոնիտոր/սնուցող/վերահաշվարկ (կարգաբերում)» գործառույթի հանգույցում: Լռելյայն = 0.001 դ/ժ
- Խմբագրել «Թեմայի զտիչ MQTT ստացողի վրիպազերծման հանգույցի համար (կազմաձևում)» գործառույթի հանգույց ՝ MQTT հաղորդագրությունները զտելու համար, որոնք ՉԵՔ ցանկանում տեսնել:
- Լրացուցիչ. Եթե ցանկանում եք տվյալներ պահել ձեր Google Drive- ի Աղյուսակներում, ապա ձեզ հարկավոր է խմբագրել «Ստեղծել Google Փաստաթղթերի բեռնվածություն (կազմաձևում)» գործառույթի հանգույց ՝ ձևի դաշտի ID- ով:
- Լրացուցիչ. Ավելացրեք ձեր ուրույն ձևի 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
Ինչպես արդեն նշվեց, 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: Ազնվամորի Պի տեսախցիկ
Խորհուրդ եմ տալիս օգտագործել իմ 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ԱՆԱՊԱՐՀՈՄ է մեր սնուցող այցելող առանձին թռչունների քանակից: Թռչուններին «հաշվելու» համար, հավանաբար, ամենալավը կլինի միայն մեկ կամ երկու նեղ թռիչք ունեցող սնուցողը:
Երկրորդ մրցանակ սենսորների մրցույթում
Խորհուրդ ենք տալիս:
SmartPET - Smart Pet Feeder: 7 քայլ (նկարներով)
SmartPET - Խելացի կենդանիների սնուցող. Ես Maxime Vermeeren եմ, 18 տարեկան MCT (մուլտիմեդիա և հաղորդակցման տեխնոլոգիա) Howest- ի ուսանող: Ես ընտրել եմ, որ իմ նախագիծը ստեղծի խելացի կենդանիների սնուցող սարք: Ինչու՞ դա արեցի: Իմ կատուն քաշի հետ կապված խնդիրներ ունի, ուստի որոշեցի մեքենա պատրաստել
Arduino Flappy Bird - Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: 3 քայլ
Arduino Flappy Bird | Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project. Flappy Bird- ը շատ տարածված խաղ էր այնտեղ մի քանի տարի անց, և շատ մարդիկ այն ստեղծեցին իրենց ձևով, այնպես էլ ես: Սենսորային էկրան SPFD5408, ուստի եկեք սկսենք
Bird Feeder Monitor: 7 քայլ (նկարներով)
Թռչունների սնուցող մոնիտոր. Սա նախագիծ է `վերահսկելու թռչունների թիվը, որոնք այցելում են իմ թռչնակերին, ինչպես նաև գրանցելու կերակրման համար ծախսված ժամանակը: Ես օգտագործեցի Arduino Yún և capacitive touch touch ցուցիչ ՝ Adafruit CAP1188, հայտնաբերելու և գրանցելու թռչունների կերակրումը: Ռոուի վրա
IoT Cat Feeder- ը օգտագործելով Particle Photon- ը `ինտեգրված Alexa- ի, SmartThings- ի, IFTTT- ի, Google Աղյուսակների հետ. 7 քայլ (նկարներով)
IoT Cat Feeder- ի միջոցով մասնիկի ֆոտոնի օգտագործումը `ինտեգրված Alexa- ի, SmartThings- ի, IFTTT- ի, Google թերթերի հետ. Կատուների ավտոմատ սնուցողի կարիքը ինքնին բացատրելի է: Կատուները (մեր կատվի անունը Բելլա է) կարող են տհաճ լինել քաղցած ժամանակ, և եթե ձեր կատուն իմի պես է, ամանը ամեն անգամ չոր կուտի: Ինձ անհրաժեշտ էր վերահսկվող քանակությամբ սնունդ ինքնաբերաբար բաժանելու միջոց
Pet Feeder մեքենա RasPi- ով և Telegram Bot- ով ՝ 4 քայլ (նկարներով)
Pet Feeder Machine RasPi- ով և Telegram Bot- ով. Առաջին հերթին ես պետք է հստակեցնեմ, որ սա բնօրինակ Idea Mine չէ, պարզապես թարմացրեք և հարմարեցրեք ծրագրավորման սցենարները հեռագրի հետ աշխատելու համար, ես այն գտա նախորդ Instructable- ում, ուստի վարկերն իսկապես դրա հեղինակը: Դուք կարող եք տեսնել իսպանական