Სარჩევი:

ფრინველის მიმწოდებლის მონიტორი V2.0: 12 ნაბიჯი (სურათებით)
ფრინველის მიმწოდებლის მონიტორი V2.0: 12 ნაბიჯი (სურათებით)

ვიდეო: ფრინველის მიმწოდებლის მონიტორი V2.0: 12 ნაბიჯი (სურათებით)

ვიდეო: ფრინველის მიმწოდებლის მონიტორი V2.0: 12 ნაბიჯი (სურათებით)
ვიდეო: ჩვენი #ფერმა - წყლის ფრინველები - იხვები 2024, ივლისი
Anonim
Image
Image
ფრინველის მიმწოდებლის მონიტორი V2.0
ფრინველის მიმწოდებლის მონიტორი V2.0

ეს არის პროექტი მონიტორინგის, ფოტოსურათის და ჩაწერის რაოდენობისა და დროის დახარჯული ფრინველების სტუმრად ჩვენი ფრინველის მიმწოდებლის. ამ პროექტისათვის გამოიყენეს მრავალი ჟოლოს პი (RPi). ერთი გამოიყენებოდა, როგორც შეხების სენსორი, Adafruit CAP1188, ფრინველების კვების ფოტოსურათების გამოვლენის, ჩაწერის და გასააქტიურებლად. კიდევ ერთი RPi კონფიგურირებული იყო ამ მონიტორინგის სისტემის მუშაობის გასაკონტროლებლად, ასევე მონაცემების მონიტორინგისა და ანალიზის შესანახად და შესანარჩუნებლად. ბოლო RPi იყო კონფიგურირებული როგორც კამერა, რათა გადაეღო თითოეული ფრინველი, რომელიც სტუმრობდა მიმწოდებელს.

მარაგები

  1. 1 ეა - ჟოლო Pi W
  2. 1 ეა - ჟოლო Pi 3 - მოდელი B+ - MQTT სერვერისთვის
  3. 1 ეა - ჟოლო პი კამერით - სურვილისამებრ
  4. 2 ეა - ამინდის საწინააღმდეგო შემთხვევები RPi და CAP1188 სენსორისთვის
  5. 1 ეა - სპილენძის კილიტა ლენტი გამტარ წებოვანი საშუალებით
  6. მავთული - 18-22 AWG
  7. Soldering რკინის და Solder
  8. შედუღების ნაკადი ელექტრონიკისთვის
  9. სილიკონის შეფუთვა*
  10. 8 ეა - M3 x 25 მანქანების ხრახნები*
  11. 8 ეა - M3 თხილი*
  12. 1 ეა - პროტო დაფა CAP1188– ის დასაყენებლად
  13. 1 ეა - 1x8 ქალი დიუპონის კონექტორი
  14. 1 ეა - 1x6 მამრობითი დიუპონის კონექტორი
  15. 1 ea - CAP1188 - 8 -გასაღები capacitive Touch Sensor
  16. 2 ea - PG7 წყალგაუმტარი IP68 ნეილონის საკაბელო ჯირკვლის ერთობლივი რეგულირებადი საკეტი 3 მმ -6.5 მმ დია კაბელის მავთულისთვის
  17. 1 კომპლექტი - 2 Pin Way მანქანის წყალგაუმტარი ელექტრული კონექტორის დანამატი Wire AWG მარინე პაკეტით 10
  18. 3 ეა - 5VDC ელექტრომომარაგება - ერთი თითოეული RPi– სთვის
  19. 1 ეა - ფრინველის მიმწოდებელი (CedarWorks პლასტიკური ჰოპერი ფრინველის მიმწოდებელი), ან ნებისმიერი ფრინველის მიმწოდებელი პლასტმასის ან ხის პერჩებით

*3D დაბეჭდილი ამინდის წინააღმდეგობის შემთხვევაში

ნაბიჯი 1: ფრინველთა საკვების მონიტორინგის სისტემის მიმოხილვა

ფრინველთა საკვების მონიტორინგის სისტემის მიმოხილვა
ფრინველთა საკვების მონიტორინგის სისტემის მიმოხილვა

ეს არის მონიტორინგის სისტემა, რომელიც შექმნილია ჩვენი ფრინველების მიმწოდებელში მყოფი ფრინველების დათვლის, დროის, ჩაწერისა და ფოტოს გადაღებისთვის. ჩემი ფრინველის მიმწოდებლის მონიტორის წინა ვერსიამ გამოიყენა Arduino Yun და შეინახა მონაცემები ცხრილში ჩემს Google Drive– ში. ეს ვერსია იყენებს მრავალჯერადი Raspberry Pi- ს, MQTT კომუნიკაციებს და მონაცემთა და ფოტომასალის ადგილობრივ შენახვას.

ფრინველის მიმწოდებელი აღჭურვილია Raspberry Pi Zero W და Capacitive Touch სენსორით (CAP1188). პერკებზე განათებული ნებისმიერი ფრინველი ააქტიურებს შეხების სენსორს, რომელიც იწყებს ტაიმერს თითოეული მოვლენის ხანგრძლივობის დასადგენად. შეხების გააქტიურებისთანავე "მონიტორის/მიმწოდებლის/სურათის" MQTT შეტყობინებას აქვეყნებს Bird Feeder Monitor. ეს შეტყობინება აცნობებს Raspberry Pi კამერას ფოტოს გადასაღებად. თუ MQTT სერვერი აქვეყნებს შეტყობინებას "მონიტორის/მიმწოდებლის/გაანგარიშების" შესახებ, Bird Feeder Monitor უპასუხებს "მონიტორის/მიმწოდებლის/დათვლის" MQTT შეტყობინებას, რომელსაც სერვერი შეინახავს.

MQTT სერვერი ასრულებს რამდენიმე დავალებას. ის ითხოვს და ინახავს მონაცემებს Bird Feeder Monitor– დან და ის აკონტროლებს მონიტორის მუშაობას. ის ააქტიურებს მონიტორს გამთენიისას და გამორთავს შებინდებისას. ის ასევე აკონტროლებს მონაცემების მოთხოვნის დროის ინტერვალს და ასევე აკონტროლებს მიმდინარე ამინდის პირობებს DarkSky– ს საშუალებით. ამინდის პირობების მონიტორინგი ხდება რამდენიმე მიზეზის გამო. უპირველეს ყოვლისა, ნალექების რაოდენობამ შეიძლება გავლენა მოახდინოს სენსორებზე. თუ ეს მოხდება, სენსორები ხელახლა დაკალიბრდება რეგულარულად, სანამ წვიმა მოდის. მეორე მიზეზი არის ამინდის პირობების მონიტორინგი და ჩაწერა ფრინველთა რაოდენობის მონაცემებთან კორელაციისათვის.

Raspberry Pi კამერა არის RPi + Raspberry Pi კამერის მოდული. ამ პროექტისთვის გამოყენებული კამერის პროგრამული უზრუნველყოფა არ მუშაობს USB ვებკამერით. RPi კამერა აღჭურვილია WIFI– ით და მუშაობს MQTT კლიენტის პროგრამულ უზრუნველყოფაზე. იგი იწერს "მონიტორის/მიმწოდებლის/სურათის" MQTT შეტყობინებებს და იღებს ფოტოს ყოველ ჯერზე, როდესაც ეს შეტყობინება მიიღება. ფოტოები ინახება RPi კამერაზე და მათი მართვა შესაძლებელია დისტანციურად.

ნაბიჯი 2: Raspbian- ის დაყენება ფრინველის მიმწოდებლის მონიტორზე

Raspbian– ის დაყენება ფრინველის მიმწოდებლის მონიტორზე
Raspbian– ის დაყენება ფრინველის მიმწოდებლის მონიტორზე

დააინსტალირეთ Raspbian Lite– ის უახლესი ვერსია Raspberry Pi Zero W.– ზე გირჩევთ მიჰყევით ნაბიჯ ნაბიჯ ინსტრუქციას, რომელიც შეგიძლიათ იხილოთ Adafruit– ის Raspberry Pi Zero Headless Quick Start– ში.

შემდეგი ნაბიჯები შედიოდა ზემოთ მოცემულ ინსტრუქციებში, მაგრამ გამეორებას იმსახურებს:

დაუკავშირდით RPi– ს ssh– ის საშუალებით და გაუშვით შემდეგი ბრძანებები:

sudo apt-get updatesudo apt-get განახლება

ზემოაღნიშნული ბრძანებების დასრულებას გარკვეული დრო დასჭირდება, მაგრამ ამ ბრძანებების გაშვება დაგარწმუნებთ, რომ თქვენ ხართ უახლესი პაკეტების შესახებ.

შემდეგი, გაუშვით შემდეგი ბრძანება RPi პროგრამული უზრუნველყოფის კონფიგურაციისთვის:

sudo raspi-config

შეცვალეთ თქვენი პაროლი, ჩართეთ SPI და I2C და გააფართოვეთ ფაილური სისტემა. როდესაც ეს ყველაფერი დასრულებულია, შემდეგ გამოდით raspi-config– დან.

ნაბიჯი 3: RPi და CAP1188 გაყვანილობა

RPi და CAP1188 გაყვანილობა
RPi და CAP1188 გაყვანილობა

Raspberry Pi W (RPi) და CAP1188 შეყვანილია I2C გამოყენებით. არსებობს სხვა capacitive touch სენსორები, რომლებიც ხელმისაწვდომია ერთი, ხუთი ან რვა სენსორით. მე ავირჩიე რვა, რადგან ჩემს ფრინველთა მიმწოდებელს ექვსი მხარე აქვს.

გაყვანილობა:

  • CAP1188 SDA == RPi პინი 3
  • CAP1188 SCK == RPi პინი 5
  • CAP1188 VIN == RPi პინი 1 (+3.3VDC)
  • CAP1188 GND == RPi Pin 9 (GND)
  • CAP1188 C1-C8 == დაუკავშირდით მავთულხლართებს თითოეულ კოჭაზე 1x8 მდედრობითი Dupont კონექტორის საშუალებით
  • CAP1188 3Vo == CAP1188 AD - Hardwire I2C მისამართი 0x28
  • RPi Pin 2 == +5VDC
  • RPi Pin 14 == GND

RPi– ს ენერგია მიეწოდებოდა გარედან, ჩემი ავტოფარეხიდან მიწისქვეშა მავთულის გადინებით და ფრინველების საკვების სადგამზე გამოყენებული მილის საშუალებით. 2-პინიანი ამინდის საწინააღმდეგო კონექტორი იყო დამაგრებული მავთულის ბოლოს RPi Bird Feeder მონიტორის დასაკავშირებლად. მავთულის მეორე ბოლო იყო დაკავშირებული ავტოფარეხში შერწყმულ 5-VDC კვების ბლოკთან. ეს პროექტი უნდა მუშაობდეს ბატარეებთან, მაგრამ მე არ მინდოდა ბატარეების შეცვლა რუტინულ საფუძველზე.

მე ავაშენე 16 სიგრძის კაბელი, რომ შევაერთო ამინდის საწინააღმდეგო ყუთი, რომელიც შეიცავს RPi- ს და ამინდის საწინააღმდეგო ყუთს, რომელიც შეიცავს CAP1188. ტევადობის სენსორი უნდა იყოს განთავსებული მაქსიმალურად ახლოს პერკებთან.

RPi Zero და CAP1188 შეიძლება შეფუთული იყოს ამინდის საწინააღმდეგო ყუთში, მაგრამ მე მირჩევნია ცალკე შეფუთვა.

ნაბიჯი 4: ფრინველის მიმწოდებლის მონიტორის კონფიგურაცია

ფრინველის მიმწოდებლის მონიტორის კონფიგურაცია
ფრინველის მიმწოდებლის მონიტორის კონფიგურაცია
ფრინველის მიმწოდებლის მონიტორის კონფიგურაცია
ფრინველის მიმწოდებლის მონიტორის კონფიგურაცია

შედით Raspberry Pi Zero W– ში და შეასრულეთ შემდეგი ნაბიჯები.

დააინსტალირეთ პიპი:

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's 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- კლიენტები python-mosquitto

sudo pip3 დააინსტალირეთ paho-mqtt

მე გირჩევთ გამოიყენოთ Adafruit– ის MQTT კონფიგურაცია Raspberry Pi– ზე ამ RPi– ზე MQTT კონფიგურაციისთვის და დასაყენებლად.

დააინსტალირეთ Bird Feeder Monitor პროგრამული უზრუნველყოფა:

cd

sudo apt-get დააინსტალირეთ git git კლონი "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 დირექტორიაში.

ნანო გამშვები.შ

ჩართეთ შემდეგი ტექსტი launcher.sh- ში

#!/bin/sh

# launcher.sh # ნავიგაცია სახლის დირექტორიაში, შემდეგ ამ დირექტორიაში, შემდეგ პითონის სკრიპტის შესრულება, შემდეგ სახლში cd /cd home /pi /RPi_bird_feeder_monitor sudo python3 feeder_mqtt_client.py cd /

გასვლა და შენახვა launcher.sh

ჩვენ უნდა გავაკეთოთ სკრიპტი შესრულებად.

chmod 755 გამშვები.შ

სცადეთ სკრიპტი.

sh გამშვები.შ

შემდეგი, ჩვენ გვჭირდება რედაქტირება crontab (linux task manager), რომ დავიწყოთ სკრიპტი გაშვებისას. შენიშვნა: ჩვენ უკვე შევქმენით /logs დირექტორია ადრე.

sudo crontab -e

ეს მოიტანს crontab ფანჯარას, როგორც ზემოთ ჩანს. გადადით ფაილის ბოლომდე და შეიყვანეთ შემდეგი ხაზი.

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

გამოდით და შეინახეთ ფაილი და გადატვირთეთ RPi. სკრიპტმა უნდა დაიწყოს feeder_mqtt_client.py სკრიპტი RPi გადატვირთვის შემდეგ. სკრიპტის სტატუსის შემოწმება შესაძლებელია /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 პინიანი მანქანის წყალგაუმტარი ელექტრული ქალი კონექტორი RPi– ზე, როგორც ეს მოცემულია ზემოთ მოცემულ ფოტოში. შეაერთეთ წითელი მავთული RPi +5VDC პინ 2 – ზე, ხოლო შავი მავთული GND– ს ან პინ 14 – ს. იხილეთ გაყვანილობის დიაგრამა RPi– ზე გამოყენებული სხვა კავშირებისთვის.

გაუშვით ოთხი გამტარი მავთულის მეორე ბოლო ჯირკვლის სახსარში CAP1188 კორპუსზე და მიამაგრეთ მავთულები, როგორც მითითებულია გაყვანილობის დიაგრამაში. CAP1188 ტევადობის სენსორების ყველა 8 ნაწილი გაერთიანებულია 8 პინის მდედრობითი Dupont კონექტორზე. ეს კონექტორი ჩამონტაჟებულია ქეისის გვერდით, რათა მოხდეს წყალგაუმტარი დალუქვა ზედა ნაწილის გამოყენებისას. შენიშვნა: ორივე შემთხვევის თავზე, ალბათ, მოდიფიცირება მოითხოვს ჯირკვლის ერთობლივ კონექტორებზე თხილი გამოსაყენებლად.

დახურვის წინ, მე ვიყენებ სილიკონის შეფუთვას თითოეული საქმის კიდეებზე, ხოლო ჯირკვლის სახსრების მავთულის ირგვლივ, რათა დალუქოს შემთხვევები. მე ასევე ვამატებ სილიკონს Dupont კონექტორის უკანა ნაწილში, რათა დალუქოს იგი ელემენტებიდან.

ნაბიჯი 7: ფრინველის მიმწოდებლის გაყვანილობა

ფრინველის მიმწოდებლის გაყვანილობა
ფრინველის მიმწოდებლის გაყვანილობა
ფრინველის მიმწოდებლის გაყვანილობა
ფრინველის მიმწოდებლის გაყვანილობა
ფრინველის მიმწოდებლის გაყვანილობა
ფრინველის მიმწოდებლის გაყვანილობა

მიმწოდებლის თითოეული პერჩი დაფარული იყო 1/4 ფართო თვითწებვადი სპილენძის კილიტა ლენტით. პატარა ხვრელი იყო გაბურღული ლენტით და პერჩით, ხოლო მავთული იყო მიმაგრებული კილიტაზე და მიდიოდა მიმწოდებლის ქვეშ. თითოეული მავთულები უკავშირდება მამრობითი სქესის 6 პინ დიუპონის კონექტორს.

შენიშვნა: ზემოთ ნაჩვენები ფრინველების მიმწოდებლით, მე გირჩევთ უფსკრული თითოეული კილიტა ზოლის ბოლოებს შორის 1 1/4 " - 1 1/2". აღმოვაჩინე, რომ უფრო დიდ ფრინველებს, როგორიცაა გრეხები და მტრედები, შეუძლიათ ერთდროულად შეეხოთ ორ კილიტაზე ზოლს, თუ ისინი ერთმანეთთან ახლოს არის განთავსებული.

ადრე ნახსენები "სამონტაჟო სოლი" დაბეჭდილია და იკვებება მიმწოდებლის ძირში, რათა უზრუნველყოს თანაბარი ფართობი ამინდის საწინააღმდეგო ყუთის დასაყენებლად, რომელიც შეიცავს CAP1188. 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 სერვერი ამოქმედდება, შეგიძლიათ ჩიტის მიმწოდებლის მონიტორის ნაკადის იმპორტი მონაცემების ying/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Flow.json– ში და იმპორტი> ბუფერის გამოყენებით ბუფერის ახალ ნაკადში ჩასასმელად.

ეს ნაკადი მოითხოვს შემდეგ კვანძებს:

  • node-red-node-darksky-ამ კვანძის გამოსაყენებლად საჭიროა DarkSky API ანგარიში.
  • node-red-contrib-bigtimer-დიდი ტაიმერი Scargill Tech- ის მიერ
  • node-red-contrib-influxdb-InfluxDB მონაცემთა ბაზა

თქვენი მდებარეობის ამინდის მონაცემები მოცემულია DarkSky– ს საშუალებით. მე ამჟამად ვაკვირდები და ვაფიქსირებ "ნალექის ინტენსივობას", "ტემპერატურას", "ტენიანობას", "windSpeed", "windBearing", "windGust" და "cloudCover". "ნალექის ინტენსივობა" მნიშვნელოვანია, რადგან ის გამოიყენება იმის დასადგენად, საჭიროა თუ არა სენსორების ხელახალი დაკალიბრება წვიმის შედეგად.

დიდი ტაიმერის კვანძი არის ტაიმერების შვეიცარიული არმიის დანა. იგი გამოიყენება მონაცემების ჩაწერის დასაწყებად და შესაჩერებლად გამთენიისას და შებინდებისას ყოველ დღე.

InfluxDB არის მსუბუქი წონის მქონე დროის სერიების მონაცემთა ბაზა. მონაცემთა ბაზა ავტომატურად ამატებს დროის ნიშნულს ყოველ ჯერზე, როდესაც მონაცემებს ჩავსვამთ. SQLite– სგან განსხვავებით, ველების განსაზღვრა საჭირო არ არის. ისინი ავტომატურად ემატება მონაცემთა ბაზაში მონაცემების შეყვანისას.

Node-Red კონფიგურაცია

ზემოთ ნახსენები JSON ფაილი გადმოტვირთავს ნაკადს, რომელიც მოითხოვს რამდენიმე შესწორებას თქვენი მოთხოვნების დასაკმაყოფილებლად.

  1. შეაერთეთ "MQTT გამოქვეყნება" და "მონიტორი/მიმწოდებელი/#" თქვენს MQTT სერვერს.
  2. დააყენეთ გრძედი და გრძედი თქვენი მდებარეობისთვის "Dawn & Dusk Timer (config)" დიდი ტაიმერის კვანძში.
  3. "მონიტორის/მიმწოდებლის/ასტრონომიის (კონფიგურაციის) კვანძის კონფიგურაცია. კამერა შეიძლება ჩართული/გამორთული იყოს თითოეული პერჩისთვის. მაგალითად, ჩემი ორი პერჩი უკანა მხარეს არის და კამერა გამორთულია ამ პერჩებისთვის.
  4. დააყენეთ "Counter Timer (config)" კვანძი სასურველ დროის ინტერვალზე. ნაგულისხმევი = 5 წთ
  5. დააყენეთ გრძედი და გრძედი თქვენს ადგილას "DarkSky (კონფიგურაცია)" კვანძში. მეორეც, შეიყვანეთ თქვენი DarkSky API გასაღები darksky-credentials კვანძში.
  6. დააყენეთ ნალექების ინტენსივობა "მონიტორის/მიმწოდებლის/ხელახალი კალიბრაციის (კონფიგურაციის)" ფუნქციის კვანძში. ნაგულისხმევი = 0.001 სთ/სთ
  7. შეცვალეთ "თემის ფილტრი MQTT მიმღების გამოსწორების კვანძისათვის (კონფიგურაცია)" ფუნქციის კვანძი MQTT შეტყობინებების გასაფილტრად, რომელთა ნახვა არ გსურთ.
  8. არასავალდებულო: თუ გსურთ მონაცემების შენახვა ცხრილში თქვენს Google Drive- ში, თქვენ უნდა შეცვალოთ "შექმენით Google Docs Payload (კონფიგურაცია)" ფუნქციის კვანძი ფორმის ველის ID- ებით.
  9. არასავალდებულო: დაამატეთ თქვენი უნიკალური ფორმის URL "Google Docs GET (config)" HTTP მოთხოვნის კვანძის URL ველში.

Node-Red UI Desktop

Bird_Feeder_Monitor_Flow მოიცავს მომხმარებლის ინტერფეისს (UI) მობილური ტელეფონის საშუალებით MQTT სერვერზე წვდომისათვის. მონიტორი შეიძლება გამორთული ან ჩართული იყოს, სენსორების ხელახლა დაკალიბრება ან ხელით ფოტოების გადაღება. ასევე ნაჩვენებია სენსორული "შეხება", რომელიც უხეშად წარმოგიდგენთ მიმწოდებლის ფრინველთა რაოდენობას.

ნაბიჯი 9: გრაფანა

გრაფანა
გრაფანა
გრაფანა
გრაფანა

"Grafana არის ღია კოდის მეტრული ანალიტიკისა და ვიზუალიზაციის კომპლექტი. ის ყველაზე ხშირად გამოიყენება ინფრასტრუქტურისა და აპლიკაციის ანალიტიკური დროის სერიის მონაცემების ვიზუალიზაციისთვის, მაგრამ ბევრი იყენებს მას სხვა სფეროებში, მათ შორის სამრეწველო სენსორებს, სახლის ავტომატიზაციას, ამინდს და პროცესის კონტროლს." refn: Grafana Docs.

ეს პროგრამა შედის ანდრეას სპისეს იმიჯ ფაილში, რომელიც გამოიყენება ჩემი MQTT სერვერის შესაქმნელად. MQTT სერვერზე InfluxDB მონაცემთა ბაზის კონფიგურაციის შემდეგ, Grafana შეიძლება იყოს კონფიგურირებული, რომ გამოიყენოს ეს მონაცემთა ბაზა, როგორც ჩანს ზემოთ სურათზე. შემდეგი, ამ პროექტის მიერ გამოყენებული დაფის ჩატვირთვა შესაძლებელია JSON ფაილიდან, რომელიც ნაპოვნია ~/RPi_bird_feeder_monitor/json/Bird_Feeder_Monitor_Grafana.json– ში. გრაფანის კონფიგურაციის რჩევები შეგიძლიათ ნახოთ ანდრეას სპისეს ვებსაიტზე "Node-Red, InfuxDB & Grafana Installation".

ნაბიჯი 10: InfluxDB

InfluxDB
InfluxDB
InfluxDB
InfluxDB

როგორც უკვე აღვნიშნეთ, Adreas Spiess– ს აქვს დიდი სახელმძღვანელო და ვიდეო, რომელიც დაგეხმარებათ InfluxDB– ის კონფიგურაციის გავლით. აქ არის ის ნაბიჯები, რაც გადავდგი ჩემი მონაცემთა ბაზის კონფიგურაციისთვის.

პირველ რიგში, მე შევედი ჩემს MQTT სერვერზე SSH– ის საშუალებით და შევქმენი USER:

root@MQTTPi: ~#

root@MQTTPi: ~# შემოდინება დაკავშირებულია "https:// localhost: 8086" ვერსიასთან 1.7.6 InfluxDB ჭურვი ვერსია: 1.7.6 შეიყვანეთ InfluxQL შეკითხვა> CREATE USER "pi" PASSWORD 'ჟოლოს' ყველა პრივატიულობით> აჩვენეთ მომხმარებლები მომხმარებლის ადმინისტრატორი ---- ----- პი მართალია

შემდეგი, მე შევქმენი მონაცემთა ბაზა:

შექმენით მონაცემთა ბაზა BIRD_FEEDER_MONITOR>> მონაცემთა ბაზების ჩვენება სახელი: მონაცემთა ბაზების სახელი ---- _ შიდა BIRD_FEEDER_MONITOR>

მას შემდეგ რაც შექმენით მონაცემთა ბაზა ზემოთ, შეგიძლიათ დააკონფიგურიროთ InfluxDB კვანძი Node-Red- ში. როგორც ზემოთ ფოტოში ჩანს, მე ვასახელებ გაზომვას "მიმწოდებლებს". ეს ჩანს InfluxDB– ში მონაცემების ინიციალიზაციის შემდეგ:

USE BIRD_FEEDER_MONITOR მონაცემთა ბაზის გამოყენება BIRD_FEEDER_MONITOR

> აჩვენეთ საზომი სახელი: გაზომვების სახელი ---- მიმწოდებლები>

InfluxDB– ის მრავალი მახასიათებელიდან არის FIELDS კონფიგურაცია არ არის საჭირო. FIELDS ემატება და კონფიგურირდება ავტომატურად მონაცემების შეყვანისას. აქ მოცემულია FIELDS და FIELDTYPE ამ მონაცემთა ბაზისთვის:

FIELD KEYS სახელი: მიმწოდებლების ველი ძირითადი ველი ტიპი -------- --------- ღრუბლიანი float count_1 float count_2 float count_3 float count_4 float count_5 float count_6 float ტენიანობა float სახელი სტრიქონი precip_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>

მონაცემთა ბაზიდან რამდენიმე ჩანაწერი შეგიძლიათ იხილოთ ქვემოთ:

აირჩიეთ * მიმწოდებლების LIMIT 10 სახელი: მიმწოდებლების დრო cloudcover რაოდენობა_1 რაოდენობა_2 რაოდენობა_3 რაოდენობა_4 რაოდენობა_5 რაოდენობა_6 ტენიანობა სახელი precip_Int temp time_1 დრო_2 დრო_3 დრო_4 დრო_5 დრო_6 winddir windgust windspeed ---- ---------- ----- -------- ------- ------- ------- ------- -------- ----- --------- ---- ------ ------ ------ ------ ------ ------ ------- ------ -------- --------- 1550270591000000000 0 0 0 0 0 0 მიმწოდებელი 1 0 0 0 0 0 0 1550271814000000000 0 0 0 0 0 0 მიმწოდებელი 1 0 0 0 0 0 0 1550272230000000000 0 0 0 0 0 0 მიმწოდებელი 1 0 0 0 0 0 0 155027253000000000000 0 0 0 0 0 0 0 მიმწოდებელი 1 0 0 0 0 0 1550272830000000000 0 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 მიმწოდებელი 1 0 0 0 0 0 0 0 1550273430000000000 0 0 0 0 0 0 0 ფიდერი 1 0 0 0 0 0 0 155027373000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155027403000000000000 0 0 0 0 0 0 0 მიმწოდებელი 0 0 0 0 0 0 0 მიმწოდებელი 1 0 0 0 0 0 0>>

ნაბიჯი 11: ჟოლო პი კამერა

ჟოლო პი კამერა
ჟოლო პი კამერა
ჟოლო პი კამერა
ჟოლო პი კამერა
ჟოლო პი კამერა
ჟოლო პი კამერა
ჟოლო პი კამერა
ჟოლო პი კამერა

მე გირჩევთ გამოიყენოთ ჩემი ინსტრუქტიული, დისტანციური CNC გაჩერება და მონიტორი, ჟოლოს კამერის ასაწყობად. კამერის შესაქმნელად შეასრულეთ ყველა აღნიშნული ნაბიჯი 6 და 8 – ის გარდა.გთხოვთ გაითვალისწინოთ, რომ მე ვიყენებ ძველ ჟოლოს Pi- ს ჩემი კამერისთვის, მაგრამ ის ძალიან კარგად მუშაობდა ჩემი მაღაზიის ფანჯრიდან.

განაახლეთ რასბიანი:

sudo apt-get updatesudo apt-get განახლება

დააინსტალირეთ PIP:

sudo apt-get დააინსტალირეთ python3-pip

დააინსტალირეთ paho-mqtt:

sudo pip3 დააინსტალირეთ paho-mqtt

დააინსტალირეთ git და ფრინველების მონიტორინგის პროგრამა:

cd

sudo apt-get დააინსტალირეთ git git კლონი "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

ნანო გამშვები.შ

ჩართეთ შემდეგი ტექსტი launcher.sh- ში

#!/bin/sh

# launcher.sh # ნავიგაცია სახლის დირექტორიაში, შემდეგ ამ დირექტორიაში, შემდეგ პითონის სკრიპტის შესრულება, შემდეგ სახლში cd /cd home /pi /RPi_bird_feeder_monitor sudo python3 camera_mqtt_client.py cd /

გასვლა და შენახვა launcher.sh

ჩვენ უნდა გავაკეთოთ სკრიპტი და შესრულებადი.

chmod 755 გამშვები.შ

სცადეთ სკრიპტი.

sh გამშვები.შ

შექმენით ჟურნალის დირექტორია:

cd

mkdir ჟურნალები

შემდეგი, ჩვენ გვჭირდება რედაქტირება crontab (linux task manager), რომ დავიწყოთ სკრიპტი გაშვებისას.

sudo crontab -e

ეს მოიტანს crontab ფანჯარას, როგორც ზემოთ ჩანს. გადადით ფაილის ბოლომდე და შეიყვანეთ შემდეგი ხაზი.

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

გამოდით და შეინახეთ ფაილი და გადატვირთეთ RPi. სკრიპტმა უნდა დაიწყოს camera_mqtt_client.py სკრიპტი RPi გადატვირთვის შემდეგ. სკრიპტის სტატუსის შემოწმება შესაძლებელია /logs საქაღალდეში მდებარე ჟურნალის ფაილებში.

ნაბიჯი 12: ისიამოვნეთ

მიირთვით
მიირთვით

ჩვენ სიამოვნებით ვუყურებთ ფრინველებს, თუმცა ჩვენ ვერ ვათავსებთ მიმწოდებელს ადგილას მაქსიმალური სიამოვნებისთვის. ერთადერთი ადგილი, რომელსაც უმეტესობა ჩვენგანს ხედავს, არის საუზმის მაგიდიდან და ყველა ვერ ხედავს მიმწოდებელს იქიდან. ამიტომ, Bird Feeder Monitor– ით ჩვენ შეგვიძლია აღფრთოვანებული ვიყოთ ჩიტებით ჩვენს მოსახერხებელ დროს.

მონიტორთან ერთად აღმოვაჩინეთ ფრინველთა სიხშირე ერთ კოჭაზე, შემდეგ კი ხტუნვა შემდეგ ბორცვამდე სანამ არ შემოუვლიან მთელ მიმწოდებელს. შედეგად, ფრინველების რაოდენობა გამორთულია ცალკეული ფრინველების რაოდენობიდან, რომლებიც სტუმრობენ ჩვენს მიმწოდებელს. მხოლოდ ერთი ან ორი ვიწრო პერჩის მქონე მიმწოდებელი იქნება საუკეთესო ფრინველების "დასათვლელად".

სენსორების კონკურსი
სენსორების კონკურსი
სენსორების კონკურსი
სენსორების კონკურსი

მეორე პრიზი სენსორების კონკურსში

გირჩევთ: