Automatisk kylfläkt för Pi (3 / 4 steg)
Steg 3: Skriptet
Nu inte galen om skript... Förra veckan jag visste python och ändå lyckades jag skriva skriptet genom att läsa och testa olika exempel där ute. Jag vet andra programmeringsspråk men så oroa dig inte, jag inte kommer att spränga din pi.
Om jag använt (vilket jag antagligen gjorde) några funktioner som någon annan skrev, jag ber om ursäkt för inga krediter ges, men jag har tweaked detta skript så mycket, dess i princip ny.
Instruktioner
1) Ladda ner attachement, eller bara kopiera och klistra in det från pastebin här
2) placera fan.py skriptet i/home/pi/mapp
3) kör: sudo chmod + x /home/pi/fan.py och sudo chown pi: pi /home/pi/fan.py
4) förutsatt att du har crontab installerat på din pi köra: crontab -e
5) vid botten kopiera / klistra in: 5 **** sudo python /home/pi/fan.py och spara filen. (Ctrl + X och Y)
Denna crontab kommer köra skriptet varje 1h5m.
Skriptet fungerar som ett fristående skript också... vilket innebär förutom automatiserade crontab åtgärden du kan manuellt aktivera/inaktivera fan själv. Du gör detta med hjälp av parametrar som så:
- sudo python /home/pi/fan.py på eller
- sudo python /home/pi/fan.py off
Jag skrev också en felsäker funktion om du trycker på Ctrl + C när skriptet körs. Om du gör, stängs fläkten innan skriptet avslutas.
Så, hur detta fungerar?
Varje timme skriptet utför och kontrollerar den pi temperatur.
Om temperaturen är över ett X -värde kommer att fläkten slå på och bo tills det svalnat till ett Y -värde. När den gör avslutas skriptet. Om av någon anledning den aldrig når det låg temperaturen och en timme passerar nästa gång skriptet körs det kommer att "se" att fläkten är fortfarande på och den andra skriften kommer att sluta... så realistiska temperatur värden om du vill använda fläkten till faktiskt slå på/av.
Om inte, bara ställa några löjliga värden (som Y = 0 grader) så att fläkten kommer alltid att stanna.)
Om din pi fungerar mellan dessa 2 värden (X, Y), innebär det att dess verkar under "accepterade" temperaturer så skriptet avslutas bara att kontrollera temperaturen varje timme.
Förklara några värden
På toppen av skriptet finns vissa globala variabler. Det är de variabler som du måste ändra.
# Identifiera vilken pin styr reläet
FAN_PIN = 18 # gula rutan ex: GPIO18
# Temperatur kontroll. Börjar fan om temp > 49C
FAN_START = 49
# Temperatur kontroll. Stänga ner under 28C
FAN_END = 28
Dess ganska uppenbart vad man ska göra här. Om du använt GPIO18 som jag gjorde, sedan lämna 18 här, annars ändra det värdet till gpio du använt.
FAN_START och FAN_END är de höga/låga temperaturer som du vill använda. Du kan även lägga float siffror det vill du, gillar 49,2
Obs:
Minns hur jag satt upp mitt relä? Om du ser funktioner fanON och fanOFF du kommer att märka att jag är att gpio utdata till falska att vända fläkten på och Sant att stänga av. Om du väljer en annan gate konfiguration på reläet, kommer du förmodligen behöva vända dessa värden.