Სარჩევი:
- ნაბიჯი 1: ტემპერატურის მონიტორინგი
- ნაბიჯი 2: Cloud4Rpi.io- ს დაყენება
- ნაბიჯი 3: UPS მონიტორინგი
- ნაბიჯი 4: მომზადება "წარმოებისთვის"
- ნაბიჯი 5: საკონტროლო პანელის დაყენება
ვიდეო: წვრილმანი სახლის მონიტორინგი RaspberryPi და Cloud4Rpi: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ერთ ზამთრის შაბათ -კვირას წავედი ჩემს აგარაკზე და აღმოვაჩინე, რომ იქ ძალიან ციოდა. რაღაც მოხდა ელექტროენერგიასთან და RCD ამომრთველმა ის გამორთო და გათბობაც გათიშა. გამიმართლა, რომ იქ ჩამოვედი, თორემ რამდენიმე დღეში ყველაფერი გაყინული იქნებოდა, რაც ძალიან ცუდია მილებისთვის და რადიატორებისთვის.
მე მქონდა რამოდენიმე Raspberry Pi და თერმული სენსორი, ასე რომ ვიფიქრე - რატომ არ ვაკეთებ უბრალო მონიტორინგის მოწყობილობას? ქვემოთ მოყვანილი ინსტრუქცია ვარაუდობს, რომ თქვენ გაქვთ Raspberry Pi Raspbian– ით და დაყენებულია ქსელური კავშირი. ჩემს შემთხვევაში ეს არის Raspberry Pi B+ Raspbian– ით (2018–06–27 – raspbian-stretch-lite).
ნაბიჯი 1: ტემპერატურის მონიტორინგი
როგორ დააკავშიროთ DS18B20 ტემპერატურის სენსორი? უბრალოდ google როგორ გააკეთოთ ეს და ნახავთ უამრავ მსგავს სურათს:
ჩემს შემთხვევაში მე მქონდა შავი, ყვითელი და წითელი მავთულები. შავი დაფქულია, მიდის Ground pin- ზე, წითელი არის ძალა - მიდის 3.3v პინზე, ხოლო ყვითელი არის მონაცემები - უნდა გადავიდეს 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 არის ჩვენი ტემპერატურის სენსორი.
აპარატურა მზად არის. ახლა მონიტორინგის ნაწილი უნდა შევქმნა. მე მჭირდება რაღაც, რაც მაჩვენებს მონაცემებს და შემატყობინებს, თუ მოწყობილობა გათიშულია გარკვეული ხნით ან არ არის ძალა, ან ტემპერატურა დაბალია. ცხადია, ეს არ შეიძლება იყოს ჟოლოს პი, ინტერნეტში უნდა იყოს რაიმე სერვერი ან სერვისი, რომელიც მონიტორინგს უწევს ჩემს მოწყობილობას.
მე შემიძლია შევქმნა მარტივი სერვერი, მივიღო ჰოსტინგი და დავაყენო ყველაფერი, მაგრამ გულწრფელად, არ მინდა. საბედნიეროდ, ვიღაცამ უკვე იფიქრა ამაზე და შექმნა cloud4rpi.io - ღრუბლის მართვის პანელი თქვენი მოწყობილობისთვის.
ნაბიჯი 2: Cloud4Rpi.io- ს დაყენება
Cloud4Rpi უზრუნველყოფს სერვისს, რომელიც საშუალებას აძლევს თქვენს მოწყობილობას გაგზავნოს და მიიღოს მონაცემები MQTT ან HTTP პროტოკოლების გამოყენებით. მათ აქვთ კლიენტის ბიბლიოთეკა პითონისთვის, ამიტომ მე გამოვიყენებ პითონს.
პითონის მაგალითები, რომლებიც მოყვება Cloud4Rpi სერვისს, უკვე შეიცავს კოდს DS18B20 ტემპერატურის სენსორისთვის.
მივედი https://cloud4rpi.io– ზე, შევქმენი ანგარიში და დავამატე ახალი მოწყობილობა. მოწყობილობის გვერდს აქვს ნიშანი - სტრიქონი, რომელიც განსაზღვრავს მოწყობილობას და რომელიც უნდა იყოს მითითებული პროგრამაში, რომელიც აგზავნის მონაცემებს.
დასაწყისისთვის, ყოველთვის კარგი იდეაა პაკეტების მენეჯერის განახლება და პაკეტების განახლება (შენიშვნა: შეიძლება დრო დასჭირდეს, თუ ცოტა ხნით არ განახლდებით):
sudo apt-get განახლება && sudo apt-get განახლება
შემდეგ დააინსტალირეთ git, Python და მისი პაკეტის მენეჯერი Pip:
sudo apt-get დააინსტალირეთ git python python-pip
შემდეგ დააინსტალირეთ cloud4rpi პითონის ბიბლიოთეკა:
sudo pip დააინსტალირეთ cloud4rpi
დაბოლოს, მე მზად ვარ დავწერო ჩემი საკონტროლო პროგრამა. ვიწყებ მაგალითზე, რომელიც ხელმისაწვდომია
git კლონი https://github.com/cloud4rpi/cloud4rpi-raspberrypi… cloud4rpicd cloud4rpi
ძირითადი პროგრამის ფაილი არის control.py - მე უნდა შევცვალო იგი ჩემი საჭიროებების შესაბამისად. პირველი, შეცვალეთ პროგრამა და ჩასვით ნიშანი:
sudo nano control.py
იპოვეთ ხაზი DEVICE_TOKEN = '…'] და მიუთითეთ მოწყობილობის ნიშანი. ამის შემდეგ შემიძლია უბრალოდ გავუშვა პროგრამა: ის მუშაობს და აცხადებს ტემპერატურას RoomTemp ცვლადში:
sudo python control.py
ის მუშაობს და აცხადებს ტემპერატურას RoomTemp ცვლადში.
გაითვალისწინეთ, რომ ის აღმოაჩენს ყველა ონლაინ ds18b20 სენსორს
ds_sensors = ds18b20. DS18B20.find_all ()
და იყენებს პირველად აღმოჩენილ სენსორს:
RoomTemp ': {' type ':' numeric ',' bind ': ds_sensors [0] თუ ds_sensors სხვა არცერთი}
კარგი, ეს ადვილი იყო, რადგან საცდელ პროგრამას აქვს ყველაფერი, რაც საჭიროა 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- ს, რათა შევუერთდე ჩემს UPS- ს usb- ის საშუალებით.
sudo nano /etc/apcupsd/apcupsd.conf# #UPSCABLE smart UPSCABLE usb ##UPSTYPE apcsmart #DEVICE/dev/ttyS0 UPSTYPE usb DEVICE
ახლა შემიძლია შევაერთო USB კაბელი UPS– დან RaspberryPi– ზე და შევამოწმო, არის თუ არა UPS.
sudo apctest
მან არ უნდა მოგცეთ შეცდომის შეტყობინებები.
ახლა სერვისის apcupsd უნდა დაიწყოს:
sudo systemctl დაწყება apcupsd
UPS სტატუსის შესამოწმებლად შემიძლია გამოვიყენო სტატუსის ბრძანება:
sudo /etc/init.d/apcupsd სტატუსი
და გამოვა რაღაცნაირად:
APC: 001, 035, 0855DATE: 2018-10-14 16:55:30 +0300 HOSTNAME: vcontrol VERSION: 3.14.14 (2016 წლის 31 მაისი) debian UPSNAME: vcontrol CABLE: USB Cable DRIVER: USB UPS Driver UPSMODE: Stand Alone დაწყების დრო: 2018-10-14 16:54:28 +0300 მოდელი: Back-UPS XS 650CI სტატუსი: ONLINE LINEV: 238.0 ვოლტი LOADPCT: 0.0 პროცენტიანი გადასახადი: 100.0 პროცენტიანი დრო: 293.3 წუთი 0 წამი გრძნობა: საშუალო ლოტრანი: 140.0 ვოლტი HITRANS: 300.0 ვოლტი ALARMDEL: 30 წამი BATTV: 14.2 ვოლტი LASTXFER: არ არის გადარიცხვები turnon წლიდან NUMXFERS: 0 TONBATT: 0 წამი CUMONBATT: 0 წამი XOFFBATTAT00: N00: 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
მე მჭირდება სტატუსი - რომელიც არის "STATUS:" ხაზი.
Cloud4rpi ბიბლიოთეკა შეიცავს მოდულს "rpy.py", რომელიც აბრუნებს Raspberry Pi სისტემის პარამეტრებს, როგორიცაა მასპინძლის სახელი ან CPU ტემპერატურა. ვინაიდან ყველა ეს პარამი არის გარკვეული ბრძანებების გაშვებისა და გამომავალი შედეგების გაანალიზების შედეგი, ის ასევე შეიცავს მოსახერხებელ ‘parse_output’ ფუნქციას, რომელიც ზუსტად იმას აკეთებს, რაც მე მჭირდება. ეს არის როგორ მივიღო ჩემი UPS სტატუსი:
def ups_status (): result = rpi.parse_output (r'STATUS / s+: / s+(S+) ', [' /etc/init.d/apcupsd ',' სტატუსი '])) თუ შედეგია: სხვა შედეგის დაბრუნება: დაბრუნება 'უცნობი'
Cloud4rpi– ზე ამ სტატუსის გასაგზავნად, მე უნდა გამოვაცხადო ცვლადი UPS სტატუსი და შევუკავშირო ის ჩემს ups_status ფუნქციას: ახლა შემიძლია ჩემი პროგრამის გაშვება:
ცვლადები = {'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' ხოლო ჭეშმარიტი: newUPS = ups_status () if (data_timer <= 0) ან (newUPS! = prevUPS): device.publish_data () data_timer = DATA_SENDING_INTERVAL prevUPS = diag = 0: 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 და ჩემი კონტროლი. სისტემის გაშვება. Apcupsd სერვისი ძველია და თანამედროვე raspbian– ზე დასაწყებად, მე უნდა შევცვალო /etc/init.d/apcupsd ფაილი, ამ ხაზების დამატებით სადღაც ზედა:
### INIT INFO INFO # უზრუნველყოფს: apcupsd # საჭირო-დაწყება: $ all # საჭირო-გაჩერება: # ნაგულისხმევი-დაწყება: 2 3 4 5 # ნაგულისხმევი-გაჩერება: # მოკლე აღწერა: APC UPS დემონი… ### END INIT ინფორმაცია#
შემდეგ ჩართეთ სერვისი:
sudo systemctl ჩართეთ apcupsd
შემდეგ დაიწყეთ მომსახურება:
sudo systemctl დაწყება apcupsd
ახლა apcupsd დაიწყება სისტემის გაშვებისას.
Control.py- ს სერვისად დასაყენებლად გამოვიყენე მოწოდებული service_install.sh სკრიპტი:
sudo bash service_install.sh/cloud4rpi/control.py
ახლა სერვისი დაიწყო და ის გადარჩება გადატვირთვის შემდეგ.
ნაბიჯი 5: საკონტროლო პანელის დაყენება
Cloud4rpi მაძლევს საშუალებას დავაყენო მართვის პანელი ჩემი მოწყობილობისთვის. თქვენ შეგიძლიათ დაამატოთ „ვიჯეტები“და დაუკავშიროთ ისინი მოწყობილობის ცვლადებს.
ჩემი მოწყობილობა გთავაზობთ მხოლოდ წაკითხვის ცვლადს - RoomTemp და UPSStatus:
ცვლადები = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}
დავამატე 3 ვიჯეტი - ნომერი RoomTemp– ისთვის, ტექსტი UPSStatus– ისთვის და დიაგრამა RoomTemp– ისთვის.
მე შემიძლია დავაყენო სიგნალები, ასე რომ მე ვიღებ ელ.წერილს, როდესაც ტემპერატურა განსაზღვრულ დიაპაზონშია, UPS გადის ხაზგარეშე ან მოწყობილობა არ აგზავნის მონაცემებს საჭიროებისამებრ. ახლა დარწმუნებული ვარ, რომ ჩემი აგარაკი კარგადაა და შემიძლია შევატყობინო როდესაც რაღაც არასწორია, მე შემიძლია დავურეკო მეზობლებს და ვთხოვო მათ შეამოწმონ რა ხდება. აქ არის კონტროლის ფაქტობრივი კოდი. Py.
გირჩევთ:
მწვანე სახლის მონიტორინგი IOT– ით: 5 ნაბიჯი
Green House მონიტორინგი IOT– ით: როდესაც საქმე სოფლის მეურნეობას ეხება, ტემპერატურის მონიტორინგი & მცენარეების ტენიანობა მნიშვნელოვანი ფაქტორია მათი გადარჩენისთვის. ამჟამად ხალხი სათბურში მიმაგრებულ თერმომეტრებს იყენებს, რათა ფერმერებს შეეძლოთ ტემპერატურის გაზომვა. თუმცა, ეს სახელმძღვანელო აპლიკაცია
სახლის ტენიანობის და ტემპერატურის მონიტორინგი: 11 ნაბიჯი
სახლის ტენიანობის და ტემპერატურის მონიტორინგი: გამარჯობა ბიჭებო! იმისათვის, რომ დავიწყოთ საუკეთესოდ, პატარა ამბავი პროექტის შესახებ. მე ცოტა ხნის წინ დავამთავრე და გადავედი ავსტრიაში ინჟინრის პირველი თანამდებობისთვის. ქვეყანა არის ლამაზი, მაგრამ ძალიან ცივი & ტენიანი ზამთრის სეზონზე. სწრაფად დავიწყე
სახლის/ოფისის ოთახის ტემპერატურის მონიტორინგი თქვენს სამუშაო მაგიდაზე: 4 ნაბიჯი
სახლის/ოფისის ოთახის ტემპერატურის მონიტორინგი თქვენს სამუშაო მაგიდაზე: ოთახების ან ოფისების მონიტორინგისთვის, სადაც ჩვენ შეგვიძლია გამოვიყენოთ ეს პროექტი და ეს არის ნაჩვენები ამდენი დეტალით, როგორიცაა გრაფიკი, რეალურ დროში ტემპერატურა და მრავალი სხვა. ჩვენ ვიყენებთ: https://thingsio.ai/ პირველ რიგში, ჩვენ უნდა გავაკეთოთ ანგარიში ამ IoT პლატფორმაზე
წვრილმანი ხმის/ინტერნეტით კონტროლირებადი სახლის ავტომატიზაცია და მონიტორინგი ESP8266 და Google Home Mini გამოყენებით: 6 ნაბიჯი
წვრილმანი ხმით/ინტერნეტით კონტროლირებადი სახლის ავტომატიზაცია და მონიტორინგი ESP8266 და Google Home Mini გამოყენებით: ჰეი !! დიდი ხნის შესვენების შემდეგ მე აქ ვარ, რადგან ჩვენ ყველამ უნდა გავაკეთოთ რაღაც მოსაწყენი (სამუშაო) მოსაპოვებლად. ყველა საშინაო ავტომატიზაციის შემდეგ მე დავწერე BLUETOOTH, IR, Local WIFI, Cloud ანუ რთული, * ახლა * მოდის ყველაზე მარტივი, მაგრამ ყველაზე ეფექტური
Raspberry Pi სახლის მონიტორინგი Dropbox– ით: 7 ნაბიჯი
Raspberry Pi სახლის მონიტორინგი Dropbox– ით: ეს გაკვეთილი გაჩვენებთ თუ როგორ უნდა შექმნათ სახლის მონიტორინგის მარტივი და გაფართოება Raspberry Pi– ს, ვებკამერის, რამდენიმე ელექტრო კომპონენტისა და თქვენი Dropbox ანგარიშის გამოყენებით. დასრულებული სისტემა საშუალებას მოგცემთ დისტანციურად მოითხოვოთ და ნახოთ სურათები