Innholdsfortegnelse:

Kontroller en kjølevifte på en Raspberry Pi 3: 9 -trinn
Kontroller en kjølevifte på en Raspberry Pi 3: 9 -trinn

Video: Kontroller en kjølevifte på en Raspberry Pi 3: 9 -trinn

Video: Kontroller en kjølevifte på en Raspberry Pi 3: 9 -trinn
Video: Мало кто знает об этой функции ВЕНТИЛЯТОРА от компьютера!!! 2024, November
Anonim
Styr en kjølevifte på en Raspberry Pi 3
Styr en kjølevifte på en Raspberry Pi 3

Legg en vifte til en bringebær pi 3, med kontroll for å slå den på og av etter behov.

En enkel måte å legge til en vifte på er å bare koble vifteledningene til en 3.3V eller 5V pin og til jord. Ved å bruke denne tilnærmingen vil viften gå hele tiden.

Jeg synes det er mye mer interessant å slå på viften når den nådde eller overgikk en høy temperatur terskel, og deretter slå den av når CPU ble avkjølt under en lav temperatur terskel.

Den instruerbare forutsetter at du har et Raspberry Pi 3 -oppsett og kjører, og du vil legge til en vifte. I mitt tilfelle bruker jeg Kodi på OSMC.

Trinn 1: CPU -ytelse og temperatur

Det er ingen handlinger her. Dette er bare bakgrunnsinformasjon, og du kan hoppe til neste trinn:

En kjøleribbe er nok for de fleste Raspberry Pi 3 -applikasjoner, og en vifte er ikke nødvendig.

En overklokket bringebær pi bør bruke en vifte.

På kodi, hvis du ikke har en MPEG-2-lisensnøkkel, kan du få et termometerikon, som indikerer behovet for enten en lisens eller en vifte.

Raspberry Pi 3s CPU er beregnet til å kjøre mellom -40 ° C til 85 ° C. Hvis CPU -temperaturen overstiger 82 ° C, reduseres CPUens klokkehastighet til temperaturen synker under 82 ° C.

En økning i CPU -temperaturen vil få halvledere til å gå saktere fordi økning av temperaturen øker motstanden. Imidlertid har en økning i temperaturen fra 50 ° C til 82 ° C ubetydelig innvirkning på CPU -ytelsen til en Raspberry Pi 3.

Hvis temperaturen på Raspberry Pi 3 'CPU er over 82 ° C, blir CPUen strupet (klokkehastigheten senkes). Hvis den samme belastningen blir påført, kan det hende at CPU -en har vanskelig for å få den tilbake raskt nok, spesielt hvis den er overklokket. Fordi halvledere har en negativ temperaturkoeffisient, kan temperaturen løpe unna når temperaturen overskrider spesifikasjonene, og CPU -en kan mislykkes, og du må kaste Raspberry Pi.

Kjøring av CPU ved høy temperatur, forkorter CPUens levetid.

Trinn 2: GPIO -pinner og motstander

Det er ingen handlinger her. Dette er bare bakgrunnsinformasjon, og du kan hoppe til neste trinn:

Fordi jeg ikke er elektroingeniør og fulgte instruksjoner fra prosjekter på nettet, skadet jeg et stort antall GPIO -pinner ved å gjøre det og måtte til slutt kaste mer enn en Raspberry Pi. Jeg prøvde også å overklokke og endte med å kaste noen Raspberry Pis som ikke lenger ville fungere.

En vanlig applikasjon er å legge til en trykknapp på en Raspberry Pi. Ved å sette inn en trykknapp mellom en 5V eller 3.3V pin og en jordet pin, opprettes det effektivt en kort når knappen trykkes inn. Fordi det ikke er noen belastning mellom spenningskilden og jord. Det samme skjer når en GPIO -pinne brukes til 3,3V utgang (eller inngang).

Et annet problem er at når en inngangspinne ikke er tilkoblet, vil den "flyte", noe som betyr at verdien som er lest, er udefinert, og hvis koden din iverksetter tiltak basert på verdien som er lest, vil den være feil.

Det kreves en motstand mellom en GPIO -pin og alt den kobles til.

GPIO -pinner har interne trekk opp og ned motstander. Disse kan aktiveres med oppsettfunksjonen for GPIO -biblioteket:

GPIO.setup (kanal, GPIO. IN, pull_up_down = GPIO. PUD_UP)

GPIO.setup (kanal, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)

Eller en fysisk motstand kan settes inn. I denne instruksen brukte jeg en fysisk motstand, men du kan prøve den interne motstanden og aktivere med GPIO -biblioteket.

Fra Arduino Playground -nettstedet i vedleggsreferansen:

"En opptrekkmotstand" trekker "svakt" spenningen til ledningen den er koblet til mot spenningskildenivået når de andre komponentene på linjen er inaktive. Når bryteren på linjen er åpen, er den høyimpedans og virker som om den er frakoblet. Siden de andre komponentene virker som om de er frakoblet, virker kretsen som om den er frakoblet, og opptrekkmotstanden fører ledningen opp til det høye logiske nivået. Når en annen komponent på linjen blir aktiv, den vil overstyre det høye logiske nivået som er angitt av pull-up-motstanden. Pull-up-motstanden sikrer at ledningen er på et definert logisk nivå, selv om ingen aktive enheter er koblet til den."

Trinn 3: Deler

Du kan bruke det meste, men dette er delene jeg brukte.

Deler:

  • NPN S8050 transistor

    250 stykker diverse $ 8,99, eller omtrent $ 0,04

  • 110 Ohm motstand

    400 motstander for $ 5,70, eller omtrent $ 0,01

  • Micro Fan, krav i beskrivelsen eller spesifikasjonene:

    • ca $ 6,00
    • børsteløs
    • stille
    • laveste amp eller watt sammenlignet med en lignende vifte
    • I beskrivelsen, se etter noe som "arbeidsspenning på 2V-5V"
  • hun-kvinne og mann-hunn-jumper ledninger
  • brødbrett
  • Raspberry Pi 3
  • 5.1V 2.4A strømforsyning

Merknader:

Tekst i spader er ment å bli erstattet av dataene dine, ♣ dine-data ♣

Trinn 4: Skjematisk

Skjematisk
Skjematisk

run-fan krever at en S8050 NPN-transistor og en motstand kobles til som følger:

Den flate siden av S8050 vender på denne måten>

  • S8050 pin c: kobles til svart (-) ledning på viften
  • S8050 pin b: kobles til 110 Ohm motstand og til GPIO pin 25
  • S8050 pin e: kobles til jordet GPIO -pin
  • vifte rød (+): kobles til 3.3v GPIO -pin på bringebær pi 3

GPIO pin 25 brukes, men den kan endres til hvilken som helst GPIO input pin

Trinn 5: Få skriptet

Logg inn på din bringebær pi med ett av følgende:

$ ssh osmc@♣ ip-adresse ♣

$ shh osmc@♣osmc-hostname♣.local

Og så kan du laste ned skriptet ved hjelp av:

$ sudo wget "https://raw.githubusercontent.com/dumbo25/rpi-fan/master/run-fan.py"

Jeg bruker kodi på osmc, og brukeren er osmc. Hvis du har bruker pi, er det bare å endre alle forekomster av osmc med pi i skriptet og i tjenesten.

Gjør skriptet kjørbart.

$ sudo chmod +x run-fan.py

Jeg slår på viften på 60 C. Hvis starttemperaturen er satt for lavt, vil viften slås på og kjøle ned CPU -en, og når viften slås av, er temperaturen nesten tilbake til starttemperaturen. Prøv 45 C for å se denne effekten. Jeg er ikke sikker på hva som er den optimale temperaturen.

Trinn 6: Start opp skriptet automatisk

Start opp skriptet automatisk
Start opp skriptet automatisk

For å få kjøreviften til å starte automatisk, bruk systemd

Logg inn på din bringebær pi med ett av følgende:

$ ssh osmc@♣ ip-adresse ♣

$ shh osmc@♣osmc-hostname♣.local

Og så kan du laste ned systemd -servicefilen ved hjelp av:

$ sudo wget https://raw.githubusercontent.com/dumbo25/rpi-fan/…

Eller du kan opprette en systemd servicefil ved å kopiere innholdet i run-fan-tjenesten fra github og deretter kjøre:

$ sudo nano /lib/systemd/system/run-fan.service

Lim inn innholdet fra github i filen

ctrl-o, ENTER, ctrl-x for å lagre og avslutte nano-editoren

Filen må være eid av root, og den må være i/lib/systemd/system. Kommandoene er:

$ sudo chown root: root run-fan.service

$ sudo mv run-fan.service/lib/systemd/system/.

Etter endringer i /lib/systemd/system/run-fan.service:

$ sudo systemctl daemon-reload

$ sudo systemctl aktiverer run-fan.service $ sudo omstart

Etter omstart av Raspberry Pi, bør viften fungere!

Hvis du har problemer med at skriptet starter ved omstart, må du sjekke systemd-emnet i feilsøkingsvedlegget.

Trinn 7: Vedlegg: Referanser

Vanlige spørsmål om temperatur Raspberry Pi Org

Hackernoon: Slik kontrollerer du en vifte

Forklarende datamaskiner: Avkjølende videoer

Toms maskinvare: Temperatureffekt på ytelsen

Puget -systemer: Temperaturens innvirkning på CPU -ytelsen

Trekk opp og trekk ned motstander

Trinn 8: Vedlegg: Oppdateringer

Å gjøre: slå sammen RF -mottaker kretskort med viftekontroll

Trinn 9: Vedlegg: Feilsøking

Kontrollerer systemtjenesten

For å sikre at run-fan.service i systemd er aktivert og kjører, kjør en eller flere av kommandoene:

$ systemctl list-unit-files | grep aktivert

$ systemctl | grep løping | grep fan $ systemctl status run -fan.service -l

Hvis det er problemer med å starte skriptet ved hjelp av systemd, kan du undersøke journalen ved hjelp av:

$ sudo journalctl -u run -fan.service

For å sjekke om run-fan.py kjører:

$ cat /home/osmc/run-fan.log

Anbefalt: