Sisällysluettelo:
- Vaihe 1: Kaavioiden valmistelu
- Vaihe 2: Piirilevyn piirtäminen
- Vaihe 3: Juotos
- Vaihe 4: Testauksen valmistelu
- Vaihe 5: Testaus (suorittimen lämpötila on keskitaso)
- Vaihe 6: Testaus (CPU tarvitsee jäähdytystasoa)
- Vaihe 7: Virtalähde INDICATOR -piiriin
- Vaihe 8: RPI -johdotus
- Vaihe 9: Python -ohjelma
- Vaihe 10: MERKKIVALON toiminta
- Vaihe 11: Vaihtoehtoinen valmistus (NPN -transistorin käyttäminen) ja edelleen kehittäminen
Video: Raspberry Pi -suorittimen lämpötilan ilmaisin: 11 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Aiemmin olin ottanut käyttöön yksinkertaisen vadelma pi (jäljempänä RPI) -toimintatilan ilmaisinpiirin.
Tällä kertaa selitän hyödyllisemmän indikaattoripiirin RPI: lle, joka toimii ilman päätä (ilman näyttöä).
Yllä oleva piiri näyttää suorittimen lämpötilan neljälle eri tasolle, kuten:
- Vihreä LED palaa, kun suorittimen lämpötila on 30-39 astetta
- Keltainen LED osoittaa, että lämpötila on noussut 40–45 astetta
- Kolmas punainen LED osoittaa, että suoritin kuumenee hieman saavuttaen 46-49 astetta
- Toinen punainen LED vilkkuu, kun lämpötila on yli 50 astetta
Yllä olevat suorittimen lämpötila -alueet ovat henkilökohtainen suunnittelukonseptini (muut lämpötila -alueet voidaan konfiguroida muuttamalla tätä piiriä ohjaavien python -ohjelman testiolosuhteita).
Käyttämällä tätä piiriä et välttämättä suorita komentoa "vcgencmd intézkedés_temp" usein konsolin päätelaitteessa.
Tämä piiri ilmoittaa jatkuvasti ja kätevästi CPU: n nykyisen lämpötilan.
Vaihe 1: Kaavioiden valmistelu
Vaikka voit ohjata neljää LEDiä suoraan käyttämällä vain python -koodeja, ohjelman ohjauslogiikka lataa RPI: n ja sen seurauksena suorittimen lämpötila nousee enemmän, koska sinun pitäisi ajaa hieman monimutkaista python -koodia jatkuvasti.
Siksi minimoin python-koodin monimutkaisuuden mahdollisimman yksinkertaiseksi ja lataan LED-ohjauslogiikan ulkoiselle laitteistopiirille.
Suorittimen lämpötilan ilmaisin (jäljempänä INICATOR) -piiri koostuu seuraavista pääosista.
-Kaksi opto-liitintä on liitetty RPI GPIO-nastoihin, jotta saadaan lämpötilatietoja, kuten 00-> LOW, 01-> Medium, 10-> High, 11-> need need Cooling.
-74LS139 (tai 74HC139, 2-4 dekooderi ja multiplekseri) ohjausulostulot (Y0, Y1, Y2, Y3) tulojen (A, B) mukaan
- Kun lämpötila on 30-39 asteen sisällä, python -koodin lähtö 00 GPIO -nastoille. Siksi 74LS139 saa syöttötietoja 00 (A-> 0, B-> 0)
- Kun 00 on syötetty, Y0 -lähdöstä tulee LOW. (Katso totuustaulukko 74LS139)
- Kun Y0 -lähdöstä tulee LOW, se aktivoi 2N3906 PNP -transistorin ja sen seurauksena vihreä LED -valo syttyy
- Samoin Y1 (01 -> CPU: n lämpötila -aine) sytyttää keltaisen LED -valon ja niin edelleen
- Kun Y3 muuttuu matalaksi, DB140 aktivoi NE555 -LED -vilkkupiirin (tämä on yleinen 555 IC -pohjainen LED -vilkku), joka on BD140 PNP -transistorin kuormitus
Tämän piirin tärkein komponentti on 74LS139, joka purkaa 2 numeron tulon 4 eri yksittäiseen lähtöön alla olevan totuustaulukon mukaisesti.
Syöttö | Lähtö
G (Ota käyttöön) | B | A | Y0 | Y1 | Y2 | Y3 |
H | X | X | H | H | H | H |
L | L | L | L | H | H | H |
L | L | H | H | L | H | H |
L | H | L | H | H | L | H |
L | H | H | H | H | H | L |
Kun 74LS139 -ulostulo muuttuu matalaksi, PNP -tyyppinen transistori voi tehdä koko piiristä yksinkertaisen, koska PNP -transistori kytketään päälle, kun tukiasemasta tulee LOW. (Näytän NPN -version tämän tarinan lopussa)
Koska 100K -potentiometri sisältyy NE555 -LED -vilkkupiiriin, punaisen LED -ON/OFF -aikaa voidaan säätää vapaasti tarpeiden mukaan.
Vaihe 2: Piirilevyn piirtäminen
INDIKAATTORIN toimintamalli selitetään, aloitetaan piirin tekeminen.
Ennen kuin juotat jotain yleislevylle, yllä olevan piirilevypiirustuksen valmistelu on hyödyllistä virheiden minimoimiseksi.
Piirustus on tehty käyttämällä Power-pointia jokaisen osan paikantamiseen yleislevyllä ja tekemällä johdotuskuvioita johtimien kanssa.
Koska IC- ja transistoripistokuvat sijaitsevat rinnakkain PCB-johdotuskuvion kanssa, juotos voidaan suorittaa tämän piirustuksen avulla.
Vaihe 3: Juotos
Vaikka alkuperäinen piirilevypiirustus ei ole tehty yhdellä johdolla PCB: n komponenttien liittämiseen, juotan hieman eri tavalla.
Käyttämällä yksittäistä johdinta (ei tinalankaa) yritän pienentää yleispiirilevyn kokoa, joka sisältää INDICATOR -piirin.
Mutta kuten PCB: n juotospuolelta näet, käytän tinalankaa myös piirilevypiirustuksessa esitettyjen kuvien mukaisesti.
Kun jokainen komponentti on kytketty PCB -piirustuksen alkuperäisen mallin mukaisesti, valmiiden juotettujen piirilevyjen, mukaan lukien INDICATOR -piiri, juottaminen toimii oikein.
Vaihe 4: Testauksen valmistelu
Ennen RPI -liitäntää valmis piiri vaatii testausta.
Koska juotosvirheitä voi esiintyä, tasavirtalähdettä käytetään vaurioiden estämiseen oikosulun tai väärän johdotuksen sattuessa.
INDIKAATTORIN testausta varten virtalähteen 5 V: n virtaliittimeen on kytketty kaksi ylimääräistä virtalähdekaapelia.
Vaihe 5: Testaus (suorittimen lämpötila on keskitaso)
Kun 5V -tuloa ei syötetä, 74LS139 -dekoodaustulo ja aktivoiva lähtö Y0 ovat LOW (vihreä LED palaa).
Mutta 5V sovellettiin tuloon A, lähtö Y1 74LS139 aktivoi (LOW).
Siksi keltainen LED -valo syttyy yllä olevan kuvan mukaisesti.
Vaihe 6: Testaus (CPU tarvitsee jäähdytystasoa)
Kun 5V käytti 74LS139: n molempia tuloja (A ja B), neljäs punainen LED vilkkuu.
Vilkkumisnopeutta voidaan muuttaa säätämällä 100K VR: tä yllä olevan kuvan mukaisesti.
Kun testaus on valmis, kaksi Molex 3 -napaista naaraskaapelia voidaan irrottaa.
Vaihe 7: Virtalähde INDICATOR -piiriin
Indikaattoripiirin virtalähteenä käytän tavallista käsipuhelinlaturia, joka lähettää 5 V: n ja USB-tyypin B sovittimen yllä olevan kuvan mukaisesti.
Välttääksesi RPI -ongelman liittämällä 3.3V GPIO: n ja 5V: n virtalähteen INDICATOR -piirin, signaaliliitäntä ja virtalähde ovat täysin erillään toisistaan.
Vaihe 8: RPI -johdotus
Indikaattoripiirin liittämiseksi RPI: hen kaksi GPIO -nastaa on omistettava kahden maadoitusliittimen kanssa.
GPIO -nastojen valinnassa ei ole erityisiä vaatimuksia.
INDIKAATTORIN liittämiseen voi käyttää mitä tahansa GPIO -nastaa.
Langalliset nastat on kuitenkin nimettävä 74LS139: n (esim. A, B) tuloiksi python -ohjelmassa.
Vaihe 9: Python -ohjelma
Kun piiri on valmis, indikaattoritoiminnon käyttäminen edellyttää python -ohjelman tekemistä.
Katso yllä olevasta vuokaaviosta lisätietoja ohjelmalogiikasta.
#-*-koodaus: utf-8-*-
tuoda aliprosessi, signaali, sys
tuonti aika, uudelleen
Tuo RPi. GPIO g
A = 12
B = 16
g.setmode (g. BCM)
g.asetukset (A, g. OUT)
g. asetus (B, g. ULOS)
##
def signal_handler (sig, frame):
tulosta ('Painoit Ctrl+C!')
g. lähtö (A, epätosi)
g. lähtö (B, epätosi)
f. sulje ()
sys.exit (0)
signal.signal (signal. SIGINT, signal_handler)
##
vaikka totta:
f = avoin ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')
temp_str = aliprosessi.check_output ('/opt/vc/bin/vcgencmd meet_temp', shell = True)
temp_str = temp_str.decode (koodaus = 'UTF-8', virheet = 'tiukka')
CPU_temp = re.findall ("\ d+\. / D+", temp_str)
# poimimalla suorittimen nykyinen lämpötila
current_temp = kelluva (CPU_temp [0])
jos current_temp> 30 ja current_temp <40:
# matala lämpötila A = 0, B = 0
g. lähtö (A, epätosi)
g. lähtö (B, epätosi)
aika.unen (5)
elif current_temp> = 40 ja current_temp <45:
# lämpötila -aine A = 0, B = 1
g. lähtö (A, epätosi)
g. lähtö (B, True)
aika.unen (5)
elif current_temp> = 45 ja current_temp <50:
# korkein lämpötila A = 1, B = 0
g. lähtö (A, True)
g. lähtö (B, epätosi)
aika.unen (5)
elif current_temp> = 50:
# Suorittimen jäähdytys vaaditaan korkea A = 1, B = 1
g. lähtö (A, True)
g. lähtö (B, True)
aika.unen (5)
current_time = time.time ()
formated_time = time.strftime ("%H:%M:%S", time.gmtime (current_time))
f.write (str (formated_time)+'\ t'+str (current_temp)+'\ n')
f. sulje ()
Python -ohjelman päätoiminto on alla.
- Aseta ensin GPIO 12, 16 lähtöportiksi
- Ctrl+C -keskeytyksenkäsittelijän määrittäminen lokitiedoston sulkemiseksi ja GPIO 12, 16: n sammuttamiseksi
- Kun siirryt äärettömään silmukkaan, avaa lokitiedosto liitetilana
- Lue suorittimen lämpötila suorittamalla komento "/opt/vc/bin/vcgencmd intézkedés_temp"
- Kun lämpötila on alueella 30 ~ 39, lähetä vihreä valo sulkemalla lähtö 00
- Kun lämpötila on alueella 40 ~ 44, kytke keltainen LED -valo päälle antamalla 01
- Kun lämpötila on alueella 45 ~ 49, kytke punainen LED -valo päälle antamalla 10
- Kun lämpötila on yli 50, anna 11, jolloin punainen LED vilkkuu
- Kirjoita aikaleima- ja lämpötilatiedot lokitiedostoon
Vaihe 10: MERKKIVALON toiminta
Kun kaikki on kunnossa, näet, että jokainen LED palaa tai vilkkuu suorittimen lämpötilan mukaan.
Sinun ei tarvitse antaa shell -komentoa tarkistaaksesi nykyisen lämpötilan.
Kun olet kerännyt tiedot lokitiedostoon ja tehnyt tekstitiedoista kaavion Excelillä, tulos näkyy yllä olevassa kuvassa.
Suuria kuormia käytettäessä (kaksi Midori -selainta ja Youtube -videota toistettaessa) suorittimen lämpötila nousee jopa 57,9 asteeseen.
Vaihe 11: Vaihtoehtoinen valmistus (NPN -transistorin käyttäminen) ja edelleen kehittäminen
Tämä on edellinen esimerkki INDICATOR -projektista, jossa hyödynnetään NPN -transistoreita (2N3904 ja BD139).
Kuten näette, vielä yksi IC (74HC04, Quad -taajuusmuuttajat) on tarpeen NPN -transistorin käyttämiseksi, koska NPN: n pohjaan on kohdistettava HIGH -tason jännite transistorin kytkemiseksi päälle.
Yhteenvetona voidaan todeta, että NPN -transistorin käyttö lisää tarpeetonta monimutkaisuutta indikaattoripiirin tekemiseen.
Tämän projektin kehittämiseksi lisään tuulettimen yllä olevan kuvan mukaisesti, jotta INDICATOR -piiri olisi hyödyllisempi.
Suositeltava:
Raspberry Pi -laatikko jäähdytystuuletinta CPU -lämpötilan ilmaisimella: 10 vaihetta (kuvilla)
Raspberry Pi -laatikko jäähdytystuuletinta, jossa on prosessorin lämpötilan ilmaisin: Olin ottanut raspberry pi (jäljempänä RPI) -prosessorin lämpötilan ilmaisinpiirin edellisessä projektissa. Piiri näyttää yksinkertaisesti RPI 4 eri suorittimen lämpötilatasoa seuraavasti. Suorittimen lämpötila on 30 ~
OreServer - Raspberry Pi Dedicated Minecraft -palvelin, jossa LED -soittimen ilmaisin: 9 vaihetta (kuvilla)
OreServer - Raspberry Pi Dedicated Minecraft -palvelin, jossa LED -soittimen ilmaisin: Heinäkuu 2020 PÄIVITYS - Ennen kuin aloitat tämän projektin, huomaa, että moniin muutoksiin ja päivityksiin on tehty erilaisia ohjelmistotyökaluja, joita käytin tämän luomiseen vuosia sitten. Tämän seurauksena monet vaiheet eivät enää toimi kuten kirjoitettu
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa - Saat huoneen lämpötilan ja kosteuden selaimeesi: 6 vaihetta
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa | Saat huoneen lämpötilan ja kosteuden selaimeesi: Hei kaverit tänään, teemme kosteutta & lämpötilan valvontajärjestelmä ESP 8266 NODEMCU & DHT11 lämpötila -anturi. Lämpötila ja kosteus saadaan DHT11 Sensor & selaimesta näkyy, mitä verkkosivua hallitaan
Arduinon lämpötilan ja kosteuden ilmaisin: 7 vaihetta (kuvilla)
Arduinon lämpötila- ja kosteusindikaattori: Tässä ohjeessa näytetään, kuinka tehdä laatikko, joka voi ilmaista lämpötilan ja kosteuden Arduinolla Voit laittaa tämän laatikon pöydälle huoneen lämpötilan ja kosteuden mittaamiseksi Korkealaatuisella MDF -laatikolla laserleikkauksella kaikki tiivistetty f
RGB -lämpötilan ilmaisin (XinaBox): 5 vaihetta (kuvien kanssa)
RGB -lämpötilaindikaattori (XinaBoxin kanssa): Tämä on virallisesti ensimmäinen Instructables -artikkelini, joten aion myöntää, että käytän tätä tilaisuutta juuri nyt kokeilemaan sitä. Hanki tuntuma alustan toiminnasta, koko käyttökokemus. Mutta kun tein niin, ajattelin, että voin