Სარჩევი:

როგორ ავაშენოთ ჟოლოს პი ტემპერატურის მონიტორი: 9 ნაბიჯი
როგორ ავაშენოთ ჟოლოს პი ტემპერატურის მონიტორი: 9 ნაბიჯი

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

ვიდეო: როგორ ავაშენოთ ჟოლოს პი ტემპერატურის მონიტორი: 9 ნაბიჯი
ვიდეო: ოთხი სტუდენტის მიერ გაშენებული ჟოლოს ბაღი 19 -08- 2017 2024, ივლისი
Anonim
როგორ ავაშენოთ ჟოლოს პი ტემპერატურის მონიტორი
როგორ ავაშენოთ ჟოლოს პი ტემპერატურის მონიტორი

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

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

მარაგები

  • ჟოლო Pi (3, 4, ან Zero WH)
  • ტემპერატურის სენსორი (DHT2, DSB18B20, BME280 ან Sense HAT)
  • 6 "40 პინიანი IDE მამაკაცი მდედრობითი გაფართოების კაბელი (Sense HAT Solution)
  • 10K რეზისტორი, Breadboard, 40-Pin Breakout Board + Ribbon Cable, Wires (For DSB18B20 Solution)

ნაბიჯი 1: ჟოლო პი

Raspberry Pi არის იაფი ერთჯერადი დაფის კომპიუტერი, რომელიც საშუალებას მოგცემთ დაუკავშირდეთ ტემპერატურის სენსორს და გადაანაწილოთ მონაცემები მონაცემთა ვიზუალიზაციის პროგრამულ უზრუნველყოფაზე. Raspberry Pi– მა დაიწყო როგორც სასწავლო ინსტრუმენტი და გადაიზარდა სამრეწველო სამუშაო ადგილის ინსტრუმენტად. გამოყენების სიმარტივემ და Python– ის, ყველაზე სწრაფად მზარდი პროგრამირების ენის კოდირების უნარმა, მათ გადააქცია გადაწყვეტა.

თქვენ გისურვებთ Raspberry Pi- ს, რომელსაც აქვს WiFi ჩაშენებული, რომელიც არის ნებისმიერი მოდელი 3, 4 და ნულოვანი W/WH. მათ შორის შეგიძლიათ აირჩიოთ ფასისა და მახასიათებლების საფუძველზე. Zero W/WH არის ყველაზე იაფი, მაგრამ თუ მეტი ფუნქციონირება გჭირდებათ, შეგიძლიათ აირჩიოთ 3 -დან 4 -მდე. თქვენ შეგიძლიათ შეიძინოთ მხოლოდ ერთი Zero W/WH ერთდროულად Raspberry Pi Foundation- ის შეზღუდვების გამო. რაც არ უნდა აირჩიოთ Pi, დარწმუნდით, რომ იყიდეთ დამტენი, რადგან ამით თქვენ დააინსტალირებთ Pi და SD ბარათს Raspbian– ით, რათა ოპერაციული სისტემის ინსტალაცია რაც შეიძლება მარტივი იყოს.

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

ნაბიჯი 2: სენსორები

არსებობს სამი სენსორი, რომელსაც ჩვენ გირჩევთ გამოიყენოთ, რადგან ისინი იაფია, ადვილია დაკავშირება და იძლევა ზუსტ კითხვას; DSB18B20, DHT22 და Raspberry Pi Sense HAT.

DHT22 - ტემპერატურისა და ტენიანობის ამ სენსორს აქვს ტემპერატურის სიზუსტე +/- 0.5 C და ტენიანობის დიაპაზონი 0 -დან 100 პროცენტამდე. Raspberry Pi– სთან მიერთება მარტივია და არ საჭიროებს რაიმე წინააღმდეგობის გაწევას.

DSB18B20 - ტემპერატურის ამ სენსორს აქვს ციფრული გამომუშავება, რომელიც კარგად მუშაობს Raspberry Pi– სთან. მას აქვს სამი მავთული და კავშირისთვის საჭიროა პურის დაფა და რეზისტორი.

BME280 - ეს სენსორი ზომავს ტემპერატურას, ტენიანობას და ბარომეტრულ წნევას. ის შეიძლება გამოყენებულ იქნას როგორც SPI- ში, ასევე I2C- ში.

Sense HAT - ეს არის დამატება Raspberry Pi– სთვის, რომელსაც აქვს LED- ები, სენსორები და პატარა ჯოისტიკი. ის პირდაპირ GPIO- ს უკავშირდება Raspberry Pi- ზე, მაგრამ ლენტიანი კაბელის გამოყენებით გაძლევთ ტემპერატურის უფრო ზუსტ მაჩვენებლებს.

ნაბიჯი 3: ჟოლოს დაყენება

თუ ეს პირველად არის თქვენი Raspberry Pi– ის დაყენების მიზნით, თქვენ უნდა დააინსტალიროთ Raspbian ოპერაციული სისტემა და დაუკავშიროთ თქვენი Pi WiFi– ს. ამას დასჭირდება მონიტორი და კლავიატურა Pi– ს დასაკავშირებლად. მას შემდეგ რაც დაიწყებთ მუშაობას და დაუკავშირდებით WiFI– ს, თქვენი Pi მზად არის წასასვლელად.

ნაბიჯი 4: საწყისი სახელმწიფო ანგარიში

საწყისი სახელმწიფო ანგარიში
საწყისი სახელმწიფო ანგარიში
საწყისი სახელმწიფო ანგარიში
საწყისი სახელმწიფო ანგარიში

თქვენ დაგჭირდებათ სადმე თქვენი მონაცემების გაგზავნა ისტორიული ჟურნალის შესანახად და რეალურ დროში მონაცემთა ნაკადის სანახავად, ასე რომ ჩვენ გამოვიყენებთ საწყის მდგომარეობას. გადადით https://iot.app.initialstate.com და შექმენით ახალი ანგარიში ან შედით თქვენს არსებულ ანგარიშზე.

შემდეგი, ჩვენ უნდა დავაინსტალიროთ პირველადი მდგომარეობის პითონის მოდული თქვენს Pi- ზე. ბრძანების სტრიქონში (არ დაგავიწყდეთ SSH თქვენს Pi– ში ჩაწერა), შეასრულეთ შემდეგი ბრძანება:

$ cd/მთავარი/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

მას შემდეგ რაც ბრძანების სტრიქონში შეიყვანთ curl ბრძანებას თქვენ დაინახავთ ეკრანზე შემდეგ გამომავალ რაღაცას:

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash პაროლი: იწყება ISStreamer Python მარტივი ინსტალაცია! ამას შეიძლება რამდენიმე წუთი დასჭირდეს ინსტალაციისთვის, ყავის დასალევად:) მაგრამ არ დაგავიწყდეს დაბრუნება, მე მოგვიანებით მექნება შეკითხვები! ნაპოვნია easy_install: setuptools 1.1.6 ნაპოვნია pip: pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) პიპ ძირითადი ვერსია: 1 პიპ მცირე ვერსია: ნაპოვნია 5 ISStreamer, განახლებულია … მოთხოვნა უკვე განახლებულია: ISStreamer in /Library/Python/2.7/site-packages დასუფთავება… გსურთ ავტომატურად მიიღოთ სკრიპტის მაგალითი? [y/N] სად გსურთ შეინახოთ მაგალითი? [სტანდარტულად..initialstate.com მომხმარებლის სახელი: შეიყვანეთ iot.app.initialstate.com პაროლი:

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

მოდით შევხედოთ სკრიპტის მაგალითს, რომელიც შეიქმნა.

$ nano is_example.py

მე -15 ხაზზე დაინახავთ ხაზს, რომელიც იწყება streamer = Streamer (bucket_…. ეს ხაზები ქმნის ახალ მონაცემთა კოლოფს სახელწოდებით "Python Stream მაგალითი" და ასოცირდება თქვენს ანგარიშთან. ეს ასოციაცია ხდება access_key = "…" პარამეტრი იმავე ხაზზე. ასოებისა და რიცხვების ეს გრძელი სერია არის თქვენი საწყისი მდგომარეობის ანგარიშის წვდომის გასაღები. თუ თქვენს ბრაუზერში შედიხართ თქვენს საწყის სახელმწიფო ანგარიშზე, დააწკაპუნეთ თქვენს მომხმარებლის სახელზე ზედა მარჯვნივ და შემდეგ გადადით "ჩემი პარამეტრები" თქვენ ნახავთ იგივე წვდომის გასაღებს აქ "ნაკადის წვდომის გასაღებების" ქვეშ.

ყოველ ჯერზე, როდესაც შექმნით მონაცემთა ნაკადს, წვდომის გასაღები მიაწვდის მონაცემების ნაკადს თქვენს ანგარიშზე (ასე რომ არავის გაუზიაროთ თქვენი გასაღები).

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

$ python is_example.py

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

თუ თქვენ იყენებთ Python 3 -ს, შეგიძლიათ დააინსტალიროთ Initial State Streamer მოდული, რომელიც შეგიძლიათ დააინსტალიროთ შემდეგი ბრძანების გამოყენებით:

pip3 დააინსტალირეთ ISStreamer

ახლა ჩვენ მზად ვართ დავაყენოთ ტემპერატურის სენსორი Pi– ით, რათა ტემპერატურა გადავიდეს დაფაზე.

ნაბიჯი 5: DHT22 გადაწყვეტა

DHT22 გადაწყვეტა
DHT22 გადაწყვეტა

DHT22– ს ექნება სამი პინი - 5V, Gnd და მონაცემები. DHT22- ზე ჩართვისთვის უნდა იყოს pin ნიშანი (მაგ. '+' ან '5V'). შეაერთეთ ეს Pi- ს პინ 2 -თან (ზედა მარჯვენა პინი, 5V). Gnd pin იქნება წარწერით "-" ან "Gnd" ან რაიმე ექვივალენტი. შეაერთეთ იგი pin 6 Gnd– თან (ორი ქინძისთავი 5V– ის ქვემოთ) Pi– ზე. DHT22– ზე დარჩენილი პინი არის მონაცემთა პინი და იქნება წარწერით „out“ან „s“ან „data“. შეაერთეთ ეს ერთ – ერთ GPIO პინზე Pi– ზე, როგორიცაა GPIO4 (პინ 7). როდესაც ეს სადენიანი იქნება, ჩართეთ თქვენი Pi.

დააინსტალირეთ Adafruit DHT Python მოდული ბრძანების სტრიქონში, რათა DHT22 სენსორის მონაცემების კითხვა ძალიან ადვილი იყოს:

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

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

იმპორტი Adafruit_DHT

ISStreamer. Streamer იმპორტი Streamer იმპორტის დრო# --------- მომხმარებლის პარამეტრები --------- SENSOR_LOCATION_NAME = "ოფისი" BUCKET_NAME = ": ნაწილობრივ_მზიანი: ოთახის ტემპერატურა" BUCKET_KEY = "rt0129" ACCESS_KEY = "მოათავსეთ თქვენი საწყისი სახელმწიფო წვდომა აქ" MINUTES_BETWEEN_READS = 10METRIC_UNITS = მცდარი # -------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) ხოლო True: ტენიანობა, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) თუ METRIC_UNITS: streamer.log (SENSOR_ Temperature): temp_f = ფორმატი (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "ტემპერატურა (F)", temp_f) ტენიანობა = ფორმატი (ტენიანობა, ".2f") streamer.log (SENSOR_LOCATION_NAME + "ტენიანობა (%)", ტენიანობა) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • ხაზი 6 - ეს მნიშვნელობა უნდა იყოს უნიკალური თითოეული კვანძის/ტემპერატურის სენსორისთვის. ეს შეიძლება იყოს თქვენი სენსორული კვანძის ოთახის სახელი, ფიზიკური მდებარეობა, უნიკალური იდენტიფიკატორი, ან სხვა. უბრალოდ დარწმუნდით, რომ თითოეული კვანძისათვის ის უნიკალურია იმის უზრუნველსაყოფად, რომ ამ კვანძიდან მიღებული მონაცემები გადადის თქვენს მონაცემთა დაფაზე.
  • ხაზი 7 - ეს არის მონაცემთა კოლოფის სახელი. ეს შეიძლება შეიცვალოს ნებისმიერ დროს Initial State UI.
  • ხაზი 8 - ეს არის თქვენი ვედრო გასაღები. ის უნდა იყოს ერთი და იგივე გასაღები თითოეული კვანძისათვის, რომელიც გსურთ ნაჩვენები იყოს იმავე დაფაზე.
  • ხაზი 9 - ეს არის თქვენი საწყისი სახელმწიფო ანგარიშის წვდომის გასაღები. დააკოპირეთ და ჩასვით ეს გასაღები თქვენი საწყისი მდგომარეობის ანგარიშიდან.
  • ხაზი 10 - ეს არის დრო სენსორის წაკითხვას შორის. შეცვალეთ შესაბამისად.
  • ხაზი 11 - შეგიძლიათ მიუთითოთ მეტრული ან იმპერიული ერთეულები მე -11 ხაზზე.

მას შემდეგ, რაც თქვენს Python სკრიპტში დააყენეთ 6–11 სტრიქონები თქვენს Pi– ზე, შეინახეთ და დატოვეთ ტექსტური რედაქტორი. გაუშვით სკრიპტი შემდეგი ბრძანებით:

$ python tempsensor.py

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

ნაბიჯი 6: გამოსავალი DSB18B20

DSB18B20 გადაწყვეტა
DSB18B20 გადაწყვეტა
DSB18B20 გადაწყვეტა
DSB18B20 გადაწყვეტა

ლენტი კაბელი აკავშირებს GPIO ქინძისთავებს Pi- ზე. DS18B20– ს აქვს სამი მავთული. წითელი მავთული აკავშირებს 3.3 ვ. ლურჯი/შავი მავთული უკავშირდება მიწას. ყვითელი მავთული უკავშირდება გამწევ რეზისტორს/პინ 4-ს, როდესაც ეს სადენიანი იქნება, ჩართეთ თქვენი Pi.

Raspbian– ის უახლესი ვერსია (ბირთვი 3.18) მოითხოვს დამატებას თქვენს /boot/config.txt ფაილზე Pi– სთვის DS18B20– თან დასაკავშირებლად. ამ ფაილის შესაცვლელად გაუშვით შემდეგი:

$ sudo nano /boot/config.txt

თუ შემდეგი ხაზი უკვე არ არის ამ ფაილში (თუ არის, სავარაუდოდ ფაილის ბოლოშია), დაამატეთ იგი და შეინახეთ ფაილი.

dtoverlay = w1-gpio, gpiopin = 4

გადატვირთეთ თქვენი Pi, რომ ცვლილებები ძალაში შევიდეს.

$ sudo გადატვირთვა

ტემპერატურის სენსორის წაკითხვის ინტერფეისის დასაწყებად, ჩვენ გვჭირდება ორი ბრძანების გაშვება. გადადით ბრძანების სტრიქონი თქვენს Pi ან SSH თქვენს Pi. ჩაწერეთ შემდეგი ბრძანებები:

$ sudo modprobe w1-gpio $ sudo modprobe w1-თერმი

თქვენი ტემპერატურის სენსორის გამომავალი ახლა იწერება ფაილში თქვენი Pi. ამ ფაილის მოსაძებნად:

$ cd/sys/bus/w1/მოწყობილობები

ამ დირექტორიაში იქნება ქვე-დირექტორია, რომელიც იწყება „28-“. "28-"-ის შემდეგ მოდის თქვენი სენსორის სერიული ნომერი. cd იმ დირექტორიაში. ამ დირექტორიის შიგნით, ფაილი სახელად w1_slave შეიცავს თქვენი სენსორის გამომავალს. გამოიყენეთ ნანო ფაილის შინაარსის სანახავად. მას შემდეგ რაც შეიყვანთ ფაილს, ის გამოიყურება ასე:

a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125

რიცხვი "t =" შემდეგ არის რიცხვი, რომელიც ჩვენ გვსურს. ეს არის ტემპერატურა 1/1000 გრადუსი ცელსიუსში (ზემოთ მოყვანილ მაგალითში, ტემპერატურა 26,125 C). ჩვენ უბრალოდ გვჭირდება მარტივი პროგრამა, რომელიც კითხულობს ამ ფაილს და ასახავს ამ რიცხვს. ჩვენ ამას მივაღწევთ სულ რაღაც წამში.

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

$ ნანო ტემპერატურა. py

დააკოპირეთ და ჩასვით ქვემოთ მოცემული კოდი ტექსტურ რედაქტორში.

იმპორტი os

იმპორტის გლობუსი იმპორტის დრო ISStreamer. Streamer იმპორტი Streamerstreamer = Streamer (bucket_name = "ტემპერატურის ნაკადი", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gp -თერმი ') base_dir ='/sys/bus/w1/devices/'device_folder = glob.glob (base_dir + '28*') [0] device_file = device_folder + '/w1_slave' def read_temp_raw (): f = open (device_file, 'r') lines = f.readlines () f.close () return lines def read_temp (): lines = read_temp_raw () while lines [0].strip () [-3:]! = 'YES': დრო. ძილი (0.2) სტრიქონი = წაკითხული_ტემპ_რეუ () უდრის_პოს = ხაზებს [1]. იპოვეთ ('t =') თუ უდრის_პოპს! = -1: temp_string = სტრიქონები [1] [უდრის_პოსს +2:] temp_c = ათწილადება (ტემპ_სტრიქონი) / 1000.0 დაბრუნების temp_c ხოლო მართალია: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("temperature (C)", temp_c) streamer.log ("temperature (F)", temp_f) time.sleep (.5)

თქვენ უნდა განათავსოთ თქვენი საწყისი მდგომარეობის წვდომის გასაღები მე -6 ხაზზე PUT_YOUR_ACCESS_KEY_HERE- ის ნაცვლად (დააკოპირეთ ნაკადის გასაღები თქვენს ბუფერში "ჩემი ანგარიშიდან" და ჩასვით კოდში ნანო თქვენს ტერმინალში).

მე -6 ხაზი შექმნის თაიგულს სახელწოდებით "ტემპერატურის ნაკადი" თქვენს საწყის მდგომარეობის ანგარიშში (იმ პირობით, რომ თქვენ სწორად მიუთითეთ თქვენი წვდომის გასაღები იმავე ხაზზე). ამ სკრიპტის 8 -დან 30 -მდე სტრიქონები უბრალოდ ერწყმის DS18B20 სენსორს, რომ წაიკითხოს მისი ტემპერატურა w1_slave ფაილიდან, რომელიც ადრე განვიხილეთ. Read_temp_raw () ფუნქცია მე -15 ხაზზე კითხულობს ნედლი w1_slave ფაილს. Read_temp () ფუნქცია 21 -ე ხაზზე ადგენს ტემპერატურას ამ ფაილიდან. ხაზი 34 ამ ფუნქციებს უწოდებს მიმდინარე ტემპერატურის მისაღებად. ხაზი 35 გარდაქმნის ტემპერატურას ცელსიუსიდან ფარენჰეიტში. 35 და 36 სტრიქონები გადასცემს ტემპერატურას თქვენი საწყისი მდგომარეობის ანგარიშზე. 37 -ე სტრიქონი აჩერებს სკრიპტს 0.5 წამის განმავლობაში, ადგენს რამდენად ხშირად იკითხება და გადაიცემა ტემპერატურის სენსორი.

ჩვენ მზად ვართ სტრიმინგის დასაწყებად. გაუშვით შემდეგი ბრძანება:

$ sudo python temperature.py

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

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

ნაბიჯი 7: BME280 გადაწყვეტა

ამ გადაწყვეტილების შესაქმნელად დაგჭირდებათ შემდეგი:

-BME280 წნევის, ტემპერატურის და ტენიანობის სენსორი

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

შეაერთეთ სენსორზე VIN პინი 3.3V პინ 1 -ზე Pi- ზე. შეაერთეთ GND pin სენსორზე, მიწიერი pin 6 Pi- ზე. შეაერთეთ SCK სენსორი სენსორზე SCL პინ 5 -ზე Pi. შეაერთეთ SDI სენსორი სენსორზე SDA pin 3 -ზე Pi- ზე. თქვენ უნდა გამოიყენოთ Python 3 ამ გამოსავლისთვის და დააინსტალიროთ საწყისი მდგომარეობის Streamer მოდული pip3 ინსტალაციის მეთოდის გამოყენებით.

თქვენ ასევე უნდა დააინსტალიროთ Adafruit Python ბიბლიოთეკა.

pip3 დააინსტალირეთ adafruit-blinkapip3 დააინსტალირეთ purio pip3 დააინსტალირეთ spidev pip3 დააინსტალირეთ adafruit-GPIO pip3 დააინსტალირეთ adafruit-circuitpython-bme280

სენსორის გამოსაყენებლად ჩვენ უნდა ჩართოთ I2C Pi- ზე.

sudo raspi-config

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

ჩვენ შეგვიძლია გამოვცადოთ ეს შემდეგი მოქმედებებით:

sudo i2cdetect -y 1

ეს დაადასტურებს, რომ თქვენი Pi ხედავს სენსორს. ისე, როგორც ის არის დაკავშირებული, მან უნდა აჩვენოს სენსორი მისამართზე 77. თუ არ აღმოაჩენთ სენსორს, გადატვირთეთ თქვენი Pi, განაახლეთ I2C ინტერფეისის ვარიანტი თქვენს Pi– ზე და სცადეთ ხელახლა. მას შემდეგ რაც გამოჩნდება თქვენი სენსორი, დროა გაუშვით ჩვენი ძირითადი კოდი, რომელიც მონაცემებს უგზავნის საწყის მდგომარეობას. შექმნა ფაილი სახელწოდებით bme280sensor.py ნანო ბრძანებით. დააკოპირეთ და ჩასვით კოდი ტექსტიდან რედაქტორში. თქვენ უნდა შეიტანოთ ცვლილებები 12–19 სტრიქონებში.

იმპორტის დრო

იმპორტის დაფა იმპორტი busio იმპორტი adafruit_bme280 ISStreamer. Streamer იმპორტი Streamer # ბიბლიოთეკის ობიექტის შექმნა ჩვენი ავტობუსის I2C porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- -მომხმარებლის პარამეტრები --------- SENSOR_LOCATION_NAME = "ოფისი" BUCKET_NAME = ": ნაწილობრივ მზიანი: ოთახის ტემპერატურა" BUCKET_KEY = "temp1" ACCESS_KEY = "YYUR ACCESS KEY HERE" # შეცვალეთ ეს მდებარეობის წნევის შესატყვისად (hPa) ზღვის დონეზე bme280.sea_level_pressure = 1013.25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = მცდარი # --------------------------------- # ან შევქმნათ ბიბლიოთეკის ობიექტი ჩვენი Bus SPI პორტის #spi = busio. SPI (დაფა. SCK, დაფა. MOSI, დაფა. MISO) #bme_cs = digitalio. DigitalInOut (დაფა. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) ხოლო მართალია: ტენიანობა = ფორმატი (bme280.humidity, ".1f") წნევა = ფორმატი (bme280.pressure, ".1f") temp_c = bme280.temperatu re თუ METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "ტემპერატურა (C)", temp_c) სხვა: temp_f = ფორმატი (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "ტემპერატურა (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "ტენიანობა (%)", ტენიანობა) streamer.log (SENSOR_LOCATION_NAME + "წნევა (hPA)", წნევა) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • ხაზი 12- ეს მნიშვნელობა უნდა იყოს უნიკალური თითოეული კვანძის/ტემპერატურის სენსორისთვის. ეს შეიძლება იყოს თქვენი სენსორული კვანძის ოთახის სახელი, ფიზიკური მდებარეობა, უნიკალური იდენტიფიკატორი, ან სხვა. უბრალოდ დარწმუნდით, რომ თითოეული კვანძისათვის ის უნიკალურია იმის უზრუნველსაყოფად, რომ ამ კვანძიდან მიღებული მონაცემები გადადის თქვენს მონაცემთა დაფაზე.
  • სტრიქონი 13- ეს არის მონაცემთა კოლოფის სახელი. ეს შეიძლება შეიცვალოს ნებისმიერ დროს Initial State UI.
  • ხაზი 14- ეს არის თქვენი ველის გასაღები. ის უნდა იყოს ერთი და იგივე გასაღები თითოეული კვანძისათვის, რომელიც გსურთ ნაჩვენები იყოს იმავე დაფაზე.
  • ხაზი 15- ეს არის თქვენი საწყისი სახელმწიფო ანგარიშის წვდომის გასაღები. დააკოპირეთ და ჩასვით ეს გასაღები თქვენი საწყისი მდგომარეობის ანგარიშიდან.
  • ხაზი 17- ეს არის თქვენი მდებარეობის წნევა (hPa) ზღვის დონეზე. თქვენ შეგიძლიათ იპოვოთ ეს ინფორმაცია ამინდის უმეტეს ვებსაიტებზე.
  • ხაზი 18 - ეს არის დრო სენსორის წაკითხვას შორის. შეცვალეთ შესაბამისად. ხაზი 19- აქ შეგიძლიათ მიუთითოთ მეტრული ან იმპერიული ერთეულები.

მას შემდეგ რაც თქვენს Python სკრიპტში ჩაწერეთ ხაზები 12–19 თქვენს Pi Zero WH– ზე, შეინახეთ და გამოდით ტექსტური რედაქტორიდან. გაუშვით სკრიპტი შემდეგი ბრძანებით:

$ python3 bme280sensor.py

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

ნაბიჯი 8: შეიგრძენი ქუდი

გრძნობა ქუდი
გრძნობა ქუდი
გრძნობა ქუდი
გრძნობა ქუდი

Sense HAT– ის გამოყენების პირველი ნაბიჯი არის მისი ფიზიკურად დაყენება თქვენს Pi– ზე. Pi გამორთული, მიამაგრეთ ქუდი, როგორც ნაჩვენებია სურათზე.

თუ გადაწყვეტთ გამოიყენოთ ხსნარი, როგორც ნაჩვენებია ზემოთ, შეიძლება შეამჩნიოთ, რომ თქვენი Sense HAT– ის ტემპერატურის მაჩვენებლები ოდნავ მაღალი იქნება - ეს იმიტომ ხდება. დამნაშავე არის Pi- ს პროცესორიდან წარმოქმნილი სითბო Sense HAT- ის გარშემო ჰაერის გათბობისას, როდესაც ის Pi- ის თავზე ზის. ტემპერატურის სენსორი რომ გამოგვადგეს, ჩვენ უნდა მოვიშოროთ ქუდი Pi– დან ან შევეცადოთ დავაკალიბროთ ტემპერატურის სენსორის კითხვა. სენსორის Pi– სგან დაშორების კარგი გამოსავალი არის კაბელი, რომელიც Sense HAT– ს საშუალებას აძლევს, დაშორდეს Pi– ს. 6 ინჩიანი, 40 პინიანი IDE მამრობითი მდედრობითი სქესის საკაბელო კაბელი შეასრულა.

მას შემდეგ რაც გადაწყვეტთ ორ ვარიანტს, ჩართეთ თქვენი Pi. ჩვენ უნდა დავაინსტალიროთ პითონის ბიბლიოთეკა, რათა გავამარტივოთ სენსორის მნიშვნელობების წაკითხვა Sense HAT– დან. პირველ რიგში, თქვენ უნდა დარწმუნდეთ, რომ Raspbian– ის თქვენს ვერსიაში ყველაფერი განახლებულია:

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

შემდეგი, დააინსტალირეთ Sense HAT პითონის ბიბლიოთეკა:

$ sudo apt-get install sense-hat

გადატვირთეთ თქვენი Pi. ჩვენ მზად ვართ გამოვცადოთ Sense HAT სენსორის მონაცემების წაკითხვით და ამ მონაცემების გაგზავნით საწყის მდგომარეობაში.

შექმენით ფაილი სახელწოდებით sensehat და გახსენით იგი ტექსტურ რედაქტორში, შემდეგ ბრძანების სტრიქონში შეიყვანეთ შემდეგი:

$ nano sensehat.py

დააკოპირეთ და ჩასვით ქვემოთ მოცემული კოდი ტექსტურ რედაქტორში.

საწყისი sense_hat იმპორტი SenseHat

იმპორტის დრო იმპორტი sys ISStreamer. Streamer იმპორტი Streamer # --------- მომხმარებლის პარამეტრები --------- BUCKET_NAME = "ამინდის ოფისი" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " ოფისი "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # -------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () while True: # წაიკითხეთ სენსორები temp_c = sense.get_temperature () ტენიანობა = გრძნობა. მიიღეთ_შენიანება () pressure_mb = sense.get_pressure () # მონაცემთა ფორმატირება temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". ფორმატი (temp_f)) ტენიანობა = float ("{0:.2f}". ფორმატი (ტენიანობა)) press_in = 0.03937008*(press_mb) press_in = float ("{ 0:.2f} ". ფორმატი (ზეწოლა)) # ბეჭდვა და ნაკადის დაბეჭდვა SENSOR_LOCATION_NAME +" ტემპერატურა (F): " + str (temp_f) print SENSOR_LOCATION_NAME +" ტენიანობა (%): " + str (ტენიანობა) ამობეჭდვა SENSOR_LOCATION_NAME +" წნევა (IN): " + str (pressure_in) streamer.log (": sunny: " + SEN SOR_LOCATION_NAME + "ტემპერატურა (F)", temp_f) streamer.log (": sweat_drops:" + SENSOR_LOCATION_NAME + "ტენიანობა (%)", ტენიანობა) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "წნევა (IN)", pressure_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)

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

# --------- მომხმარებლის პარამეტრები ---------

BUCKET_NAME = "ამინდი ოფისში" BUCKET_KEY = "sensehat" ACCESS_KEY = "შენი_აღწევების_გასაღები" SENSOR_LOCATION_NAME = "ოფისი" MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------

კერძოდ, თქვენ უნდა დააყენოთ თქვენი ACCESS_KEY თქვენი საწყისი მდგომარეობის ანგარიშის წვდომის გასაღებად. თქვენ შეგიძლიათ შეცვალოთ BUCKET_NAME და SENSOR_LOCATION_NAME სენსორის რეალურ ადგილას. შეინახეთ და გამოდით ტექსტური რედაქტორიდან.

თქვენი Pi- ის ბრძანების სტრიქონში გაუშვით სკრიპტი:

$ sudo python sensehat.py

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

ნაბიჯი 9: შეცვალეთ თქვენი საწყისი მდგომარეობის საინფორმაციო დაფა

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

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

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

ახლა, როდესაც თქვენ შექმენით ტემპერატურის მონიტორი ტემპერატურის სენსორისა და Raspberry Pi– ს გამოყენებით, შეგიძლიათ დაიწყოთ ფიქრი იმაზე, თუ რა სხვა გარემოსდაცვითი მონაცემების მონიტორინგი შეგიძლიათ შემდეგში.

გირჩევთ: