Სარჩევი:

ჟოლოს Pi გულშემატკივრის ჭკვიანი კონტროლი Python & Thingspeak– ის გამოყენებით: 7 ნაბიჯი
ჟოლოს Pi გულშემატკივრის ჭკვიანი კონტროლი Python & Thingspeak– ის გამოყენებით: 7 ნაბიჯი

ვიდეო: ჟოლოს Pi გულშემატკივრის ჭკვიანი კონტროლი Python & Thingspeak– ის გამოყენებით: 7 ნაბიჯი

ვიდეო: ჟოლოს Pi გულშემატკივრის ჭკვიანი კონტროლი Python & Thingspeak– ის გამოყენებით: 7 ნაბიჯი
ვიდეო: Кубический кооператив с анализом матрицы ► 1 Прохождение Left 4 dead 2 2024, ივლისი
Anonim
ჟოლოს Pi გულშემატკივრის ჭკვიანი კონტროლი Python & Thingspeak– ის გამოყენებით
ჟოლოს Pi გულშემატკივრის ჭკვიანი კონტროლი Python & Thingspeak– ის გამოყენებით

Მოკლე აღწერა

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

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

რასაც თქვენ ისწავლით

როგორ განვახორციელოთ პითონის სკრიპტი, რომ გავაკონტროლოთ გულშემატკივარი ჟოლოს პროცესორის ამჟამინდელ ტემპერატურაზე, On-Off კონტროლის გამოყენებით ტემპერატურის ჰისტერეზით. როგორ გადაიტანოთ მონაცემები თქვენი RaspberryPi– დან Things Speak Cloud– ში.

მარაგები

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

  • Raspberry Pi 4 კომპიუტერული მოდელი B 4GB
  • NPN ტრანზისტორი S8050330ohms რეზისტორი
  • ჯავშანი ალუმინის მეტალის ქეისი ორმაგი გულშემატკივრით ჟოლოს პიისთვის
  • ჯუმბერის კაბელები
  • პურის დაფა

ნაბიჯი 1: წრის შექმნა

წრის შექმნა
წრის შექმნა
წრის შექმნა
წრის შექმნა

წრე საკმაოდ მარტივია. გულშემატკივართა დენი გათიშულია NPN ტრანზისტორის გამოყენებით. ამ კონფიგურაციაში, ტრანზისტორი მოქმედებს როგორც დაბალი მხარის გადამრთველი. რეზისტორი საჭიროა მხოლოდ GPIO- ს საშუალებით დენის შეზღუდვისთვის. Raspberry Pi– ს GPIO– ს აქვს მაქსიმალური მიმდინარე გამომავალი 16 mA. მე გამოვიყენე 330 ოჰმი, რომელიც გვაძლევს ბაზის დენს დაახლოებით (5-0.7)/330 = 13mA. მე შევარჩიე NPN ტრანზისტორი S8050, ამიტომ ორივე გულშემატკივრიდან 400mA დატვირთვის შეცვლა არ არის პრობლემა.

ნაბიჯი 2: ჩაწერეთ CPU ტემპერატურა ThingSpeak– ით

ჩაწერეთ პროცესორის ტემპერატურა ThingSpeak– ით
ჩაწერეთ პროცესორის ტემპერატურა ThingSpeak– ით

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

ThingSpeak– ს შეუძლია ინტეგრირება მოახდინოს პოპულარულ მოწყობილობებსა და სერვისებში, როგორიცაა:

  • არდუინო
  • ჟოლო პიი
  • oBridge / RealTime.io
  • ელექტრო აკუმულატორი
  • მობილური და ვებ პროგრამები
  • Სოციალური ქსელები
  • მონაცემთა ანალიზი MATLAB– ში

სანამ დავიწყებთ, გჭირდებათ ანგარიში ThingSpeak– ში.

  1. გადადით შემდეგ ბმულზე და დარეგისტრირდით ThingSpeak– ზე.
  2. ანგარიშის გააქტიურების შემდეგ შედით სისტემაში.
  3. გადადით არხებზე -> ჩემი არხები
  4. დააჭირეთ ღილაკს ახალი არხი.
  5. შეიყვანეთ იმ მონაცემების სახელი, აღწერა და ველები, რომელთა ატვირთვაც გსურთ
  6. დააჭირეთ ღილაკს არხის შენახვა თქვენი ყველა პარამეტრის შესანახად.

ჩვენ გვჭირდება API გასაღები, რომელსაც მოგვიანებით დავამატებთ პითონის კოდს, რათა ჩვენი პროცესორის ტემპერატურა ავტვირთოთ Thingspeak ღრუბელში.

დააწკაპუნეთ API გასაღებების ჩანართზე, რათა მიიღოთ ჩაწერის API გასაღები

მას შემდეგ რაც თქვენ გაქვთ ჩაწერის API გასაღები, ჩვენ თითქმის მზად ვართ ატვირთოთ ჩვენი მონაცემები.

ნაბიჯი 3: მიიღეთ პროცესორის ტემპერატურა ჟოლოს პიდან პითონის გამოყენებით

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

vcgencmd ღონისძიება_თემპი

Subprocess.check_output () ბიბლიოთეკა გამოიყენებოდა ბრძანების შესასრულებლად და შემდეგ რეგულარული გამოხატვის გამოყენებით დაბრუნებული სტრიქონიდან ფაქტობრივი მნიშვნელობის ამოსაღებად.

ქვეპროცესების იმპორტი check_output

საწყისი იმპორტიდან findalldef get_temp (): temp = check_output (["vcgencmd", "ღონისძიება_ ტემპი"]). დეკოდირება () temp = float (findall ('\ d+\. / d+', temp) [0]) დაბრუნება (temp) ამობეჭდვა (get_temp ())

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

urllib იმპორტის მოთხოვნიდან

ხელახალი იმპორტისგან findall დროიდან იმპორტი ძილის ქვეპროცესებიდან იმპორტი check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "masë_temp"]). დეკოდირება () temp = float (findall (' / d+\. / d+', temp) [0]) დაბრუნება (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) გარდა KeyboardIntruptrupt: print ("გასვლა დაჭერით Ctrl+C")

ნაბიჯი 4: ვენტილატორის კონტროლი ტემპერატურის მიხედვით

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

იმპორტი RPi. GPIO როგორც GPIO

იმპორტი sys საწყისი ხელახალი იმპორტი findall დროიდან ძილის ძიება ქვეპროცესებიდან იმპორტი check_output def get_temp (): temp = check_output (["vcgencmd", "ღონისძიება_ ტემპი"]). დეკოდირება () temp = float (findall ('\ d+\. / d+ ', temp) [0]) დაბრუნება (temp) სცადეთ: GPIO.setwarnings (False) tempOn = 50 ბარიერი = 10 controlPin = 14 pinState = ყალბი GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, საწყისი = 0) ხოლო მართალია: temp = get_temp () თუ temp> tempOn და არა pinState ან temp <tempOn - ბარიერი და pinState: pinState = არა pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) KeyboardIntruptrupt: print ("Exit pressed Ctrl+C") გარდა: print ("Other გამონაკლისი") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- Exception Exception Data:") საბოლოოდ: print ("CleanUp") GPIO.cleanup () print ("პროგრამის დასასრული")

ნაბიჯი 5: საბოლოო პითონის კოდი

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

  1. შედით თქვენს ჟოლოს PI დაფაზე
  2. გაუშვით შემდეგი ბრძანება ტერმინალზე

python3 cpu.py

ნაბიჯი 6: მონაცემების მონიტორინგი Thingspeak Cloud– ის საშუალებით

მონაცემთა მონიტორინგი Thingspeak Cloud– ის საშუალებით
მონაცემთა მონიტორინგი Thingspeak Cloud– ის საშუალებით

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

ნაბიჯი 7: გაუშვით პითონის სკრიპტი გაშვებისას

ამისათვის, /etc/rc.local ფაილის ბოლოს:

sudo nano /etc/rc.local

თქვენ უნდა განათავსოთ სკრიპტის დაწყების ბრძანება ხაზის გასასვლელის წინ 0:

sudo python /home/pi/cpu.py &

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

გირჩევთ: