Სარჩევი:

ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი: 6 ნაბიჯი (სურათებით)
ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი: 6 ნაბიჯი (სურათებით)

ვიდეო: ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი: 6 ნაბიჯი (სურათებით)

ვიდეო: ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი: 6 ნაბიჯი (სურათებით)
ვიდეო: რესტავრატორები ვარძიის მხატვრობას ჭვარტლისგან ასუფთავებენ 2024, ივლისი
Anonim
ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი
ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი
ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი გამოყენებით
ტემპერატურისა და ტენიანობის მონიტორინგი ჟოლოს პი გამოყენებით

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

მე ვიყენებ Raspberry Pi 1 დაფს და DHT22 სენსორს. იგივე შეგიძლიათ გააკეთოთ ნებისმიერ კომპიუტერზე, რომელსაც აქვს ინტერნეტი, GPIO და პითონი. იაფი DHT11 სენსორიც კარგად მუშაობს.

ნაბიჯი 1: აპარატურის მომზადება

აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება
აპარატურის მომზადება

დავიწყოთ თავიდანვე, რადგან მე არ გამოვიყენე ჩემი Raspberry Pi საკმაოდ დიდი ხნის განმავლობაში.

ჩვენ დაგვჭირდება:

  • Raspberry Pi დაფა (ან სხვა IoT ორიენტირებული პლატფორმა).
  • SD ან microSD ბარათი (დამოკიდებულია პლატფორმაზე).
  • 5V/1A მიკრო USB- ის საშუალებით.
  • LAN კაბელი, რომელიც უზრუნველყოფს ინტერნეტ კავშირს.
  • HDMI დისპლეი, RCA დისპლეი ან UART პორტი (SSH- ის გასააქტიურებლად).

პირველი ნაბიჯი არის Raspbian– ის ჩამოტვირთვა. მე ავირჩიე Lite ვერსია, რადგან ვაპირებ გამოვიყენო SSH დისპლეის ნაცვლად. რამ შეიცვალა ბოლო დროს რაც გავაკეთე: ახლა არის დიდი დამწვარი პროგრამული უზრუნველყოფა სახელწოდებით Etcher, რომელიც მშვენივრად მუშაობს და აქვს განსაცვიფრებელი დიზაინი რა

სურათის დაწვის დასრულების შემდეგ, ჩავწერე SD ბარათი ჩემს Pi- ში, ჩავრთე LAN და დენის კაბელები და გარკვეული პერიოდის შემდეგ, ჩემმა როუტერმა დაარეგისტრირა ახალი მოწყობილობა.

ნაბიჯი 2: SSH- ის ჩართვა

SSH- ის ჩართვა
SSH- ის ჩართვა
SSH- ის ჩართვა
SSH- ის ჩართვა
SSH- ის ჩართვა
SSH- ის ჩართვა

SSH ნაგულისხმევად გამორთულია. მე შემიძლია გამოვიყენო UART-USB კონვერტორი ან უბრალოდ შევაერთო ეკრანი გარსზე წვდომისათვის და SSH ჩართვისთვის.

გადატვირთვის შემდეგ, მე საბოლოოდ შევედი. პირველ რიგში, პირველ რიგში, განვაახლოთ:

sudo apt განახლება && sudo apt განახლება -y

ახლა მოდით დავუკავშიროთ ეს ახალი მოწყობილობა ღრუბელს.

ნაბიჯი 3: დააინსტალირეთ Cloud4RPi

Cloud4RPi ინსტალაცია
Cloud4RPi ინსტალაცია

მე გადავწყვიტე გამოვცადო ღრუბლოვანი პლატფორმა სახელწოდებით Cloud4RPi, რომელიც განკუთვნილია IoT– სთვის.

დოკუმენტების თანახმად, ჩვენ გვჭირდება შემდეგი პაკეტები მის გასაშვებად:

sudo apt დააინსტალირეთ git python python -pip -y

კლიენტის ბიბლიოთეკა შეიძლება დამონტაჟდეს ერთ ბრძანებაში:

sudo pip დააინსტალირეთ cloud4rpi

ახლა ჩვენ გვჭირდება კოდის ნიმუში, რომ უზრუნველვყოთ მისი მუშაობა.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git მინიმალური && rmdir -re

მე გადავწყვიტე გაშვება minimal.py, მაგრამ მე არ მომწონს ყალბი მონაცემები. საბედნიეროდ, მე შევამჩნიე მარტივი გზა ამ მაგალითში დიაგნოსტიკური მონაცემების რეალურობის ასამაღლებლად. კიდევ ერთი იმპორტის დამატება იმპორტის განყოფილებაში:

rpi იმპორტიდან *

შემდეგ წაშალეთ ეს ფუნქციები, რომლებიც უზრუნველყოფენ ყალბი მონაცემებს (rpi.py განსაზღვრავს მათ ახლა):

def cpu_temp ():

დაბრუნება 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'

ახლა ჩვენ გვჭირდება ნიშანი, რომელიც საშუალებას აძლევს Cloud4RPi დააკავშიროს მოწყობილობები ანგარიშებთან. ერთი რომ მიიღოთ, შექმენით ანგარიში cloud4rpi.io– ზე და დააჭირეთ ამ გვერდზე ახალ მოწყობილობის ღილაკს. შეცვალეთ _YOUR_DEVICE_TOKEN_ სტრიქონი minimal.py ფაილში თქვენი მოწყობილობის ჟეტონის საშუალებით და შეინახეთ ფაილი. ახლა ჩვენ მზად ვართ პირველი გაშვებისთვის.

პითონი მინიმალური. py

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

ახლა მოდით გადავიდეთ რეალურ მონაცემებზე.

ნაბიჯი 4: სენსორის დაკავშირება

სენსორის დაკავშირება
სენსორის დაკავშირება

ჩვენ დაგვჭირდება:

  • ტენიანობის სენსორი DHT22 ან DHT11
  • გამწევი რეზისტორი (5-10 KΩ)
  • მავთულები

DHT22 სენსორი ერთდროულად ზომავს ტემპერატურასა და ტენიანობას. საკომუნიკაციო პროტოკოლი არ არის სტანდარტიზებული, ამიტომ ჩვენ არ გვჭირდება მისი ჩართვა raspi -config - მარტივი GPIO pin საკმარისზე მეტია.

მონაცემების მოსაპოვებლად, მე გამოვიყენებ ადაფრუტის დიდ ბიბლიოთეკას DHT სენსორებისთვის, მაგრამ ის შეიძლება არ იმუშაოს ისე, როგორც არის. ერთხელ აღმოვაჩინე უცნაური მუდმივი შეფერხება კოდში, რომელიც არ მუშაობდა ჩემს აპარატურაზე, და ორი წლის შემდეგ ჩემი გაყვანის მოთხოვნა ჯერ კიდევ არ არის გათვალისწინებული. მე ასევე შევცვალე დაფის გამოვლენის მუდმივები, რადგან ჩემი Raspberry Pi 1 BCM2835 საოცრად გამოვლინდა როგორც Raspberry Pi 3. ვისურვებდი რომ ეს სიმართლე ყოფილიყო… ამრიგად, მე გირჩევთ გამოიყენოთ ჩემი ჩანგალი. თუ რაიმე პრობლემა შეგექმნებათ, გთხოვთ სცადოთ ორიგინალური საცავი, იქნებ ის ვინმესთვის მუშაობს, მაგრამ მე არ ვარ მათ შორის.

git კლონი https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

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

sudo apt install build-essential python-dev -ysudo python setup.py install

სანამ პაკეტები დამონტაჟებულია, დაუკავშირეთ DHT22, როგორც ეს მოცემულია სურათზე.

და გამოსცადე:

cd -python -c "Adafruit_DHT როგორც d; დაბეჭდე d.read_retry (d. DHT22, 4)"

თუ ხედავთ მსგავსს (39.20000076293945, 22.600000381469727), უნდა იცოდეთ, რომ ეს არის ტენიანობა პროცენტებში და ტემპერატურა ცელსიუსში.

ახლა, შევიკრიბოთ ყველაფერი ერთად!

ნაბიჯი 5: სენსორული მონაცემების გაგზავნა ღრუბელში

სენსორული კითხვების გაგზავნა ღრუბელში
სენსორული კითხვების გაგზავნა ღრუბელში

მე გამოვიყენებ minimal.py როგორც ბაზას და მასში დავამატებ DHT22 ურთიერთქმედებას.

cd cloud4rpi-raspberrypi-python

cp minimal.py/cloud_dht22.py cp rpi.py/rpi.py cd vi cloud_dht22.py

ვინაიდან DHT22 აბრუნებს როგორც ტემპერატურას, ასევე ტენიანობას ერთ ზარში, მე ვნახავ მათ გლობალურად და მხოლოდ ერთხელ ვაახლებ თხოვნაში, ვარაუდობენ, რომ მათ შორის შეფერხება 10 წამზე მეტია. განვიხილოთ შემდეგი კოდი, რომელიც იძენს DHT22 მონაცემებს:

იმპორტი Adafruit_DHT

temp, hum = არცერთი, არცერთი last_update = time.time () - 20 def update_data (): global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () დაბრუნების რაუნდი (temp, 2) თუ ტემპერატურა არ არის სხვა არცერთი def get_h (): update_data () დაბრუნების რაუნდი (hum, 2) თუ hum არ არის სხვა არავინ

ჩადეთ ეს კოდი არსებული იმპორტის შემდეგ და შეცვალეთ ცვლადების განყოფილება, რათა ის გამოიყენოს ახალი ფუნქციები:

ცვლადები = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' რიცხვითი ',' სავალდებულო ': cpu_temp}}

დააჭირეთ წითელ ღილაკს მონაცემთა გადაცემის დასაწყებად:

პითონის cloud_dht22.py

ამის შემდეგ შეგიძლიათ შეამოწმოთ მოწყობილობის გვერდი.

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

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

სამსახურის დაწყება:

sudo სერვისის დაწყება cloud4rpi

და შეამოწმე:

pi@raspberrypi: su $ sudo სერვისი cloud4rpi სტატუსი -l

● cloud4rpi.service-Cloud4RPi daemon დატვირთული: დატვირთული (/lib/systemd/system/cloud4rpi.service; ჩართულია) აქტიური: აქტიური (გაშვებული) ოთხშაბათიდან 2017-05-17 20:22:48 UTC; 1 წუთის წინ მთავარი PID: 560 (პითონი) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py მაისი 17 20:22:51 ჟოლოსფერი პითონი [560]: გამოქვეყნება iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 მაისი 20:22:53 raspberrypi python [560]: iot-hub/შეტყობინებების გამოქვეყნება: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 მაისი 20:22:53 raspberrypi python [560]: iot-hub/შეტყობინებების გამოქვეყნება: {'type': 'system', 'ts': '2017-05-17T20….4'}}

თუ ყველაფერი მუშაობს ისე, როგორც მოსალოდნელი იყო, ჩვენ შეგვიძლია გავაგრძელოთ და გამოვიყენოთ Cloud4RPi პლატფორმის შესაძლებლობები მონაცემებით მანიპულირებისთვის.

ნაბიჯი 6: დიაგრამები და სიგნალიზაცია

დიაგრამები და სიგნალიზაცია
დიაგრამები და სიგნალიზაცია
დიაგრამები და სიგნალიზაცია
დიაგრამები და სიგნალიზაცია
დიაგრამები და სიგნალიზაცია
დიაგრამები და სიგნალიზაცია

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

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

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

თქვენ შეგიძლიათ გამოიყენოთ Cloud4RPi უფასოდ ნებისმიერი აპარატურით, რომელსაც შეუძლია Python- ის შესრულება. რაც შეეხება ჩემთვის, ახლა მე ყოველთვის ვიცი როდის ჩავრთო ჰაერის დამატენიანებელი და შემიძლია მასაც კი დავუკავშირო დისტანციური მართვის სარელეო Cloud4RPi- ს საშუალებით. ვემზადები სიცხისთვის! Კეთილი იყოს შენი მობრძანება ზაფხულო!

გირჩევთ: