Სარჩევი:

Raspberry Pi CPU ტემპერატურის მაჩვენებელი: 11 ნაბიჯი (სურათებით)
Raspberry Pi CPU ტემპერატურის მაჩვენებელი: 11 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi CPU ტემპერატურის მაჩვენებელი: 11 ნაბიჯი (სურათებით)

ვიდეო: Raspberry Pi CPU ტემპერატურის მაჩვენებელი: 11 ნაბიჯი (სურათებით)
ვიდეო: LDmicro 20: I2C Liquid Crystal Display Resolved(Microcontroller PLC Ladder Programming with LDmicro) 2024, ივლისი
Anonim
Raspberry Pi CPU ტემპერატურის მაჩვენებელი
Raspberry Pi CPU ტემპერატურის მაჩვენებელი

ადრე მე შემოვიღე მარტივი ჟოლოს პი (შემდგომში როგორც RPI) საოპერაციო სტატუსის ინდიკატორის წრე.

ამჯერად, მე აგიხსნით უფრო სასარგებლო ინდიკატორულ სქემას RPI– სთვის, რომელიც მუშაობს უთავო (მონიტორის გარეშე) წესით.

ზემოთ ჩართული აჩვენებს პროცესორის ტემპერატურას 4 სხვადასხვა დონეზე, როგორიცაა:

- მწვანე LED ჩართულია, როდესაც პროცესორის ტემპერატურა 30 ~ 39 გრადუსამდეა

- ყვითელი LED მიუთითებს ტემპერატურის გაზრდაზე 40 -დან 45 გრადუსამდე

მე –3 წითელი LED აჩვენებს, რომ პროცესორი ოდნავ ცხელდება 46 ~ 49 გრადუსამდე

- სხვა წითელი LED აციმციმდება, როდესაც ტემპერატურა აღემატება 50 გრადუსს

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

ამ მიკროსქემის გამოყენებით, თქვენ სულაც არ ასრულებთ "vcgencmd masë_temp" ბრძანებას ხშირად კონსოლის ტერმინალზე.

ეს წრე უნდა აცნობოს პროცესორის მიმდინარე ტემპერატურას უწყვეტად და მოხერხებულად.

ნაბიჯი 1: სქემების მომზადება

სქემების მომზადება
სქემების მომზადება

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

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

პროცესორის ტემპერატურის მაჩვენებელი (შემდგომში INICATOR) წრე შედგება შემდეგი ძირითადი ნაწილებისგან.

-ორი ოპტო-წყვილი უკავშირდება RPI GPIO ქინძისთავებს ტემპერატურის დონის მონაცემების მისაღებად, როგორიცაა 00-> დაბალი, 01-> საშუალო, 10-> მაღალი, 11-> გაგრილებაა საჭირო.

-74LS139 (ან 74HC139, 2-დან 4-მდე დეკოდირება და დე მულტიპლექსერი) კონტროლის გამოსავალი (Y0, Y1, Y2, Y3) შეყვანის მიხედვით (A, B)

- როდესაც ტემპერატურა 30 ~ 39 გრადუსამდეა, პითონის კოდი გამოდის 00 GPIO ქინძისთავებისთვის. ამიტომ, 74LS139 მიიღებს შეყვანის მონაცემებს 00 (A-> 0, B-> 0)

- 00 -ის შეყვანისას Y0 გამომავალი ხდება დაბალი. (გთხოვთ მიმართოთ სიმართლის ცხრილს 74LS139)

- როდესაც Y0 გამომავალი ხდება დაბალი, ის ააქტიურებს 2N3906 PNP ტრანზისტორს და შედეგად, მწვანე LED ჩართულია

- ანალოგიურად, Y1 (01 -> CPU ტემპერატურის საშუალო) უნდა ჩართოს ყვითელი LED და ასე შემდეგ

- როდესაც Y3 ხდება დაბალი, DB140 ააქტიურებს NE555 LED მოციმციმე წრეს (ეს არის საერთო 555 IC დაფუძნებული LED მოციმციმე), რომელიც იტვირთება BD140 PNP ტრანზისტორი

ამ მიკროსქემის ყველაზე მნიშვნელოვანი კომპონენტია 74LS139, რომელიც გაშიფრავს 2 ციფრის შეყვანას 4 სხვადასხვა ერთ გამომავალში, როგორც ეს მოცემულია ქვემოთ მოცემულ სიმართლის ცხრილში.

შეყვანა | გამომავალი

G (ჩართვა) | ბ | A | Y0 | Y1 | Y2 | Y3 |

H | X | X | H | H | H | H |

ლ | ლ | ლ | ლ | H | H | H |

ლ | ლ | H | H | ლ | H | H |

ლ | H | ლ | H | H | ლ | H |

ლ | H | H | H | H | H | ლ |

როგორც 74LS139 გამომავალი ხდება დაბალი, PNP ტიპის ტრანზისტორს შეუძლია მთლიანი წრე გაადვილოს, რადგან PNP ტრანზისტორი ჩართულია, როდესაც ბაზის ტერმინალი ხდება დაბალი. (მე ვაჩვენებ NPN ვერსიას ამ ამბის ბოლოს)

რადგან 100K პოტენომეტრი შედის NE555 LED მოციმციმე წრეში, წითელი LED ჩართვის/გამორთვის დრო თავისუფლად შეიძლება მორგებული იყოს საჭიროებების შესაბამისად.

ნაბიჯი 2: PCB ნახატის დამზადება

PCB ნახატის დამზადება
PCB ნახატის დამზადება

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

სანამ უნივერსალურ დაფაზე რამეს შეაერთებდით, ზემოთ ნაჩვენები PCB ნახაზის მომზადება დაგეხმარებათ ნებისმიერი შეცდომის შესამცირებლად.

ნახაზი კეთდება power-point– ის გამოყენებით, თითოეული ნაწილის უნივერსალურ დაფაზე მოსაძებნად და მავთულხლართებს შორის ნაწილების გაყვანილობისთვის.

რადგანაც IC და ტრანზისტორი pin-out სურათები ერთდროულად მდებარეობს PCB გაყვანილობის ნიმუშთან ერთად, შედუღება შეიძლება შესრულდეს ამ ნახატის გამოყენებით.

ნაბიჯი 3: შედუღება

შედუღება
შედუღება

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

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

როგორც ხედავთ PCB– ის შედუღების მხარეზე, მე ვიყენებ თუნუქის მავთულს ასევე PCB ნახატზე გამოსახული ნიმუშების მიხედვით.

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

ნაბიჯი 4: ტესტირების მომზადება

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

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

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

INDICATOR– ის შესამოწმებლად, ორი დამატებითი კვების კაბელი უკავშირდება წრიულის 5V კვების ბლოკს.

ნაბიჯი 5: ტესტირება (პროცესორის ტემპერატურა საშუალო დონეზეა)

ტესტირება (პროცესორის ტემპერატურა საშუალო დონეზეა)
ტესტირება (პროცესორის ტემპერატურა საშუალო დონეზეა)

როდესაც 5V შეყვანა არ გამოიყენება, მაშინ 74LS139 შეყვანის დეკოდირება და Y0- ის გამომავალი LOW- ის გააქტიურება (მწვანე LED ჩართულია).

მაგრამ 5V მიმართა A შეყვანისას, გამომავალი Y1 74LS139 გააქტიურებულია (LOW).

ამიტომ, ყვითელი LED ჩართულია, როგორც ეს მოცემულია ზემოთ მოცემულ სურათზე.

ნაბიჯი 6: ტესტირება (პროცესორს სჭირდება გაგრილების დონე)

ტესტირება (CPU სჭირდება გაგრილების დონეს)
ტესტირება (CPU სჭირდება გაგრილების დონეს)

როდესაც 5V- მა გამოიყენა 74LS139- ის ორივე შეყვანა (A და B), მე -4 წითელი LED აციმციმებს.

მოციმციმე მაჩვენებელი შეიძლება შეიცვალოს 100K VR- ის მორგებით, როგორც ეს მოცემულია ზემოთ სურათზე.

როდესაც ტესტირება დასრულებულია, ორი Molex 3 პინიანი ქალი კაბელი შეიძლება ამოღებულ იქნეს.

ნაბიჯი 7: ელექტრომომარაგება ინდიკატორის წრეზე

კვების ბლოკი INDICATOR Circuit
კვების ბლოკი INDICATOR Circuit

INDICATOR მიკროსქემის დასაყენებლად, მე ვიყენებ საერთო ტელეფონის ტელეფონის დამტენს, რომელსაც აქვს 5V და USB ტიპის B გადამყვანი, როგორც ეს მოცემულია ზემოთ მოცემულ სურათზე.

RPI– ს პრობლემის თავიდან ასაცილებლად 3.3V GPIO და 5V იკვებება ინდიკატორი, ჩართეთ სიგნალის ინტერფეისი და კვების წყარო ერთმანეთისგან.

ნაბიჯი 8: RPI გაყვანილობა

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

RPI– თან INDICATOR მიკროსქემის დასაკავშირებლად, ორი GPIO ქინძისთავები უნდა იყოს გამოყოფილი ორ დასაყრდენთან ერთად.

GPIO ქინძისთავების არჩევის კონკრეტული მოთხოვნა არ არსებობს.

თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი GPIO ქინძისთავი ინდიკატორის დასაკავშირებლად.

მაგრამ სადენიანი ქინძისთავები უნდა იყოს მითითებული როგორც პითონის პროგრამაში 74LS139 (მაგ. A, B) შეყვანის სახით.

ნაბიჯი 9: პითონის პროგრამა

პითონის პროგრამა
პითონის პროგრამა

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

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

#-*-კოდირება: utf-8-*-

იმპორტის ქვეპროცესები, სიგნალები, სისტემები

იმპორტის დრო, ხელახლა

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

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

ბეჭდვა ("თქვენ დააჭირეთ Ctrl+C!")

ზ. გამომავალი (A, ყალბი)

ზ. გამოტანა (B, ყალბი)

ვ. დახურვა ()

sys.exit (0)

სიგნალი. სიგნალი (სიგნალი. SIGINT, signal_handler)

##

მართალია:

f = ღია ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd masë_temp', shell = True)

temp_str = temp_str.decode (კოდირება = "UTF-8", შეცდომები = "მკაცრი")

CPU_temp = re.findall ("\ d+\. / D+", temp_str)

# პროცესორის მიმდინარე ტემპერატურის მოპოვება

current_temp = float (CPU_temp [0])

თუ current_temp> 30 და current_temp <40:

# დაბალი ტემპერატურა A = 0, B = 0

ზ. გამომავალი (A, ყალბი)

ზ. გამოტანა (B, ყალბი)

დრო. ძილი (5)

elif current_temp> = 40 და current_temp <45:

# ტემპერატურის საშუალო A = 0, B = 1

ზ. გამომავალი (A, ყალბი)

g. გამომავალი (B, True)

დრო. ძილი (5)

elif current_temp> = 45 და current_temp <50:

# მაღალი ტემპერატურა A = 1, B = 0

ზ. გამომავალი (A, True)

ზ. გამოტანა (B, ყალბი)

დრო. ძილი (5)

elif current_temp> = 50:

# პროცესორის გაგრილება საჭიროა მაღალი A = 1, B = 1

ზ. გამომავალი (A, True)

g. გამომავალი (B, True)

დრო. ძილი (5)

მიმდინარე_დრო = დრო. დრო ()

formated_time = time.strftime ("%H:%M:%S", time.gmtime (current_time))

f.write (str (formated_time)+'\ t'+str (current_temp)+'\ n')

ვ. დახურვა ()

პითონის პროგრამის ძირითადი ფუნქცია ქვემოთ მოცემულია.

- პირველ რიგში დააყენეთ GPIO 12, 16, როგორც გამომავალი პორტი

- განსაზღვრეთ Ctrl+C შეფერხების დამმუშავებელი ჟურნალის ფაილის დახურვისთვის და გამორთეთ GPIO 12, 16

- უსასრულო მარყუჟში შესვლისას გახსენით ჟურნალის ფაილი დანართის რეჟიმში

- წაიკითხეთ პროცესორის ტემპერატურა "/opt/vc/bin/vcgencmd masë_temp" ბრძანების შესრულებით

- როდესაც ტემპერატურა 30 ~ 39 დიაპაზონშია, მაშინ გამოუშვით 00, რომ ჩართოთ მწვანე LED

- როდესაც ტემპერატურა 40 ~ 44 დიაპაზონშია, გამოდით 01, ყვითელი LED- ის ჩასართავად

- როდესაც ტემპერატურა 45 ~ 49 დიაპაზონშია, გამოდით 10, რომ ჩართოთ წითელი LED

- როდესაც ტემპერატურა 50 -ზე მეტია, გამოდით 11, რათა წითელი LED აციმციმდეს

- ჩაწერეთ დროის ბეჭედი და ტემპერატურის მონაცემები ჟურნალის ფაილში

ნაბიჯი 10: ინდიკატორის მოქმედება

ინდიკატორი ოპერაცია
ინდიკატორი ოპერაცია

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

თქვენ არ გჭირდებათ შეყვანის ბრძანების შეყვანა მიმდინარე ტემპერატურის შესამოწმებლად.

ჟურნალის ფაილში მონაცემების შეგროვებისა და Excel- ის გამოყენებით ტექსტის მონაცემების გრაფიკად გადაცემის შემდეგ, შედეგი ნაჩვენებია ზემოთ მოცემულ სურათზე.

მაღალი დატვირთვის გამოყენებისას (ორი Midori ბრაუზერის გაშვება და Youtube ვიდეოს დაკვრა), პროცესორის ტემპერატურა იზრდება 57.9C- მდე.

ნაბიჯი 11: ალტერნატიული დამზადება (NPN ტრანზისტორის გამოყენება) და შემდგომი განვითარება

ალტერნატიული დამზადება (NPN ტრანზისტორის გამოყენება) და შემდგომი განვითარება
ალტერნატიული დამზადება (NPN ტრანზისტორის გამოყენება) და შემდგომი განვითარება

ეს არის წინა INDICATOR პროექტის მაგალითი, რომელიც იყენებს NPN ტრანზისტორებს (2N3904 და BD139).

როგორც ხედავთ, კიდევ ერთი IC (74HC04, Quad ინვერტორები) აუცილებელია NPN ტრანზისტორის მართვისათვის, რადგან მაღალი დონის ძაბვა უნდა იქნას გამოყენებული NPN– ის ბაზაზე ტრანზისტორის ჩასართავად.

მოკლედ რომ ვთქვათ, NPN ტრანზისტორის გამოყენება არასაჭირო სირთულეს მატებს ინდიკატორის წრედ.

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

გირჩევთ: